Instalação do Discourse no Lightsail

Olá mundo, estou tentando configurar meu primeiro fórum Discourse e preciso de ajuda…

As configurações no app.yml parecem todas corretas. Tentei reiniciar, mas o Discourse está indisponível. Qualquer dica sobre como começar a solucionar o problema seria muito apreciada.

Não tenho muita certeza sobre o Lightsail, mas no caso da AWS, quando um domínio não está apontando corretamente para o IP deles, 90% das vezes a culpa é dos grupos de segurança. Você pode tentar abrir as portas necessárias (80, 443, 587, etc.) no grupo de segurança da AWS para o seu VPS?

Obrigado pela sua resposta. Abri essas portas (443 e 587 estavam fechadas) e recriei o aplicativo, mas ainda sem sucesso. Suspeito que seja algo relacionado ao DNS, mas não tenho certeza do que mais alterar. No momento, não tenho o becomeachiron.com configurado, apenas o subdomínio. Parece provável que isso possa quebrar o subdomínio, mas não sei onde hospedá-lo no Lightsail.

Como você configurou apenas o subdomínio?

Recentemente, migramos para o Discourse e para o Amazon Lightsail (então tenho pouca experiência).
Tenho exatamente essa configuração e consegui instalar o Discourse sem nenhum problema.
Primeiro, instalei a AMI oficial do Debian da Amazon.
Depois, configurei o nome do host para meu domínio (discourse.becomeachiron.com).
Em seguida, atualizei o Debian para a versão mais recente:

sudo apt update
sudo apt upgrade

E então segui as instruções para instalar o Discourse (instalei o git e depois o Discourse).

Sem problemas, funcionou.

Fui obrigado a abrir a porta 443 para que o HTTPS funcionasse (e configurei isso no Discourse).

O problema que você descreve parece estar relacionado ao DNS e à resolução de IP.

No Lightsail, há três endereços IP para uma máquina:

  • O IP privado estático, acessível apenas por máquinas da rede interna na mesma região que a sua.
  • O IP público dinâmico, atribuído dinamicamente ao iniciar a instância, que é perdido cada vez que a máquina é parada e você recebe um diferente ao reiniciá-la.
  • O IP público estático, que você pode atribuir à máquina. Esse endereço é permanente (mas eles cobram por ele se a máquina estiver parada; é um valor muito baixo, mas você paga por hora enquanto a máquina não estiver em execução).

Você atribuiu um IP público estático à sua máquina?

Se sim, esse é o IP que você deve configurar no seu DNS.

Se não, você precisa usar o IP público e alterá-lo toda vez que iniciar a máquina, pois ele muda (acho que é possível instalar um cliente de IP dinâmico na sua máquina que faça isso automaticamente, caso encontre um compatível com o DNS da Amazon).

Depois, é necessário aguardar um tempo para que as alterações no DNS sejam propagadas.

Parece que você ainda não configurou o domínio:

 pfaffman@balloon:~$ dig +short discourse.becomeachiron.com @NS-1041.AWSDNS-02.ORG

não retorna nada. Este link testará a propagação, mas, neste momento, não há nenhum registro do seu subdomínio nos servidores de nome da AWS.

Não há registro porque parece que ele não está usando o DNS da Amazon; ele diz que está funcionando com o DNS do Google.

Portanto, ele precisa configurá-lo no Google.

discourse.becomeachiron.com está resolvendo agora para 99.79.192.57

Obrigado a todos pelas respostas. Idealmente, eu hospedaria o Discourse no domínio principal — não em um subdomínio — mas todos os conjuntos de instruções que consigo encontrar insistem em um subdomínio. Isso é uma necessidade?

Eu também estou trabalhando nisso agora mesmo :slight_smile:

Li que é possível usar o domínio sem o www ou o subdomínio do Discourse.

No entanto, isso não é a configuração padrão e parece não ser tão simples. Talvez seja melhor tentar primeiro o método padrão, como você fez.

Insisto: você configurou um endereço IP estático para sua instância do Lightsail?

Por padrão, ele é dinâmico.

Se não, crie um IP estático.

Vá ao painel do Lightsail, selecione sua instância e abra a aba “rede”.
Em seguida, selecione “criar IP estático”.

Sua instância receberá um novo endereço IP permanente.

Depois, acesse o Google DNS e registre esse IP com o nome da sua máquina.

Aqui está onde estou agora:

