Back-up en herstel van de Gitea-server
Alles kan gebeuren in deze moeilijke tijden
Nodig om de 1) db, 2) filestorage, 3) enkele andere gitea bestanden te back-uppen. Hier gaan we.
In de Testing Gitea post hebben we de gitea server geïnstalleerd.
Wanneer
Nu, gewoon als voorzorgsmaatregel tegen afschuwelijke dingen die kunnen gebeuren, moeten we de back-up en herstelprocedure oefenen.
Better safe than sorry.
Waar
De gitea server data bestaat uit 3 componenten
- code
- filestore
- db
In ons testomgeving nemen ze samen iets meer dan 700MB in beslag:
Zoals ze aanbevelen, moet je alle services stoppen en ze allemaal back-uppen, soort van in één transactie.
En herstellen, ook in één transactie.
Hoe - Back-up
cd ~/gitea-srv-local
# back-up de db
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'
# zet gitea uit
sudo docker-compose down
# controleer de back-upmap
sudo ls postgres-backups
# maak back-upmap aan
mkdir gitea-backups
# back-up de gitea map
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# back-up de repos map
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# start het opnieuw
sudo docker-compose up -d
laatste stuk - log in op een andere server en haal de back-upmap daarheen, of doe iets anders ingewikkelds met bestanden
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
Hoe - Herstel
Daadwerkelijk is er iets meer aan te doen, vooral met betrekking tot rechten en hooks, maar het idee is hetzelfde.
Maar! controleer de originele documentatie: https://docs.gitea.com/administration/backup-and-restore
# installeer het eerst
# zet het dan uit
sudo docker-compose down
# herstel bestanden
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# start het opnieuw
sudo docker-compose up -d
# hier is enige activiteit met psql of 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'
Ga dan naar de UI en controleer het.