Túneis Cloudflare - Configuração do Discourse não reconhece hostname (porta não acessível)

O daemon cloudflared está em execução corretamente e já o utilizei para diversas coisas (o que significa que o túnel está instalado corretamente no servidor), mas estou com problemas para fazer com que o Discourse setup (./discourse-setup) reconheça meu nome de host para minha instância do Discourse.

  • Estou usando biohacking.forum como nome de host para minha instância.
  • Esta é a minha configuração do Cloudflare Tunnel para biohacking.forum:
  • Também tentei defini-lo como HTTPS para o tipo de serviço.
  • Estou configurando o Discourse em um servidor Ubuntu, em LTS.
  • Executei os seguintes comandos nesta ordem:
  1. sudo mkdir /var/discourse
  2. sudo git clone GitHub - discourse/discourse_docker: A Docker image for Discourse /var/discourse
  3. cd /var/discourse
  4. sudo ./discourse-setup
  5. Ele me pede o nome de host, eu insiro biohacking.forum
  6. A seguinte mensagem é exibida:
Hostname for your Discourse? [discourse.example.com]: biohacking.forum

Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname:  biohacking.forum.
WARNING: Connection to http://biohacking.forum (port 80) also fails.

This suggests that biohacking.forum resolves to some IP address that does not reach this
machine where you are installing discourse.

The first thing to do is confirm that biohacking.forum resolves to the IP address of this server.
You usually do this at the same place you purchased the domain.

If you are sure that the IP address resolves correctly, it could be a firewall issue.
A web search for "open ports YOUR CLOUD SERVICE" might help.

This tool is designed only for the most standard installations. If you cannot resolve
the issue above, you will need to edit containers/app.yml yourself and then type

./launcher rebuild app

O que devo fazer para fazer esta etapa funcionar? Por favor, me avisem se precisarem de mais alguma informação. Obrigado!

Ei, você tem a nuvem cinza (apenas DNS) para o registro “A” antes do ./discourse-setup?

Não estou usando um registro A padrão, estou usando túneis do Cloudflare. Aqui está um exemplo de um serviço que funciona perfeitamente no meu servidor (com túneis do Cloudflare) e a configuração associada:

O Ghost CMS é o serviço:
PORTA: 8085:2368 (8085 é o host e 2368 é o serviço)
HOSTNAME: joshuahabka.com
Configuração do Túnel Cloudflare:

O ícone laranja do Cloudflare está ativado, pois ele usa túneis do Cloudflare, mas para o Discourse ele deve ser relatado como uma porta de acesso normal. Tenho mais de 40 serviços implantados e acessíveis pela web, e o Discourse é o primeiro com o qual estou tendo algum erro.

Por favor, me avise se precisar de informações adicionais!

Então, para o Discourse, eu presumiria que a porta é:
443:443 (host:serviço), que é por isso que eu tinha minha configuração original do túnel Cloudflare como mostrado acima.

Olá @joshhabka :wave:
talvez este tópico ajude, se você ainda não o viu

4 curtidas

Olá Lilly, o guia mencionado não funcionou para mim, ainda recebo o mesmo erro, embora a configuração do meu túnel Cloudflare seja http://localhost:80, conforme declarado, ainda estou preso em

starserver@Starserver:/var/discourse$ sudo ./discourse-setup
As portas 80 e 443 estão livres para uso
'samples/standalone.yml' -> 'containers/app.yml'
./discourse-setup: line 261: 4
scaling*                 2: syntax error in expression (error token is "scaling*                 2")

Hostname para o seu Discourse? [discourse.example.com]: biohacking.forum

Verificando o nome do seu domínio . . .
AVISO: A porta 443 do computador não parece ser acessível usando o nome do host: biohacking.forum.
AVISO: A conexão com http://biohacking.forum (porta 80) também falha.

Isso sugere que biohacking.forum resolve para algum endereço IP que não atinge esta
máquina onde você está instalando o discourse.

A primeira coisa a fazer é confirmar que biohacking.forum resolve para o endereço IP deste servidor.
Normalmente, você faz isso no mesmo local onde comprou o domínio.

Se você tem certeza de que o endereço IP resolve corretamente, pode ser um problema de firewall.
Uma pesquisa na web por "open ports YOUR CLOUD SERVICE" pode ajudar.

Esta ferramenta foi projetada apenas para as instalações mais comuns. Se você não conseguir resolver
o problema acima, precisará editar containers/app.yml você mesmo e, em seguida, digitar

./launcher rebuild app

Desativando "Sempre use HTTPS"

Redireciona todas as solicitações com o esquema "http" para "https". Isso se aplica a todas as solicitações http para a zona. faz com que a porta 80 funcione, mas não a 443

Habilitar uma regra de página para redirecionar para HTTPS também faz com que 80 e 443 falhem, mas se eu não a usar, 443 falha e 80 tem sucesso.

Você não está seguindo as instruções.

Você não pode usar discourse-setup, exceto para que ele crie o arquivo yml.

1 curtida

Obrigado, estou preso aqui:

FAILED
--------------------
Pups::ExecError: /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end' failed with return #<Process::Status: pid 134 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"tag"=>"precompile", "cmd"=>["/usr/local/bin/ruby -e 'if ENV[\"DISCOURSE_SMTP_ADDRESS\"] == \"smtp.example.com\"; puts \"Aborting! Mail is not configured!\"; exit 1; end'", "/usr/local/bin/ruby -e 'if ENV[\"DISCOURSE_HOSTNAME\"] == \"discourse.example.com\"; puts \"Aborting! Domain is not configured!\"; exit 1; end'", "/usr/local/bin/ruby -e 'if (ENV[\"DISCOURSE_CDN_URL\"] || \"\")[0..1] == \"//\"; puts \"Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts.\"; exit 1; end'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

Você precisa editar o arquivo yml e inserir as credenciais smtp

Concluído e tudo está nominal agora. Eu apenas colocaria uma nota na auto-instalação para o post do túnel Cloudflare que as pessoas precisam editar o documento yaml para adicionar seu smtp, hostname, e-mails, etc.

Obrigado!

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.