# init REPOSITORY 1 with # docker run --rm -e RESTIC_PASSWORD=yourpassword -v G:/restic-backups:/backup restic/restic init --repo /backup services: restic-backup: image: restic/restic:latest container_name: restic-backup environment: # --- REPOSITORY 1: REMOTE REST SERVER --- - RESTIC_REPOSITORY_REMOTE=${RESTIC_REPOSITORY_REMOTE} - RESTIC_PASSWORD_REMOTE=${RESTIC_PASSWORD_REMOTE} # --- REPOSITORY 2: LOCAL FOLDER --- - RESTIC_REPOSITORY_LOCAL=${RESTIC_REPOSITORY_LOCAL} - RESTIC_PASSWORD_LOCAL=${RESTIC_PASSWORD_LOCAL} volumes: # Data to backup (Read-Only) - F:/roms/megadrive:/data/roms:ro - H:/immich-photos:/data/immich-photos:ro # REPOSITORY 1: Local Backup Folder - G:/restic-backups:/backup entrypoint: > sh -c "while true; do \ \ echo '--- Starting Remote Backup ---' && \ export RESTIC_REPOSITORY=$RESTIC_REPOSITORY_REMOTE && \ export RESTIC_PASSWORD=$RESTIC_PASSWORD_REMOTE && \ restic backup /data/roms && \ \ echo '--- Starting Remote Prune ---' && \ restic forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --keep-yearly 0; \ \ echo '--- Starting Local Backup ---' && \ export RESTIC_REPOSITORY=$RESTIC_REPOSITORY_LOCAL && \ export RESTIC_PASSWORD=$RESTIC_PASSWORD_LOCAL && \ restic backup /data/roms && \ \ echo '--- Starting Local Prune ---' && \ restic forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --keep-yearly 0; \ \ echo '--- Cleanup and Sleep ---' && \ unset RESTIC_REPOSITORY && \ unset RESTIC_PASSWORD && \ echo '--- Backup Cycle Complete. Sleeping... ---' && \ sleep 43200; \ done" restart: unless-stopped # restic backup /data/roms /data/immich-photos && # restic backup /data/roms /data/immich-photos &&