Backup e ripristino del server Gitea
Possono accadere qualsiasi cosa in questi difficili tempi
Occorre eseguire il backup dei seguenti elementi: 1) database, 2) filestorage, 3) alcuni altri file di Gitea. Ecco come procedere.
Nell’articolo Testing Gitea abbiamo installato il server Gitea.
Quando
Ora, semplicemente come precauzione nel caso in cui accadano cose terribili, è necessario esercitarsi nel procedimento di backup e ripristino.
Meglio prevenire che curare.
Dove
I dati del server Gitea sono composti da tre componenti:
- codice
- filestore
- database
Nell’ambiente di test, tutti insieme occupano un po’ più di 700 MB:
Come consigliato, è necessario arrestare tutti i servizi e eseguire il backup di tutti, in un’unica transazione.
E lo stesso vale per il ripristino, in una transazione analoga.
Come - Backup
cd ~/gitea-srv-local
# backup del database
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'
# arresta Gitea
sudo docker-compose down
# verifica la cartella dei backup
sudo ls postgres-backups
# crea la cartella dei backup
mkdir gitea-backups
# backup della cartella Gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# backup della cartella repos
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# riavvia i servizi
sudo docker-compose up -d
l’ultimo passo consiste nel accedere ad un altro server e copiare la cartella dei backup lì, oppure eseguire altre operazioni più elaborate sui file
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
Come - Ripristino
In realtà, c’è un po’ di più, soprattutto riguardo ai permessi e agli hook, ma l’idea è la stessa.
Ma! controlla il documento originale: https://docs.gitea.com/administration/backup-and-restore
# installalo prima
# poi arrestalo
sudo docker-compose down
# ripristina i file
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# riavvialo
sudo docker-compose up -d
# qui alcune attività con psql o 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'
Poi vai nell’interfaccia utente e controlla