c4k-forgejo/doc/BackupAndRestore.md

1.6 KiB

Backup Architecture details

  • we use restic to produce small & encrypted backups
  • backup is scheduled at schedule: "10 23 * * *"
  • Forgejo stores files in /data/gitea and /data/git/repositories, these files are backed up.
  • The postgres db is also backed up

Manual init the restic repository for the first time

  1. apply backup-and-restore pod:
    kubectl scale deployment backup-restore --replicas=1
  2. exec into pod and execute restore pod (press tab to get your exact pod name)
    kubectl exec -it backup-restore-... -- /usr/local/bin/init.sh
  3. remove backup-and-restore pod:
    kubectl scale deployment backup-restore --replicas=0

Manual backup the restic repository for the first time

  1. apply backup-and-restore pod:
    kubectl scale deployment backup-restore --replicas=1
  2. exec into pod and execute backup pod (press tab to get your exact pod name)
    kubectl exec -it backup-restore-... -- /usr/local/bin/backup.sh
  3. remove backup-and-restore pod:
    kubectl scale deployment backup-restore --replicas=0

Manual restore

  1. apply backup-and-restore pod:
    kubectl scale deployment backup-restore --replicas=1
  2. Scale down forgejo deployment: kubectl scale deployment forgejo --replicas=0
  3. exec into pod and execute restore pod (press tab to get your exact pod name)
    kubectl exec -it backup-restore-... -- /usr/local/bin/restore.sh
  4. Start forgejo again: kubectl scale deployment forgejo --replicas=1
  5. remove backup-and-restore pod:
    kubectl scale deployment backup-restore --replicas=0