add Rclone backup and cleanup services with cronjob configuration in docker-compose.yml
Some checks failed
Portainer Stack Update / update_stack (push) Has been cancelled

This commit is contained in:
krisz 2025-08-22 14:25:04 +02:00
parent 806723f03d
commit 16363a8097

View File

@ -5,6 +5,20 @@ x-traefik-enable-labels: &traefik-labels
traefik.swarm.network: "traefik"
traefik.constraint-label: "traefik"
x-cron-deploy: &cron-deploy
mode: replicated
replicas: 0
update_config:
parallelism: 1
delay: 5s
order: stop-first
failure_action: rollback
rollback_config:
order: stop-first
restart_policy:
condition: none
x-api-deploy: &api-deployment
mode: replicated
update_config:
@ -108,6 +122,41 @@ services:
replicas: 1
<<: *api-deployment
rclone-sync:
image: rclone/rclone:latest
entrypoint: ""
command: /bin/sh -c 'rclone sync /data GDrive:Backups/immich/full_backup --backup-dir=GDrive:Backups/immich/archive/$(date +%Y-%m-%d) --progress'
volumes:
- data:/data:ro
secrets:
- source: rclone-config
target: /config/rclone/rclone.conf
environment:
- TZ=Europe/Budapest
deploy:
<<: *cron-deploy
labels:
swarm.cronjob.enable: "false"
swarm.cronjob.skip-running: "true"
swarm.cronjob.schedule: "0 2 * * *"
rclone-cleanup:
image: rclone/rclone:latest
command: delete GDrive:Backups/immich/archive --min-age 60d --rmdirs --progress --dry-run
volumes:
- data:/data:ro
secrets:
- source: rclone-config
target: /config/rclone/rclone.conf
environment:
- TZ=Europe/Budapest
deploy:
<<: *cron-deploy
labels:
swarm.cronjob.enable: "false"
swarm.cronjob.skip-running: "true"
swarm.cronjob.schedule: "0 4 * * *"
networks:
local:
@ -155,4 +204,7 @@ secrets:
db_password:
name: postgres-password
external: true
rclone-config:
name: google-drive-rclone-config
external: true