Este é um guia para mover sua instância do Discourse de um servidor para outro, incluindo todas as configurações e dados. Este guia se aplica a instâncias do Discourse auto-hospedadas que usam Docker.
Nível de usuário necessário: Administrador do Sistema
Este procedimento envolve alterações de domínio e DNS. Certifique-se de ter acesso tanto ao servidor de origem quanto ao de destino.
Este guia o orientará no processo de migração de sua instância do Discourse de um servidor para outro, garantindo que seus dados, configurações e estrutura sejam preservados.
Isenção de responsabilidade adicionada por @pfaffman 2025-09-12T05:00:00Z.
Essas instruções não funcionam bem agora porque você está usando https e Let’s Encrypt, o que exige que o novo servidor tenha o DNS apontado para ele para que possa solicitar chaves. O que eu recomendo é seguir o Mover um site Discourse para outro VPS com rsync (talvez usando --exclude postgres* e depois fazendo backup e restaurando o banco de dados pela linha de comando.) Isso é interessante, pois se você souber como, poderá ajustar seu DNS local para apontar para o novo servidor para que possa testar se está funcionando enquanto o resto da internet ainda vê o site antigo.
Resumo
Você executará as seguintes etapas principais neste guia:
- Faça backup de sua instância atual do Discourse (servidor de origem).
- Transfira o arquivo de backup para sua instância de destino do Discourse (servidor de destino).
- Restaure o backup no servidor de destino.
- Atualize as configurações de DNS (se aplicável).
Ajustando as configurações de DNS (quando necessário)
Se você estiver usando o mesmo domínio para o novo servidor, reduza o TTL (tempo de vida) em sua entrada de DNS com antecedência. Isso garante o tempo de inatividade mínimo durante a propagação dos registros de DNS atualizados. Se você for usar um novo domínio, esta etapa pode ser ignorada.
Fazendo login e preparando o servidor de origem
- Faça login em sua instância de origem do Discourse com uma conta que tenha permissões de administrador.
- Certifique-se de que tanto o servidor de origem quanto o de destino estejam usando:
- A mesma versão do Discourse.
- O mesmo conjunto de plugins.
- Atualize a versão do Discourse em ambos os servidores visitando
/admin/upgrade.
Evite restaurar um backup mais recente em uma versão mais antiga do Discourse, ou versões incompatíveis do PostgreSQL, pois isso pode causar erros.
Criando e baixando o backup
- Navegue até
/admin/backupsem sua instância de origem do Discourse. - Clique no botão Backup para criar um backup:
- Quando solicitado, confirme clicando em Yes (Sim).
- Assim que o backup for concluído, vá para a aba Backup files (Arquivos de backup) e localize o backup recém-criado.
- Clique em Download (Baixar) para receber um e-mail com um link para download. Clique no link no e-mail para salvar o arquivo de backup localmente.
Antes de prosseguir, revise seu arquivo
app.ymlpara garantir que quaisquer configurações opcionais, como configurações de CDN, plugins instalados ou suporte a HTTPS, sejam consistentes entre os servidores de origem e destino.
Restaurando o backup no servidor de destino
Para restaurar o backup pela linha de comando, consulte a documentação relevante.
- Faça login como administrador em sua instância de destino do Discourse.
- Navegue até
/admin/backups/settingse ative a configuraçãoallow restore(permitir restauração). - Vá para
/admin/backupse clique na aba Backup files (Arquivos de backup). Carregue o arquivo de backup que você baixou anteriormente clicando no botão Upload (Carregar):
- Após o carregamento ser concluído, clique no menu ⋮ (mais opções) ao lado do backup carregado e, em seguida, clique em Restore (Restaurar):
- Confirme clicando em Yes (Sim) quando solicitado.
O processo de restauração começará. Isso pode levar algum tempo, dependendo do tamanho do seu banco de dados. Após a conclusão do processo, você será desconectado automaticamente.
Finalizando e fazendo login
- Faça login em sua instância de destino do Discourse com suas credenciais de administrador.
- Se o site foi feito backup usando HTTPS, certifique-se de que o HTTPS esteja ativado no novo servidor. Se não estiver configurado corretamente, use o console do Rails para desativar temporariamente a configuração “force https” (forçar https).
- Reative quaisquer configurações opcionais editando o arquivo
app.ymle reconstruindo sua instância. Isso pode incluir:- Ativação do suporte a CDN.
- Instalação de plugins adicionais.
- Configuração de HTTPS.
Problemas comuns e soluções
O arquivo de backup não está restaurando
- Verifique se as versões do Discourse e do PostgreSQL correspondem entre os servidores de origem e de destino.
Impossível fazer login após a restauração (com HTTPS ativado)
- Use o console do Rails para desativar
force_httpstemporariamente executando:SiteSetting.force_https = false



