# Stack: Infrastructure Docker standardisée services: # Duplicati – sauvegardes duplicati: image: lscr.io/linuxserver/duplicati:latest container_name: duplicati restart: unless-stopped networks: - backend - frontend ports: - "7604:8200" volumes: - /srv/docker/infra/duplicati/data:/data - /srv/docker/infra/duplicati/log:/var/log/duplicati - /srv/docker/infra/duplicati/conf:/config - /srv/docker:/source/docker - /opt/backup:/source/scripts - /mnt/backup_syno/scripts/:/backups/scripts - /mnt/backup_syno/containers/:/backups/docker environment: - PUID=${DUPLICATI_PUID} - PGID=${DUPLICATI_PGID} - TZ=${TZ} - SETTINGS_ENCRYPTION_KEY=${DUPLICATI_KEY} - DUPLICATI__WEBSERVICE_PASSWORD=${DUPLICATI_PASSWORD} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8200"] interval: 1m timeout: 10s retries: 3 # Nginx Proxy Manager – reverse proxy npm: image: jc21/nginx-proxy-manager:latest container_name: npm restart: unless-stopped networks: - frontend - backend ports: - "7602:80" # HTTP - "7601:443" # HTTPS - "7603:81" # Interface admin volumes: - /srv/docker/infra/npm/data:/data - /srv/docker/infra/npm/log:/var/log/npm - /srv/docker/infra/npm/conf:/etc/npm - /srv/docker/infra/npm/data/letsencrypt:/etc/letsencrypt environment: - TZ=${TZ} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:81"] interval: 1m timeout: 10s retries: 3 # Redis – cache / file queue redis: image: redis:7 container_name: redis restart: unless-stopped networks: - backend ports: - "6379:6379" volumes: - /srv/docker/infra/redis/data:/data environment: - TZ=${TZ} command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 1m timeout: 10s retries: 3 networks: frontend: external: true backend: external: true