Files
frappe_docker/docs/backup-and-push-cronjob.md
Revant Nandgaonkar bb1e4bb341 feat: add restic (#1044)
* 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
2023-01-18 11:31:18 +05:30

1.2 KiB

Create backup service or stack.

# 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