Sauvegarde et restauration du serveur Gitea

Tout peut arriver en ces temps difficiles

Sommaire

Il faut sauvegarder le 1) db, 2) filestorage, 3) certains autres fichiers gitea. Voici comment faire.

très belle photo d’un disque dur ouvert

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.

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 :

utilisation du disque de Gitea

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.

Liens utiles