Sauvegarde et restauration du serveur Gitea
Tout peut arriver en ces temps difficiles
Il faut sauvegarder le 1) db, 2) filestorage, 3) certains autres fichiers gitea. Voici comment faire.
Dans le billet Testing Gitea, nous avons installé le serveur gitea.
Quand
Maintenant, juste comme une précaution face aux choses terribles qui pourraient arriver, il est nécessaire de répéter la procédure de sauvegarde et de restauration.
Mieux vaut être prudent que regretter.
Où
Les données du serveur Gitea se composent de trois composants :
- code
- filestore
- db
Dans notre environnement de test, ensemble ils prennent un peu plus de 700 Mo :
Comme ils le recommandent, il faut arrêter tous les services et sauvegarder tout, dans la même transaction.
Et pour la restauration, dans la même transaction également.
Comment - Sauvegarde
cd ~/gitea-srv-local
# sauvegarder la base de données
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'
# arrêter gitea
sudo docker-compose down
# vérifier le dossier des sauvegardes
sudo ls postgres-backups
# créer le dossier de sauvegarde
mkdir gitea-backups
# sauvegarder le dossier gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# sauvegarder le dossier repos
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# relancer
sudo docker-compose up -d
dernière étape : se connecter à un autre serveur et copier le dossier de sauvegarde là-bas, ou effectuer d’autres manipulations plus élaborées des fichiers
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
Comment - Restauration
En réalité, il y a un peu plus à faire, surtout concernant les permissions et les hooks, mais l’idée est la même.
Mais ! vérifiez le document officiel : https://docs.gitea.com/administration/backup-and-restore
# installez-le d'abord
# puis arrêtez-le
sudo docker-compose down
# restaurez les fichiers
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# relancez-le
sudo docker-compose up -d
# ici, certaines actions avec psql ou 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'
Ensuite, allez dans l’interface utilisateur et vérifiez.