Backup e Restauração do Servidor Gitea
Tudo pode acontecer nestes tempos difíceis.
É 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á.

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:

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.