Ei, configurei o Discourse padrão em uma máquina Linux usando este guia. Tudo correu super bem e o site foi iniciado perfeitamente.
Decidi permitir que os usuários se conectassem via Facebook, então segui as instruções do Facebook vinculadas ao link acima (gostaria de vincular novamente, mas parece que novos usuários só podem postar dois links). Isso acabou não funcionando, mas o site continuou no ar (não me lembro do erro que obtive ao tentar fazer login via Facebook).
Ao revisar a documentação do Facebook, vi algo sobre a necessidade de ter o HTTPS habilitado, então comecei a seguir estes documentos. Tudo correu bem até o comando ./launcher rebuild app, onde obtive um erro do PostgreSQL. O que me surpreendeu, pois não fiz nada na configuração do PostgreSQL (pelo que sei). O primeiro erro está abaixo:
INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Não parei o serviço do PostgreSQL, mas tentei executar service start postgres e ele disse que não estava instalado. Então, presumo que ele seja instalado automaticamente de outra forma do que estou acostumado. Alguma ideia do que eu possa ter feito de errado? Obrigado
Sim, está correto. E essas são as instruções que segui. Eu primeiro migrei para o guia de conexão com login do Facebook, mas duvido que esse seja o problema. Segui o guia que você postou, migrei para HTTPS e agora estou enfrentando os problemas listados acima.
Ok, bem, quando terminei o primeiro guia, o site estava no ar, mas não era HTTPS. Eu assumi que não seria HTTPS até que eu o ativasse. Vou revisar as instruções novamente, talvez eu não tenha entendido algo, e então volto a dar um retorno.
Ok, consegui colocar o app de volta no ar, mas não vejo nenhuma parte nessas instruções que configure o site como HTTPS, já que não há nada envolvendo certificado além do método Let’s Encrypt no final. O que estou perdendo? Pode me indicar exatamente onde, nessas instruções, a configuração de HTTPS é feita?
Aposto que apertei ENTER para pular e nem percebi. Se for esse o caso, seria melhor simplesmente rodar a configuração novamente ou seguir as instruções do Let’s Encrypt? Lembrando que já tenho um pouco de conteúdo no site agora e não quero que seja apagado. (Obrigado novamente pela ajuda)
Eu acho que sim. Tenho bastante experiência trabalhando com servidores, mas não tenho estado muito ativo desde que o Let’s Encrypt foi lançado, então simplesmente assumi que haveria uma seção sobre como obter um certificado na documentação, caso algo assim funcionasse automaticamente. Como não havia, assumi que teria que fazer isso em uma etapa separada. Não há nada naquela página que mencione o Let’s Encrypt, exceto a saída do comando ./disource-setup. Talvez seja bom mencionar, abaixo de “Editar a Configuração do Discourse” (antes do comando), que, se você quiser HTTPS, precisará inserir algo no campo do Let’s Encrypt. Eu sabia procurar nessa página por HTTPS, mas não encontrei nenhuma correspondência com a string “https” (ao usar Ctrl+F), então assumi que não estava lá. Procurei por “https” e “cert”, e como não encontrei, achei que fosse algo separado.
E, honestamente, se eu trabalhasse com hospedagem de sites com mais frequência, provavelmente teria visto o Let’s Encrypt e imediatamente entendido o que estava acontecendo. Talvez fosse útil ter uma seção “O que você precisará” que incluísse um e-mail associado ao Let’s Encrypt?
Não quero que isso pareça ofensivo; a documentação é excelente, e foi um erro humano (o meu erro) que causou o meu problema.
Não consigo dizer se você não viu o restante da minha resposta, mas talvez eu apenas envie um PR com as correções que acho que seriam boas. Mas realmente, apenas mencionar que a documentação já trata dos certificados seria ótimo.
Ah, certo! Então a documentação de instalação na nuvem não deixa isso claro? Parece que sim.
Vou verificar o texto em discourse-setup para ver se seria possível esclarecer melhor o que é o Let’s Encrypt. É verdade que não devemos presumir que o usuário já saiba disso.