Quais são as formas mais básicas e confiáveis de garantir que um fórum Discourse possa sempre ser recuperado?

Ao longo dos anos, ajudei amigos a hospedar seus próprios fóruns.

Fiz com que eles alugassem um servidor da Hetzner, configurassem backups automatizados no Discourse e eu sincronizasse tudo para o meu Google Drive usando o rclone e uma tarefa cron. Cada administrador de cada fórum tem acesso aos seus próprios backups no meu Drive. É a solução mais simples e segura que eu, como não-sysadmin, consigo imaginar.

Em algumas ocasiões, notei que os tokens não estavam sendo atualizados no rClone (pelo menos em uma instância) e tive que reconfigurá-lo. Como não tenho nenhum tipo de alerta caso uma sincronização falhe, apenas verifico manualmente meu Drive de tempos em tempos para garantir que os últimos backups sejam recentes.

Se você fosse ajudar voluntariamente alguém ou uma associação a hospedar um fórum, qual solução você configuraria para garantir que sempre existam backups em algum lugar que possam ser recuperados com segurança caso o fórum venha a falhar por algum motivo)?

Eu faço backups usando rsync via ssh, com uma conta restrita, a partir de um cronjob. Bem, eu não faço, mas um dos meus moderadores faz. Eu faço e baixo um backup quando realizo uma atualização. Assim, em um dos casos, poderíamos perder alguns dias de atividade do fórum, e no outro, um mês ou mais.

Provavelmente eu deveria configurar um crontab meu. Também poderia aumentar a frequência dos backups — atualmente configurada para 2 dias.

Nos dois casos, temos que ser administradores razoavelmente competentes dos nossos próprios sistemas. Deveríamos perder o fórum apenas se ambos perdêssemos nossas cópias baixadas e nossos próprios backups, além do próprio servidor.

Edição: bom ponto, é preciso ter alguma verificação positiva de que o processo está funcionando e alguma noção, por mais superficial que seja, de que os backups baixados estão bons.

Eu não tomei cuidados especiais com o domínio: idealmente, esse também teria administração dupla e propriedade conjunta de alguma forma. Se perdêssemos o controle, o fórum teria que reaparecer em um novo domínio — ele poderia enviar resumos e notificações aos membros por e-mail, então, com um pouco de confiança, eles poderiam se readicionar.

Eu recomendaria o S3 para backups. Backups diários do fórum, se você quiser se sentir seguro. Backups do VPS, se quiser estar ainda mais seguro.

Também há:

Bem, eu faço o backup do banco de dados a cada hora :man_shrugging: É o mesmo princípio do e-commerce — é preciso considerar qual é o maior intervalo de tempo que se pode e/ou quer restaurar.

Backup no S3 e em um disco externo usando o restic

Concordo. Se você tiver o(s) arquivo(s) YML com a configuração do S3 e os backups no S3, então tudo o que você precisa para restaurar o fórum em um novo servidor é o(s) arquivo(s) YML. Isso tem a vantagem adicional de não encher seu disco com backups.

AVISO: Você precisa se lembrar de pagar a fatura do bucket S3, além da VM. Acho que a da Cloudflare é a mais barata?

Já tive um caso em que alguém perdeu o controle da conta AWS e perdeu todas as suas imagens. Então, apenas lembrar de pagar a fatura é um custo que não deve ser subestimado.

Exatamente isso — não mantenha todas as cópias dos seus dados com um único provedor.

Gosto de ter três cópias criptografadas: uma no host, outra na nuvem (compatível com S3) e a última em um HD óptico ou pen drive USB.

Estou planejando fazer backups em armazenamento descentralizado e, no momento, estou explorando a confiabilidade das opções disponíveis.

No momento, executo um backup diário e o envio para a nuvem.
O banco de dados é backupado usando a funcionalidade de backup integrada do Discourse, e as imagens originais enviadas são backupadas incrementalmente todos os dias com o restic.
Tudo é enviado para um serviço de armazenamento em nuvem, mas a desvantagem atual é que apenas um serviço é utilizado. Seria ideal, no futuro, enviar para múltiplos serviços de nuvem.

use backups offsite e armazenamento de objetos. eu uso o Cloudflare R2 (compatível com S3) e já recuperei dados em diferentes servidores diversas vezes. é fácil de gerenciar e restaurar. além disso, use um build de container duplo.

Uma tática útil para esse tipo de questão é considerar o modelo de ameaças.

Já vimos alguns desses cenários:

  • um incêndio destrói o edifício que abriga seu servidor
  • você perde o controle da conta com seu provedor
  • a pessoa que tem controle sobre seu domínio fica permanentemente indisponível
  • você perde o acesso a uma conta de e-mail
  • seus backups se revelam desatualizados porque algo parou de funcionar
  • você não consegue restaurar seus backups por algum motivo técnico
  • seu administrador de fórum fica permanentemente indisponível ou não colabora

Em resumo:

  • edifícios pegam fogo ou sofrem com enchentes
  • pessoas brigam entre si, ou morrem
  • empresas mudam suas políticas e tomam decisões arbitrárias
  • qualquer cópia única de dados pode se revelar corrompida ou inacessível

Considere cada um desses cenários, para cada pessoa, empresa e cópia, e veja como fica sua vulnerabilidade.

git-annex você pode dar uma olhada, caso não se assuste com os aspectos técnicos