- backup.sh: snapshot all of /data as timestamped tar.gz to local NAS path; push to B2 only when a real bucket/key is set (no more nonexistent app.db). - compose: working CMD-SHELL healthcheck; mount /mnt/user/Backup target. - remove the accidentally committed moon-household-budget-handoff/ scaffolding. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
34 lines
1.1 KiB
YAML
34 lines
1.1 KiB
YAML
# Moon Household Budget — self-contained stack.
|
|
# app : the Python web app (JSON-file storage on the ./data volume)
|
|
# backup : sidecar that tar.gz-snapshots ./data locally + optionally to B2
|
|
#
|
|
# Deployed on the Unraid NAS under /mnt/user/appdata/moon-household-budget/.
|
|
# Bring up with: docker compose up -d --build
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: moon-household-budget
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8052:8000" # http://192.168.0.5:8052
|
|
env_file: .env
|
|
volumes:
|
|
- ./data:/data # budget JSON files + uploaded images live here
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fsS http://localhost:8000/ || exit 1"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
backup:
|
|
build:
|
|
context: ./backup
|
|
container_name: moon-budget-backup
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
volumes:
|
|
- ./data:/data:ro # read-only — never writes app data
|
|
- /mnt/user/Backup/moon-household-budget:/backups # local snapshot target
|