Mova sua instância do Discourse para um servidor diferente

Apenas adicionando um caso extremo de migração com o qual me deparei aqui, caso ajude alguém.

Me deparei com um caso extremo do Let’s Encrypt/SSL ao mover uma instância standalone do Discourse para um novo VPS, então escrevi o diagnóstico exato e as etapas de recuperação, caso sejam úteis para qualquer outra pessoa seguindo este guia.

No meu caso, o nginx dentro do app não iniciava porque ambos os arquivos .cer em /var/discourse/shared/standalone/ssl/ haviam se tornado arquivos de zero bytes:

PEM_read_bio_X509_AUX() failed

A reconstrução tentou emitir o certificado novamente e, após várias tentativas, atingi o limite de taxa de certificados do Let’s Encrypt. Copiar os arquivos de certificado ainda válidos do servidor antigo não foi suficiente, pois iniciar o app os substituiu por arquivos de zero bytes novamente.

O que acabou corrigindo o problema foi parar o app e copiar tanto o diretório funcional /var/discourse/shared/standalone/ssl/ quanto o estado correspondente do /var/discourse/shared/standalone/letsencrypt/ do servidor antigo, e depois iniciar o container novamente.

Documentei a sequência completa aqui:

Estas são notas de diagnóstico/recuperação desta migração em particular, e não uma substituição para a documentação oficial de migração ou HTTPS.

Há também um tópico mais antigo no Meta cobrindo o modo de falha relacionado de .cer vazio: