Backup e restauração do servidor Gitea
O que quer que seja pode acontecer nestes tempos difíceis
Precisamos fazer backup dos seguintes itens: 1) banco de dados, 2) armazenamento de arquivos, 3) alguns outros arquivos do Gitea. Aqui vamos.
No post Testando o Gitea instalamos o servidor Gitea.
Quando
Agora, apenas como precaução contra coisas terríveis acontecendo, precisamos ensaiar o procedimento de backup e restauração.
Melhor prevenir do que remediar.
Onde
Os dados do servidor Gitea consistem em três componentes:
- código
- armazenamento de arquivos
- banco de dados
Em nosso ambiente de teste, juntos eles ocupam um pouco mais de 700MB:
Como recomendado, precisamos parar todos os serviços e fazer o backup deles todos, de forma mais ou menos transacional.
E restaurar também de forma transacional.
Como - Backup
cd ~/gitea-srv-local
# backup do banco de dados
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'
# desligue o Gitea
sudo docker-compose down
# verifique a pasta de backups
sudo ls postgres-backups
# crie a pasta de backup
mkdir gitea-backups
# backup da pasta do Gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# backup da pasta de repositórios
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# ligue novamente
sudo docker-compose up -d
última etapa: faça login em outro servidor e puxe a pasta de backup para lá, ou faça alguma manipulação mais elaborada de arquivos
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
Como - Restauração
Na verdade, há um pouco mais disso, especialmente com permissões e hooks, mas a ideia é a mesma.
Mas! consulte o documento original: https://docs.gitea.com/administration/backup-and-restore
# instale primeiro
# depois desligue
sudo docker-compose down
# restaure os arquivos
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# ligue novamente
sudo docker-compose up -d
# aqui alguma atividade com 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'
Em seguida, vá para a interface do usuário e verifique.