Backup e Restauração do Servidor Gitea

Tudo pode acontecer nestes tempos difíceis.

Conteúdo da página

É necessário fazer o backup de 1) do banco de dados, 2) do armazenamento de arquivos e 3) de alguns outros arquivos do Gitea. Vamos lá.

foto muito bonita de um HDD aberto

No post Testando Gitea, instalamos o servidor Gitea.

Para a coleção completa de ferramentas de desenvolvedor, incluindo fluxos de trabalho do Git e gerenciamento de Docker, consulte Ferramentas de Desenvolvedor: O Guia Completo para Fluxos de Trabalho de Desenvolvimento Modernos.

Se você está configurando o Gitea pela primeira vez, confira Escolhendo um servidor git on-prem gratuito - O Gitea é o vencedor! para detalhes de instalação, e Gitea SSL com Apache como proxy reversa para implantação segura.

Quando

Agora, apenas como precaução contra coisas terríveis que podem acontecer, precisamos ensaiar o procedimento de backup e restauração.

Melhor prevenir do que remediar.

Onde

Os dados do servidor Gitea consistem em 3 componentes:

  • código
  • filestore
  • db

Em nosso ambiente de teste, juntos eles ocupam um pouco mais de 700MB:

uso de disco do gitea

Como recomendam, precisamos parar todos os serviços e fazer o backup de todos, de certa forma na mesma transação.

E restaurar, também na mesma transação.

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'

# desligar o gitea
sudo docker-compose down

# verificar a pasta de backups
sudo ls postgres-backups

# criar diretório de backup
mkdir gitea-backups

# backup da pasta 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

# ligar novamente
sudo docker-compose up -d

Último passo - fazer login em outro servidor e puxar a pasta de backup para lá, ou fazer alguma outra manipulação de arquivos mais elaborada

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 - Restaurar

Na verdade, há um pouco mais do que isso, especialmente com permissões e hooks, mas a ideia é a mesma.

Mas! consulte a documentação original: https://docs.gitea.com/administration/backup-and-restore

# instalar primeiro
# depois desligar
sudo docker-compose down

# restaurar arquivos
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea

# ligar 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'

Depois, vá para a UI e verifique.

Para referência rápida sobre comandos do Git, consulte Folha de Referência do GIT: Comandos GIT mais úteis.