Acabei de reativar as linhas e reconstruir o container. Agora, o site está mostrando uma página em branco novamente!
A captura de tela abaixo mostra onde coloquei os códigos em meu app.yml. Como você pode ver, coloquei os códigos de configuração do S3 abaixo de DISCOURSE_NOTIFICATION_EMAIL
Eu não fiz isso. Mas tenho solucionado problemas e acredito firmemente que não configurei o S3 CDN corretamente. Estou usando StackPath e não tenho certeza do que usar no endereço de Origem e no cabeçalho Host
Outra coisa que não tenho certeza é como configurar o recurso de listagem de arquivos do meu bucket do DigitalOcean Space. Agora, estou usando Listagem Restrita. Isso afeta alguma coisa?
Comentei o DISCOURSE_S3_CDN_URL e o site carrega. Isso confirma que minha configuração do S3 CDN é o problema, mas ainda não sei como configurá-lo corretamente.
Não sei muito bem como o Discourse funciona. Sou apenas mais um webmaster que copia e cola do mundo PHP, mas ainda me pergunto por que seria necessário declarar o mesmo CDN duas vezes.
Eu não uso DISCOURSE_CDN_URL porque tenho DISCOURSE_S3_CDN_URL (e provavelmente nenhuma documentação que li me guiou para usá-lo). Então eu tentei.
Adicionei DISCOURSE_CDN_URL: <cdn-url>. A reconstrução não deu erros, mas recebi um erro 502. Quando o removi, meu fórum voltou a funcionar.
Ainda assim, seus problemas podem ocorrer devido a alguma má configuração em outro lugar. Mas eu gosto de soluções fáceis, mesmo quando estou errado, e culpo a situação quando você informa o CDN duas vezes para necessidades diferentes. Ou algo assim.
DISCOURSE_CDN_URL e DISCOURSE_S3_CDN_URL são diferentes. Enquanto DISCOURSE_CDN_URL aponta para o seu fórum, DISCOURSE_S3_CDN_URL aponta para o URL do seu armazenamento S3.
A ideia é que DISCOURSE_CDN_URL sirva assets que podem ser puxados (pullable) como CSS, enquanto DISCOURSE_S3_CDN_URL sirva assets que podem ser enviados (pushable) como JS, imagens e uploads de usuários.
Consegui fazer tudo funcionar, exceto o meu CDN de armazenamento S3. Sempre que habilito essa parte no arquivo app.yml, meu fórum exibe uma página em branco.
Uma olhada na rede do inspetor de elementos do navegador mostra que os assets entregues por DISCOURSE_S3_CDN_URL estão apresentando erro 404.
Isso é bastante… incomum para mim. Mas como eu disse, tenho experiência muito limitada. Estou usando a AWS como CDN através de S3/CloudFlare no WordPress, mas apenas para arquivos estáticos — scripts precisariam de outra configuração. Acho que não adianta comparar WP e Discourse porque são plataformas fundamentalmente tão diferentes. Mas estou tentando entender os princípios do conceito aqui.
Bem, eu entendi muito mais agora do que você
EDIT: E eu estava totalmente errado na minha configuração também Todos os JS, imagens, etc. são servidos via CDN. Mas eu não consegui encontrar CSS lá.
O problema que estou tendo agora é que meu site está tentando carregar ativos .gz.js do CDN de Object Storage, mas os arquivos não estão lá. Como faço para forçar o Discourse a carregar esses ativos .gz.js para o Object Storage?
Com a orientação que você (@Falco) e @pfaffman forneceram, acabei de concluir esta configuração com sucesso.
Para outros membros da comunidade que desejam ver minhas configurações. Aqui estão as capturas de tela. Também escrevi um guia completo enquanto configurava tudo isso.
Usei StackPath e DigitalOcean Spaces. Meu guia inclui um passo a passo de toda a configuração. Se alguém precisar deste guia, terei prazer em postar o URL quando solicitado.
@Falco e @pfaffman, muito obrigado a ambos pela ajuda. Esta é a minha primeira vez configurando o Discourse, mas acabei de concluir as partes mais difíceis (acho!). Sou muito grato!