Respuesta: Realizar copia de seguridad y restauración del servidor de Gitea
Cualquier cosa puede ocurrir en estos tiempos difíciles
Necesito hacer una copia de seguridad de 1) la base de datos, 2) el almacenamiento de archivos, 3) algunos otros archivos de Gitea. Aquí vamos.
En el post de prueba de Gitea instalamos el servidor de Gitea.
Cuando
Ahora, simplemente como precaución ante cosas terribles que puedan ocurrir, necesitamos ensayar el procedimiento de copia de seguridad y restauración.
Mejor prevenir que lamentar.
Dónde
Los datos del servidor de Gitea constan de 3 componentes:
- código
- almacenamiento de archivos
- base de datos
En nuestro entorno de prueba, juntos ocupan un poco más de 700 MB:
Como recomiendan, es necesario detener todos los servicios y hacer una copia de seguridad de todos ellos, más o menos en la misma transacción.
Y restaurarlos, también en la misma transacción.
Cómo - Copia de seguridad
cd ~/gitea-srv-local
# copia de seguridad de la base de datos
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'
# detener Gitea
sudo docker-compose down
# revisar la carpeta de copias de seguridad
sudo ls postgres-backups
# crear carpeta de copias de seguridad
mkdir gitea-backups
# copia de seguridad de la carpeta de Gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# copia de seguridad de la carpeta de repositorios
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# reiniciar
sudo docker-compose up -d
último paso: iniciar sesión en otro servidor y copiar la carpeta de copias de seguridad allí, o realizar alguna manipulación más elaborada de archivos
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
Cómo - Restauración
De hecho, hay un poco más que hacer, especialmente con permisos y hooks, pero la idea es la misma.
¡Pero! revisa el documento original: https://docs.gitea.com/administration/backup-and-restore
# instálalo primero
# luego detén el servicio
sudo docker-compose down
# restaurar archivos
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# reiniciar
sudo docker-compose up -d
# aquí algo de actividad 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'
Luego ve a la interfaz de usuario y verifica