Убирает свой 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:
+11
-56
@@ -1,6 +1,15 @@
|
||||
# =====================================================================
|
||||
# PRODUCTION — VPS только тянет готовый образ из GHCR и запускает его.
|
||||
# Никакой компиляции Rust на сервере. Деплой = pull + migrate + up.
|
||||
#
|
||||
# ВАЖНО: своего Postgres здесь больше нет. БД физически стоит на отдельном
|
||||
# VPS (см. netrunner-data/docker-compose.yml — там же Vaultwarden, тот же
|
||||
# Postgres-процесс, вторая база) и слушает по сети, не в одном
|
||||
# Docker-стеке с этим compose. DATABASE_URL ниже указывает на DB_HOST:DB_PORT
|
||||
# (внешний IP того VPS), не на "db" как раньше — и требует sslmode=require,
|
||||
# т.к. трафик идёт по публичной сети между двумя разными серверами. Бэкапы
|
||||
# тоже переехали туда же (netrunner-data/scripts/backup.sh) — дампить
|
||||
# логичнее там, где физически лежат данные.
|
||||
# =====================================================================
|
||||
services:
|
||||
# One-shot: применяет миграции и завершается. Требует только DATABASE_URL.
|
||||
@@ -9,10 +18,7 @@ services:
|
||||
container_name: netrunner-migrate
|
||||
command: ["./netrunner-control-plane", "--migrate"]
|
||||
environment:
|
||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT:-5432}/${DB_NAME}?sslmode=require
|
||||
restart: "no"
|
||||
networks:
|
||||
- netrunner_grid
|
||||
@@ -28,12 +34,10 @@ services:
|
||||
environment:
|
||||
- APP_ENV=production
|
||||
- FRONTEND_DIR=/app/frontend/dist
|
||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
|
||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT:-5432}/${DB_NAME}?sslmode=require
|
||||
volumes:
|
||||
- ./keys:/app/keys:ro
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
migrate:
|
||||
@@ -47,24 +51,6 @@ services:
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: netrunner-db
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_USER: ${DB_USER}
|
||||
POSTGRES_DB: ${DB_NAME}
|
||||
volumes:
|
||||
- netrunner_db_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: netrunner-redis
|
||||
@@ -75,31 +61,6 @@ services:
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
# Периодический pg_dump + опциональная офсайт-копия через rclone (см.
|
||||
# scripts/backup.sh). RCLONE_REMOTE/RCLONE_CONFIG — задать в .env, если нужна
|
||||
# копия за пределы этого VPS (настоятельно рекомендуется — единственная
|
||||
# локальная копия на volume ничем не защищена от падения диска этой машины).
|
||||
backup:
|
||||
image: postgres:16-alpine
|
||||
container_name: netrunner-backup
|
||||
restart: always
|
||||
entrypoint: ["/bin/sh", "/scripts/backup.sh"]
|
||||
environment:
|
||||
- DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
|
||||
- BACKUP_DIR=/backups
|
||||
- BACKUP_INTERVAL_SEC=${BACKUP_INTERVAL_SEC:-21600}
|
||||
- BACKUP_RETENTION_DAYS=${BACKUP_RETENTION_DAYS:-14}
|
||||
- RCLONE_REMOTE=${RCLONE_REMOTE:-}
|
||||
- RCLONE_CONFIG_CONTENT=${RCLONE_CONFIG_CONTENT:-}
|
||||
volumes:
|
||||
- ./scripts/backup.sh:/scripts/backup.sh:ro
|
||||
- netrunner_db_backups:/backups
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
# ==========================================
|
||||
# МОНИТОРИНГ
|
||||
# ==========================================
|
||||
@@ -161,13 +122,7 @@ services:
|
||||
|
||||
networks:
|
||||
netrunner_grid:
|
||||
# Явное имя (не дефолтный <project>_netrunner_grid) — на этот же bridge
|
||||
# снаружи подключается netrunner-data/docker-compose.yml (Vaultwarden) как
|
||||
# external-сеть, ссылаясь по этому фиксированному имени.
|
||||
name: netrunner_grid
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
netrunner_db_data:
|
||||
netrunner_db_backups:
|
||||
grafana_data:
|
||||
|
||||
Reference in New Issue
Block a user