Backup und Wiederherstellung des Gitea-Servers

In diesen schwierigen Zeiten kann alles passieren.

Inhaltsverzeichnis

Es muss ein Backup von 1) Datenbank, 2) Dateispeicher, 3) anderen Gitea-Dateien erstellt werden. Hier geht es los.

Sehr schöne Aufnahme eines geöffneten Festplattenlaufwerks

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:

Gitea-Speicherplatzverbrauch

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.