Backup und Wiederherstellung des Gitea-Servers
In diesen schwierigen Zeiten kann alles passieren.
Es muss ein Backup von 1) Datenbank, 2) Dateispeicher, 3) anderen Gitea-Dateien erstellt werden. Hier geht es los.
Im Testing Gitea-Beitrag haben wir den Gitea-Server installiert.
Wann
Jetzt, als Vorsichtsmaßnahme vor schlimmen Ereignissen, muss der Backup- und Wiederherstellungsprozess geübt werden.
Besser sicher als leid.
Wo
Die Daten des Gitea-Servers bestehen aus drei Komponenten:
- Code
- Dateispeicher
- Datenbank
In unserem Testumfeld benötigen sie zusammen etwas mehr als 700 MB:
Wie empfohlen, muss man alle Dienste stoppen und alle Backup-Vorgänge in einer Transaktion durchführen.
Auch die Wiederherstellung muss in der gleichen Transaktion erfolgen.
Wie – Backup
cd ~/gitea-srv-local
# Backup der Datenbank
sudo docker exec -t gitea-srv-local_db_1 bash -c 'pg_dump gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
# Gitea herunterfahren
sudo docker-compose down
# Backup-Ordner überprüfen
sudo ls postgres-backups
# Backup-Ordner erstellen
mkdir gitea-backups
# Gitea-Ordner sichern
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# Repos-Ordner sichern
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# wieder hochfahren
sudo docker-compose up -d
Letzter Schritt: sich bei einem anderen Server anmelden und den Backup-Ordner dort herunterladen oder andere ausführlichere Dateioperationen durchführen
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/gitea-backups ~/gitea-backups
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/postgres-backups ~/postgres-backups
Wie – Wiederherstellung
Tatsächlich gibt es etwas mehr, insbesondere in Bezug auf Berechtigungen und Hooks, aber der Grundgedanke ist der gleiche.
Aber! Prüfen Sie die ursprüngliche Dokumentation: https://docs.gitea.com/administration/backup-and-restore
# zuerst installieren
# dann herunterfahren
sudo docker-compose down
# Dateien wiederherstellen
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# wieder hochfahren
sudo docker-compose up -d
# hier etwas mit psql oder pg_restore
sudo docker exec -t gitea-srv-local_db_1 bash -c 'psql gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
Gehen Sie dann zur Benutzeroberfläche und prüfen Sie, ob alles funktioniert.