Respuesta: Realizar copia de seguridad y restauración del servidor de Gitea

Cualquier cosa puede ocurrir en estos tiempos difíciles

Índice

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.

foto muy bonita de un HDD abierto

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:

uso del disco de Gitea

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

Enlaces útiles