Olá a todos! Já tentei algumas vezes colocar o Discourse no ar no Google Cloud. Atualmente estou na minha terceira tentativa, criando uma instância de VM (Ubuntu 18.04 minimal) e instalando o Discourse manualmente pelo terminal. Seguindo o guia, tudo parece estar correto, mas, após concluir o ./discourse-setup, não consigo acessar o site.
Também tentei instalar o Discourse usando as soluções de implantação “um clique” do Google Marketplace (a própria do Google e a da Bitnami). Ao fazer isso, consegui acessar a página inicial do Discourse.
Suspeito que haja algum problema relacionado ao Google e às portas (e que esse problema tenha sido evitado com as instalações prontas), mas sei muito pouco sobre tudo isso para depurá-lo sozinho. Alguma ideia?
Isso poderia estar relacionado ao firewall?
Segundo meu entendimento, o G Cloud exige que marquemos duas caixas de seleção para permitir o acesso público a uma VM. A mesma configuração pode ser feita posteriormente, se necessário.
Agora estou pensando que talvez eu não esteja executando um servidor web? Preciso instalar o Nginx antes ou depois de instalar o Discourse, ou algo assim? Seguindo uma linha de raciocínio deste tópico, idêntico ao meu problema.
Ok, estou começando a achar que esse é o problema. Parecia que o Nginx estava instalado, mas não estava rodando. Matei os PIDs 14311 e 14295 do docker-proxy e depois executei o Nginx. Agora o Nginx está vinculado à porta 80 e, ao acessar meu site, sou recebido pelo Nginx!
Agora é preciso fazer o Docker/Discourse funcionar novamente.
Também encontrei este guia sobre como instalar e configurar o Discourse com Nginx em uma versão mais antiga do Ubuntu. Eles parecem ter alterado a porta do Docker, para a porta 80 por algum motivo. Talvez haja algum conflito aqui.
De alguma forma, consegui ter o Nginx rodando na porta 80 e o docker-proxy escutando nas portas 8060 para HTTP e 9443 para HTTPS (como sugerido neste outro tutorial). Mas, tendo alcançado isso, estou perdido novamente. O Discourse parece ser um fórum tão legal, mas aparentemente impossível de instalar no Google Cloud para iniciantes como eu.
Você não precisa executar um servidor web dedicado, a menos que planeje usá-lo para mais do que hospedar o Discourse, já que o Discourse já vem com o servidor Nginx integrado. Você poderia confirmar se o seu servidor foi atribuído um endereço IP público e se ele está configurado para permitir conexões externas nas portas 22, 80 e 443?
Sim. Minha instância de VM no Google possui um IP público e permite tráfego nas portas 22, 80 e 443.
Acho que isso também foi demonstrado quando eu matei os PIDs do processo docker-proxy (nas portas 80 e 443), iniciei o Nginx (na porta 80) e consegui acessar a página inicial do Nginx no meu site.
Isso indica que há algo errado com a própria instalação. Se for uma instalação nova, provavelmente é mais fácil apenas destruir a VM e configurá-la novamente.
Já instalei o software três vezes, e as portas sempre ficam sem vínculo. Fiz três instalações bem-sucedidas, mas nunca consegui acessar o fórum. Por isso, estou considerando usar a versão do Google (que funciona, mas não permite configurar o SMTP) e, em seguida, encontrar uma maneira de configurar o SMTP a partir dessa versão.
É possível configurar o SMTP após a conclusão da instalação?
Seguindo o “Passo 11” neste link, consegui criar (já que não existia) e editar o arquivo discourse.conf. Após fazer isso, aparentemente pude reiniciar o “serviço discourse” e testar minhas configurações de e-mail?
Isso significa que não preciso reinstalar o Discourse, correto?
Ao verificar meus serviços em execução, no entanto, não vejo nenhum chamado “discourse”, embora meu fórum Discourse esteja obviamente em funcionamento.
Desculpe, não tenho a menor ideia de como a imagem do Google Cloud está configurada. Fiz mais de uma dúzia de instalações (incluindo uma na semana passada) e tenho quase certeza de que o problema provavelmente está relacionado à forma como sua VM foi configurada.
Estes são os meus passos de preparação antes de seguir o Guia oficial de instalação:
Configurar o Compute Engine para permitir tráfego HTTP e HTTPS.
Configurar o DNS e confirmar.
Garantir conectividade com minha VM via SSH.
Posso assegurar que o processo funciona.
PS: Geralmente uso a versão minimal do Ubuntu no Google Cloud para instalar o Discourse.
Hm. Que estranho. Mas obrigado por confirmar que isso é de fato possível no Google Cloud. Também acho que a instalação do Discourse funciona bem, e que o problema está na VM/portas. Então vou tentar uma quarta vez amanhã. Mesmo tendo feito aqueles passos de preparação todas as vezes. Obrigado, Bhanu.
Vou verificar agora. Acabei de remover as instâncias antigas e o projeto, e criei um novo projeto e uma nova instância no Google Cloud. Vou tentar instalar o Discourse agora e informar as portas verificadas!
Certo, então alguns dias depois. Está funcionando!
Fiz o mesmo processo mais uma vez, mas fui mais cuidadoso em cada etapa desta vez.
Apaguei minha instância e projeto no Google Cloud e comecei com um projeto novo.
Em seguida, criei um novo projeto e uma nova instância. Ubuntu 18.04 LTS minimal. HTTP/HTTPS habilitado. Antes de seguir o guia oficial, linkado acima, fiz como o Bhanu disse e testei a conectividade. Segui o “tutorial de boas-vindas” do Google Cloud, que também envolve testar um script de servidor Python na porta 80, etc.
Durante o processo do “guia oficial”, fui muito cuidadoso na configuração do SMTP. Por algum motivo, decidi não usar o Mailgun, mas acabei usando o Sendinblue. O que funciona muito bem!
Realmente não sei qual foi a diferença desta vez, mas agora está funcionando. Obrigado por discutir comigo no tópico!
Não sei por que não consigo editar minha postagem anterior, mas um moderador pode fundi-las.
Só queria adicionar que acho que meu problema e solução PODEM ter sido que eu estava muito ansioso.
Por ter instalado um plugin defeituoso, recentemente precisei formatar e reinstalar minha instância do Discourse. Quando iniciei essa nova instância, obtive um novo IP. Então, fui ao meu serviço de hospedagem, atualizei meu ponteiro A/DNS, que aponta meu subdomínio discourse.mydomain.com para o IP da minha instância do Google Cloud, e depois voltei ao SSH do Google Cloud para executar a configuração.
Quando você executa ./discourse-setup pela primeira vez, a configuração verifica a capacidade de vincular às portas 80 e 443. Mas, por algum motivo, ela novamente se recusou a vincular às portas 80 e 443. Verifiquei o DNS no who.is e o subdomínio resolveu corretamente para o IP e tudo mais, mas ainda assim não funcionou. Tentei executar ./discourse-setup três vezes, sem sucesso. Verifiquei com netstat -ltnpu, nada de especial. Esperei mais 5 minutos, executei pela quarta vez e agora funcionou.
Não consigo editar minha postagem anterior. Mas, na verdade, tive problemas para instalar novamente. Desta vez, adicionei também as seguintes permissões no meu firewall:
Acredito que não seja necessário configurar nenhuma regra de saída, pois todas as portas estão abertas por padrão, exceto a porta 25, que é sempre bloqueada.