Backup and Restore Gitea server
W trudnych czasach może się wydarzyć wszystko.
Należy wykonać kopie zapasowe 1) bazy danych, 2) magazynu plików, 3) innych plików Gitea. Oto jak to zrobić.
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:
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ź.