Убирает свой Postgres — БД физически переезжает на VPS с Vaultwarden

backend будет жить на отдельном, ещё не арендованном VPS — свой
контейнер `db` и бэкапы (scripts/backup.sh) здесь больше не нужны и
переехали в netrunner-data, где Postgres теперь физически стоит.
DATABASE_URL собирается из DB_HOST/DB_PORT (внешний IP того VPS) с
обязательным sslmode=require — трафик пересекает публичную сеть между
двумя разными серверами.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 17:17:20 +07:00
parent ebc618743a
commit 3feb2f431c
4 changed files with 27 additions and 154 deletions
+16 -20
View File
@@ -6,17 +6,22 @@
# (например `openssl rand -base64 24`) и никогда не коммитить .env с настоящим
# значением (см. .gitignore — .env/.env.* уже исключены).
#
# ДЛЯ ЛОКАЛЬНЫХ ТЕСТОВ НА ТВОЕМ ПК:
# DATABASE_URL=postgres://netrunner_admin:CHANGE_ME_DB_PASSWORD@<ip-впс>:5432/netrunner
#
# ДЛЯ ЗАПУСКА НА САМОЙ ВПС (Через Docker Compose):
# DATABASE_URL=postgres://netrunner_admin:CHANGE_ME_DB_PASSWORD@db:5432/netrunner
DATABASE_URL=postgres://netrunner_admin:CHANGE_ME_DB_PASSWORD@db:5432/netrunner
# Postgres физически стоит НЕ на этом VPS, а на отдельном сервере вместе с
# Vaultwarden (см. netrunner-data/docker-compose.yml, сервис `db`) — этот
# бэкенд подключается к нему по сети. Полный DATABASE_URL собирает сам
# docker-compose.prod.yml из DB_USER/DB_PASSWORD/DB_HOST/DB_PORT/DB_NAME ниже
# (не пишите его здесь отдельной строкой — env_file не подставляет ${...},
# в отличие от самого docker-compose, так что отдельная строка DATABASE_URL
# тут просто не сработает). sslmode=require обязателен: без него подключение
# к hostssl-правилу в pg_hba.conf того сервера будет отклонено.
DB_USER=netrunner_admin
DB_NAME=netrunner
DB_PASSWORD=CHANGE_ME_DB_PASSWORD
# IP VPS, где физически стоит Postgres (netrunner-data). Совпадает с DATA_VPS_IP
# в CI-переменных netrunner-data.
DB_HOST=CHANGE_ME_DB_HOST_IP
DB_PORT=5432
# Кеш курса TON (не источник истины — если недоступен, приложение просто
# ходит в TonAPI напрямую на каждый инвойс, как раньше).
@@ -30,18 +35,9 @@ ARGON_SALT=CHANGE_ME_ARGON_SALT_MIN_16_CHARS
GRAFANA_PASSWORD=CHANGE_ME_GRAFANA_PASSWORD
TON_MASTER_WALLET=UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKK8y
# =====================================================================
# === БЭКАПЫ POSTGRES (см. scripts/backup.sh, сервис `backup` в
# === docker-compose.prod.yml) ===
# =====================================================================
# Без RCLONE_REMOTE/RCLONE_CONFIG_CONTENT бэкапы всё равно снимаются каждые
# BACKUP_INTERVAL_SEC (по умолчанию 6ч) и хранятся локально в volume
# netrunner_db_backups — но только на этом же VPS. Для реальной защиты от
# падения диска/потери сервера нужна офсайт-копия:
# BACKUP_INTERVAL_SEC=21600
# BACKUP_RETENTION_DAYS=14
# RCLONE_REMOTE=b2:netrunner-backups
# RCLONE_CONFIG_CONTENT содержимое rclone.conf одной переменной, см. rclone.conf.example
# Бэкапы Postgres (pg_dump + опциональный rclone) теперь настраиваются в
# netrunner-data/.env (там же, где физически стоит БД) — см.
# netrunner-data/scripts/backup.sh. Здесь их больше нет.
# Опционально: без него оплата через @CryptoBot вернёт "provider not
# supported", остальные провайдеры продолжают работать. Токен — у @CryptoBot:
@@ -98,7 +94,7 @@ COOKIE_SECURE=true
# === DEPLOYMENT & REPOSITORY SETTINGS ===
# =====================================================================
GHCR_TOKEN=ghp_ТВОЙ_ТОКЕН_ОТ_ГИТХАБА_ДЛЯ_ДОСТУПА_К_РЕЕСТРУ
VPS_IP=77.110.106.113
VPS_IP=CHANGE_ME_VPS_IP
DEPLOY_DIR=/root/netrunner-core
BINARY_NAME=netrunner-control-plane
# Образ, который тянет прод-стек (docker-compose.prod.yml).