Backup e restauração
Um backup é um arquivo .tar.gz com o banco de dados, as mídias e o slash.lock do projeto. Os backups ficam em storage/backups/, no servidor.
Backup automático
Seção intitulada “Backup automático”O painel faz o backup sozinho. Uma tarefa roda a cada hora e cria o backup do dia quando o automático mais novo tem 24 horas ou mais. O painel também faz essa checagem ao subir, depois que o servidor já está no ar. Assim, um projeto reiniciado com frequência também ganha o seu backup diário.
O painel guarda 7 backups automáticos, e apaga os mais antigos ao criar um novo. Os backups de segurança feitos antes de uma restauração têm a própria regra: guardam-se 3 backups. Os manuais nunca são apagados pelo painel. Eles ficam em storage/backups/ até você apagá-los no servidor.
O que cada backup guarda
Seção intitulada “O que cada backup guarda”Cada arquivo tem o nome backup-<instante UTC>-<tipo>.tar.gz. O tipo é auto, manual ou pre-restore. Dentro do arquivo ficam três itens:
db.bak: a cópia do banco de dados.slash.lock: a versão do painel e dos módulos.media/: os arquivos de mídia do projeto.
A pasta storage/backups/ fica acessível só para o usuário do serviço, e cada arquivo de backup também. Um backup tem os hashes das senhas e os e-mails dos usuários. Trate as cópias que você tirar dele com o mesmo cuidado.
Backup manual
Seção intitulada “Backup manual”Para fazer um backup agora, rode slash backup como o usuário do serviço, na pasta do projeto. Com o servidor no ar, o comando funciona: os dois revezam o acesso ao banco.
sudo -u slash-<projeto> -H sh -c 'cd /srv/<projeto> && /home/slash-<projeto>/.bun/bin/bun /opt/slash-kit/cli/bin.ts backup'
A saída de uma execução é esta:
Backup criado: storage/backups/backup-<data>-manual.tar.gz
[saída: 0]
Para ver o uso, rode slash backup --help:
uso: slash backup [--restore <arquivo>] [--dir <pasta>]
[saída: 0]
Dois erros do slash backup merecem atenção. Banco de dados não encontrado em <arquivo>. O servidor já rodou neste projeto? aparece quando o banco ainda não existe, ou seja, antes da primeira subida; nesse caso, suba o serviço antes. Arquivo de backup não encontrado: <arquivo> aparece no --restore quando o caminho e o nome dentro de storage/backups/ não batem com nenhum arquivo.
O botão Gerar backup agora, na tela Backup do painel, faz o mesmo.
Copie o backup para fora da VPS por sua conta. O projeto não faz cópia externa.
Restaurar pela linha de comando
Seção intitulada “Restaurar pela linha de comando”Restaure com o serviço parado. Os passos são estes:
- Pare o serviço:
sudo systemctl stop slash-<projeto>. - Rode
slash backup --restore <arquivo>como o usuário do serviço. O<arquivo>pode ser o caminho do arquivo ou só o nome de um backup destorage/backups/. - Responda
sà pergunta. O comando mostraRestaurar … substitui o banco de dados e as imagens atuais. Um backup do estado atual é feito antes. Continuar? [s/N]. São aceitos como sims,sim,yeyes, em qualquer caixa. Qualquer outra resposta cancela, com a mensagemRestauração cancelada: nada foi alterado. - Suba o serviço de novo:
sudo systemctl start slash-<projeto>. - Publique o site de novo, na tela Publicação do painel. A linha de comando não publica o site.
Depois de restaurar, o comando informa três coisas. Todos saem do painel, e os links de convite e de recuperação de senha deixam de valer. O backup do estado anterior fica em storage/backups/, com o nome que o comando mostra. O site publicado só muda quando você pedir a publicação.
Antes de substituir o banco, a restauração guarda o estado atual como um backup pre-restore. Se a restauração não era a que você queria, restaure esse arquivo do mesmo jeito.
Restaurar um backup de outra versão
Seção intitulada “Restaurar um backup de outra versão”A restauração confere a versão do painel. Um backup feito por uma versão mais nova do painel é recusado, com a mensagem Este backup é de uma versão mais nova do painel (<versão do backup>) do que a instalada (<versão instalada>). Atualize o painel antes de restaurar. Esse backup só entra num projeto de painel igual ou mais novo. A 1.1.0 não traz comando de atualização (veja Atualização de versão).
Um backup de versão mais antiga pode ser restaurado pela linha de comando, com o serviço parado. Depois da restauração, o comando prepara o banco para a versão instalada. A tela de Backup do painel só restaura backups da mesma versão.
Titulares excluídos e backups
Seção intitulada “Titulares excluídos e backups”A exclusão de dados de um titular pela tela de Privacidade não atinge os backups. O titular excluído continua nos backups até eles expirarem:
- Os automáticos expiram quando saem dos 7 backups mais recentes.
- Os de segurança, quando saem dos 3 backups mais recentes.
- Os manuais ficam até você apagá-los no servidor.
Ao restaurar um backup antigo, o titular volta junto com o restante do banco. Nesse caso, repita a exclusão dele na tela Privacidade.
Limites e mais detalhes
Seção intitulada “Limites e mais detalhes”Os limites de retenção estão na tabela de Vários projetos, mídia e atualização.