feat: backup and restore
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
services:
|
||||
# Nightly backup of every named volume on this host to S3. Containers
|
||||
# labeled docker-volume-backup.stop-during-backup=true (see
|
||||
# bitwarden-docker-compose.yml, rd-docker-compose.yml,
|
||||
# status-docker-compose.yml, web-docker-compose.yml) are stopped for the
|
||||
# duration of the backup so their data is captured in a consistent state,
|
||||
# then restarted.
|
||||
backup:
|
||||
image: offen/docker-volume-backup:v2
|
||||
container_name: backup
|
||||
environment:
|
||||
BACKUP_FILENAME: "prod-%Y-%m-%dT%H-%M-%S.{{ .Extension }}"
|
||||
BACKUP_CRON_EXPRESSION: "0 3 * * *"
|
||||
BACKUP_RETENTION_DAYS: "14"
|
||||
BACKUP_PRUNING_LEEWAY: "5m"
|
||||
AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
|
||||
AWS_S3_PATH: ${AWS_S3_PATH}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_ENDPOINT: ${AWS_ENDPOINT}
|
||||
volumes:
|
||||
- bitwarden_data:/backup/bitwarden_data:ro
|
||||
- rustdesk_data:/backup/rustdesk_data:ro
|
||||
- uptime_kuma_data:/backup/uptime_kuma_data:ro
|
||||
- snexo_data:/backup/snexo_data:ro
|
||||
- letsencrypt_data:/backup/letsencrypt_data:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
restart: unless-stopped
|
||||
|
||||
# One-shot: restores empty volumes from the latest S3 backup, then exits.
|
||||
# Run explicitly by spinup.sh before the services that own these volumes
|
||||
# start - not started by `docker compose up`.
|
||||
restore:
|
||||
image: amazon/aws-cli:2
|
||||
container_name: backup-restore
|
||||
entrypoint: [ "/bin/bash", "/restore.sh" ]
|
||||
environment:
|
||||
AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
|
||||
AWS_S3_PATH: ${AWS_S3_PATH}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_ENDPOINT: ${AWS_ENDPOINT}
|
||||
volumes:
|
||||
- ./restore.sh:/restore.sh:ro
|
||||
- bitwarden_data:/restore/bitwarden_data
|
||||
- rustdesk_data:/restore/rustdesk_data
|
||||
- uptime_kuma_data:/restore/uptime_kuma_data
|
||||
- letsencrypt_data:/restore/letsencrypt_data
|
||||
restart: "no"
|
||||
|
||||
volumes:
|
||||
bitwarden_data:
|
||||
name: bitwarden_data
|
||||
rustdesk_data:
|
||||
name: rustdesk_data
|
||||
uptime_kuma_data:
|
||||
name: uptime_kuma_data
|
||||
letsencrypt_data:
|
||||
name: letsencrypt_data
|
||||
Reference in New Issue
Block a user