Files
R-clone-setup/docker-compose.yml
2026-08-18 11:31:53 +05:30

58 lines
2.1 KiB
YAML

# =============================================================================
# PRODUCTION MONITORING STACK — collector + database. Runs permanently.
# sudo docker-compose up -d --build
#
# Server-side verification runs against the REAL office NAS (synoreal remote,
# written by monitor/collector/start.sh from the REAL_SYNOLOGY_* vars in .env).
# The simulation lab that used to accompany this was removed 2026-08-10 —
# recover docker-compose.sim.yml + generator/ from git history if ever needed.
# =============================================================================
services:
mongo:
image: mongo:7
container_name: rclonemon-mongo
volumes:
- rclonemon_mongo:/data/db
restart: unless-stopped
collector:
build:
context: ./monitor
dockerfile: collector/Dockerfile
container_name: rclonemon-collector
ports:
- "4400:4400"
environment:
- MONGO_URL=mongodb://mongo:27017
- AGENT_TOKEN=${AGENT_TOKEN}
# dashboard/API login (HTTP Basic) — mandatory while reverse-proxied
- VIEWER_USER=${VIEWER_USER}
- VIEWER_PASS=${VIEWER_PASS}
# public URL baked into the served installer (COLLECTOR_URL on clients)
- PUBLIC_URL=${PUBLIC_URL}
# the office NAS (read-only lsjson) — every site verifies against it
- REAL_SYNOLOGY_HOST=${REAL_SYNOLOGY_HOST}
- REAL_SYNOLOGY_PORT=${REAL_SYNOLOGY_PORT}
- REAL_SYNOLOGY_USER=${REAL_SYNOLOGY_USER}
- REAL_SYNOLOGY_PASS=${REAL_SYNOLOGY_PASS}
- DEFAULT_REMOTE=synoreal
# per-site override only if a second NAS ever appears, e.g.
# SITE_REMOTES=RIYADH=synoriyadh (remote must also be added to start.sh)
# listing interval — SFTP lsjson of big trees is slow, don't go below 60
- VERIFY_INTERVAL=300
- MISSING_GRACE_S=600
- ONLINE_WINDOW_S=60
# alert if a machine is online but hasn't completed a round in this long
- STALLED_ROUND_S=900
# how much event history the audit UI keeps (Mongo TTL)
- RETENTION_DAYS=30
volumes:
- ./frontend/dist:/app/static:ro
depends_on:
- mongo
restart: unless-stopped
volumes:
rclonemon_mongo: