mirror of
https://github.com/xCyanGrizzly/DragonsStash.git
synced 2026-09-21 05:21:43 +00:00
Add backup service and nas_backups volume to docker-compose.yml
Wires the backup service (from Tasks 1-2) into the production compose configuration, adds NFS-backed nas_backups volume, and documents the four required env vars (NAS_HOST, NAS_EXPORT_PATH, RESTIC_PASSWORD, KUMA_PUSH_URL, TZ) in .env.example. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -36,3 +36,10 @@ TDLIB_STATE_DIR="/data/tdlib"
|
|||||||
WORKER_MAX_ZIP_SIZE_MB=4096
|
WORKER_MAX_ZIP_SIZE_MB=4096
|
||||||
MULTIPART_TIMEOUT_HOURS=0
|
MULTIPART_TIMEOUT_HOURS=0
|
||||||
LOG_LEVEL="info"
|
LOG_LEVEL="info"
|
||||||
|
|
||||||
|
# Backup (NAS via NFS + restic)
|
||||||
|
NAS_HOST="" # Synology NAS IP or hostname reachable from this host
|
||||||
|
NAS_EXPORT_PATH="" # NFS export path, e.g. /volume1/dragonsstash-backups
|
||||||
|
RESTIC_PASSWORD="" # generate with: openssl rand -base64 32
|
||||||
|
KUMA_PUSH_URL="" # Uptime Kuma Push monitor URL (create the monitor first)
|
||||||
|
TZ="Etc/UTC"
|
||||||
|
|||||||
@@ -97,6 +97,35 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
|
backup:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: backup/Dockerfile
|
||||||
|
pull_policy: never
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER:-dragons}
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-stash}
|
||||||
|
- PGPASSWORD=${POSTGRES_PASSWORD:-stash}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-dragonsstash}
|
||||||
|
- RESTIC_REPOSITORY=/backups/restic-repo
|
||||||
|
- RESTIC_PASSWORD=${RESTIC_PASSWORD:?Set RESTIC_PASSWORD in .env}
|
||||||
|
- KUMA_PUSH_URL=${KUMA_PUSH_URL:?Set KUMA_PUSH_URL in .env}
|
||||||
|
- TZ=${TZ:-Etc/UTC}
|
||||||
|
volumes:
|
||||||
|
- tdlib_state:/data/tdlib-worker:ro
|
||||||
|
- tdlib_bot_state:/data/tdlib-bot:ro
|
||||||
|
- nas_backups:/backups
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 256M
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: postgres:16-alpine
|
image: postgres:16-alpine
|
||||||
environment:
|
environment:
|
||||||
@@ -125,6 +154,11 @@ volumes:
|
|||||||
tdlib_bot_state:
|
tdlib_bot_state:
|
||||||
tmp_zips:
|
tmp_zips:
|
||||||
manual_uploads:
|
manual_uploads:
|
||||||
|
nas_backups:
|
||||||
|
driver_opts:
|
||||||
|
type: nfs
|
||||||
|
o: "addr=${NAS_HOST},rw,nfsvers=4,soft,timeo=100"
|
||||||
|
device: ":${NAS_EXPORT_PATH}"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
frontend:
|
frontend:
|
||||||
|
|||||||
Reference in New Issue
Block a user