Backup and Restore Gitea server

W trudnych czasach może się wydarzyć wszystko.

Page content

Należy wykonać kopie zapasowe 1) bazy danych, 2) magazynu plików, 3) innych plików Gitea. Oto jak to zrobić.

bardzo ładne zdjęcie otwartego dysku twardego

W testowaniu Gitea zainstalowaliśmy serwer Gitea.

Kiedy

Obecnie, jako środka ostrożności przed wystąpieniem złych rzeczy, należy przeprowadzić ćwiczenie procedury tworzenia kopii zapasowej i przywracania.

Lepiej być ostrożnym, niż żałować.

Gdzie

Dane serwera Gitea składają się z trzech komponentów:

  • kod
  • magazyn plików
  • baza danych

W naszym środowisku testowym wszystkie razem zajmują nieco więcej niż 700 MB:

użycie dysku Gitea

Jak zalecają, należy zatrzymać wszystkie usługi i wykonać kopie zapasowe wszystkich, w taki sam sposób, jakby to była jedna transakcja.

I przywracanie również w tej samej transakcji.

Jak – tworzenie kopii zapasowej

cd ~/gitea-srv-local

# tworzenie kopii zapasowej bazy danych
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'

# wyłączanie Gitea
sudo docker-compose down

# sprawdzenie folderu z kopiami zapasowymi
sudo ls postgres-backups

# tworzenie folderu do kopii zapasowych
mkdir gitea-backups

# tworzenie kopii zapasowej folderu Gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea

# tworzenie kopii zapasowej folderu repozytoriów
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git

# uruchamianie ponownie
sudo docker-compose up -d

Ostatni krok – zaloguj się na innym serwerze i pobierz folder z kopiami zapasowymi, albo wykonywaj bardziej rozbudowane operacje na plikach.

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

Jak – przywracanie

W rzeczywistości jest to nieco bardziej skomplikowane, zwłaszcza co do uprawnień i haseł, ale idea jest taka sama.

Ale! sprawdź oryginalne dokumenty: https://docs.gitea.com/administration/backup-and-restore

# zainstaluj je najpierw
# następnie wyłącz usługę
sudo docker-compose down

# przywracanie plików
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea

# uruchom ponownie
sudo docker-compose up -d

# tutaj pewne działania z psql albo 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'

Następnie przejdź do interfejsu użytkownika i sprawdź.

Przydatne linki