To backup all my servers data I use Restic. Restic use (here) rclone internally to backup everything on pCloud.
The backed up data includes mainly container volumes (configs) and docker-compose (from Portainer ).
Restic
Section titled “Restic”Restic is a modern backup program that can back up your files
- to many different storage types, including self-hosted and online services
- easily, being a single executable that you can run without a server or complex setup
- effectively, only transferring the parts that actually changed in the files you back up
- securely, by careful use of cryptography in every part of the process
- verifiably, enabling you to make sure that your files can be restored when needed
services: backup: image: mazzolino/restic:1.7.2 container_name: backup_restic hostname: ${HOST} restart: always environment: BACKUP_CRON: 0 0 4 * * * RUN_ON_STARTUP: 'true' RESTIC_REPOSITORY: rclone:pcloud:/Homelab/Backups/Data/${HOST} RESTIC_PASSWORD: ${RESTIC_PASSWORD} RESTIC_BACKUP_SOURCES: /data RESTIC_BACKUP_ARGS: --exclude **node_modules** --exclude /data/apps/media-center/torrents/** --exclude /data/apps/emulatorjs/data/**/roms/** --exclude /data/apps/monitoring/prometheus/data/** --exclude /data/apps/traefik/logs/** --verbose TZ: Europe/Paris RESTIC_FORGET_ARGS: --prune --keep-last 14 --keep-daily 1 --verbose POST_COMMANDS_SUCCESS: curl -X GET 'https://uptime.zrx.sh/api/push/${UPTIME_ID}?status=up&msg=OK&ping=' volumes: - /data:/data:ro - /data/apps/restic/rclone.conf:/run/secrets/rclone.conf:ro check: image: mazzolino/restic:1.7.2 hostname: ${HOST} container_name: backup_check restart: always environment: SKIP_INIT: 'true' #RUN_ON_STARTUP: 'true' CHECK_CRON: 0 10 4 * * * RESTIC_CHECK_ARGS: --read-data-subset=10% --verbose RESTIC_REPOSITORY: rclone:pcloud:/Homelab/Backups/Data/${HOST} RESTIC_PASSWORD: ${RESTIC_PASSWORD} TZ: Europe/Paris POST_COMMANDS_FAILURE: curl -X GET 'https://uptime.zrx.sh/api/push/${UPTIME_ID}?status=down&msg=OK&ping=' volumes: - /data/apps/restic/rclone.conf:/run/secrets/rclone.conf:ro pcloud: image: ghcr.io/zareix/docker-rclone-cron:latest container_name: backup_pcloud environment: - CRON_SCHEDULE=30 4 * * * - COMMAND=rclone sync --config /run/secrets/rclone.conf -v pcloud:/ /mnt/usbhddstx/data/pcloud volumes: - /mnt/usbhddstx:/mnt/usbhddstx - /data/apps/restic/rclone.conf:/run/secrets/rclone.conf:ronetworks: {}