Backup e restauração do servidor Gitea

O que quer que seja pode acontecer nestes tempos difíceis

Conteúdo da página

Precisamos fazer backup dos seguintes itens: 1) banco de dados, 2) armazenamento de arquivos, 3) alguns outros arquivos do Gitea. Aqui vamos.

foto muito bacana de um HDD aberto

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:

uso do disco do Gitea

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.