No Lightsail

  • criei um IP estático e o associei à minha instância (obrigado, fernando)
  • criei uma zona DNS

No Google Domains

  • atualizei os servidores de nome para os da zona DNS
  • criei um subdomínio e apontei-o para o IP estático

O Discourse está configurado corretamente — consigo acessá-lo via IP público. A menos que tenha perdido algo, agora só preciso aguardar a propagação.

Você está fazendo algo errado.

Seus registros SOA apontam para servidores DNS da AWS, não do Google, e você diz que está alterando os registros DNS no Google.

becomeachiron.com
servidor de nomes primário = ns-612.awsdns-12.net
endereço de e-mail responsável = awsdns-hostmaster.amazon.com
serial = 1
refresh = 7200 (2 horas)
retry = 900 (15 minutos)
expire = 1209600 (14 dias)
TTL padrão = 86400 (1 dia)

becomeachiron.com nameserver = ns-1041.awsdns-02.org
becomeachiron.com nameserver = ns-1824.awsdns-36.co.uk
becomeachiron.com nameserver = ns-216.awsdns-27.com
becomeachiron.com nameserver = ns-612.awsdns-12.net

Altere suas configurações DNS no DNS da Amazon ou altere seus registros SOA para apontar para o Google se estiver usando o DNS do Google.

Certo! É isso que eu estava dizendo. Acho que deveria ter incluído o registro whois. Você explicou melhor do que eu.

Então, altere o registro whois ou atualize os servidores de nomes da AWS.

Eu não tinha entendido você, desculpe.

Estou confuso… Registrei através do Google Domains, mas o Lightsail gerou os servidores de nomes.

Você pode registrar o domínio em um registrador e usar o DNS em outro provedor.

Ao comprar um domínio, você adquire apenas o nome e o registro SOA que reside no servidor do registrador do domínio.

Os serviços de DNS são independentes do provedor de domínios.
O registro SOA indica onde estão localizados seus servidores DNS.

Claro, muitos registradores de domínios oferecem o serviço de DNS incluído no preço, como o Google Domains.

No entanto, você comprou serviços de DNS com o Amazon Lightsail, e isso alterou seu registro SOA no Google.

Eu não comprei serviços de DNS com a Amazon; estou usando serviços de DNS externos (a Amazon cobra pelo serviço de DNS, pelo que sei).

Nesse caso, você precisa atualizar os registros DNS por conta própria no seu provedor (no seu caso, o Google).
Nessa situação, você deve alterar o registro SOA para a configuração padrão no DNS do Google.

Ou você pode usar os serviços de DNS da Amazon e atualizar os registros com eles. Nesse caso, mantenha o registro SOA como está e use as ferramentas da Amazon para alterar os registros DNS.

Se você estiver usando o serviço de e-mail com a Amazon, é possível que tenha aceitado alterar seu registro SOA e apontá-lo para os serviços da Amazon.

O que você essencialmente precisa é do endereço IP público do VPS Lightsail e, em seguida, escolher gerenciar seu DNS onde preferir.

Se desejar gerenciá-los por meio da Amazon, pode usar o Route 53, que fornecerá servidores de nomes que você poderá atualizar nas configurações do seu domínio no registrador (por exemplo, Google).

Ou você pode editar o arquivo de zona atual (na seção Gerenciar DNS do seu domínio) e atualizar seu registro A lá.

Como li acima, você gostaria de hospedar no domínio principal; posso ajudar a configurar isso. É exatamente como uma instalação normal e é perfeitamente aceitável fazer isso, pois, às vezes, as pessoas simplesmente querem que seu fórum esteja em um domínio diferente.

Por exemplo: fórum da comunidade do Twitter.

Obrigado a todos novamente! Estou em atividade: http://discourse.becomeachiron.com/

Ainda estou organizando como essas peças funcionam exatamente juntas — não mexo com coisas de DNS regularmente. Agora preciso colocar meu domínio principal no ar de alguma forma :slight_smile:

Parece que você está usando o AWS Route53 para gerenciar seu DNS.

Portanto, para o domínio principal, siga estes passos:

  1. Crie um registro Alias (A) para o domínio principal (indicado por @) apontando para o IP do seu Lightsail.
  2. Edite seu arquivo app.yml para usar o domínio principal.
  3. Reconstrua.
  4. Execute um remap do Discourse.

É tudo o que você precisa fazer.