* feat: add restic allows incremental snapshot backups remove custom push-backup script * ci: remove .git dir to skip fetch_details_from_tag fixes https://github.com/frappe/frappe_docker/actions/runs/3938883301/jobs/6738091655
54 lines
1.2 KiB
Markdown
54 lines
1.2 KiB
Markdown
Create backup service or stack.
|
|
|
|
```yaml
|
|
# backup-job.yml
|
|
version: "3.7"
|
|
services:
|
|
backup:
|
|
image: frappe/erpnext:${VERSION}
|
|
entrypoint: ["bash", "-c"]
|
|
command:
|
|
- |
|
|
bench backup-all-sites
|
|
## Uncomment following to snapshot sites
|
|
# restic snapshots || restic init
|
|
# restic backup sites
|
|
environment:
|
|
# Set correct environment variables for restic
|
|
- RESTIC_REPOSITORY=s3:https://s3.endpoint.com/restic
|
|
- AWS_ACCESS_KEY_ID=access_key
|
|
- AWS_SECRET_ACCESS_KEY=secret_access_key
|
|
- RESTIC_PASSWORD=restic_password
|
|
volumes:
|
|
- "sites:/home/frappe/frappe-bench/sites"
|
|
networks:
|
|
- erpnext-network
|
|
|
|
networks:
|
|
erpnext-network:
|
|
external: true
|
|
name: ${PROJECT_NAME:-erpnext}_default
|
|
|
|
volumes:
|
|
sites:
|
|
external: true
|
|
name: ${PROJECT_NAME:-erpnext}_sites
|
|
```
|
|
|
|
In case of single docker host setup, add crontab entry for backup every 6 hours.
|
|
|
|
```
|
|
0 */6 * * * /usr/local/bin/docker-compose -f /path/to/backup-job.yml up -d > /dev/null
|
|
```
|
|
|
|
Or
|
|
|
|
```
|
|
0 */6 * * * docker compose -p erpnext exec backend bench backup-all-sites > /dev/null
|
|
```
|
|
|
|
Notes:
|
|
|
|
- Change the cron string as per need.
|
|
- In case of docker compose exec set the correct project name
|