Olá! Instalei o Discourse com sucesso em uma máquina virtual Ubuntu 18.04 (usando o VMware Workstation 15 Player) seguindo o guia. O acesso a http://localhost:3000/ dentro da VM funciona bem, mas não consigo acessá-lo a partir do meu sistema host Windows 10. A rede da VM está configurada no modo bridge, e para executar o servidor Rails, estou rodando:
bundle exec rails server --binding=0.0.0.0
No entanto, quando tento acessar http://192.168.0.172:3000/ a partir da minha máquina host, recebo um erro de conexão recusada. Tentei configurar um servidor HTTP simples em Python dentro da VM:
python3 -m http.server 3000
E consigo acessá-lo efetivamente a partir da máquina host, então acho que isso é específico do Discourse. Estou esquecendo de algo?
Olá @neounix, obrigado pela resposta. Já configurei a rede da VM no modo bridge e consigo acessá-la externamente usando um simples servidor HTTP Python que escuta na mesma porta (3000) e endereço (0.0.0.0), mas, por algum motivo, não funciona com o servidor Discourse…
O problema aqui é que a opção --binding é completamente ignorada. Testei seu comando localmente e notei esta linha na saída (a saída é muito barulhenta, então é muito fácil perder essa linha):
I, [2020-06-08T17:26:55.938086 #21001] INFO -- : listening on addr=127.0.0.1:3000 fd=15
Lendo nosso config/unicorn.conf.rb, para fazer o servidor ouvir em 0.0.0.0, você precisará definir a variável de ambiente UNICORN_BIND_ALL=1. Então, isso deve funcionar: UNICORN_BIND_ALL=1 bundle exec rails server.
Alternativamente, você pode usar o script bin/unicorn, que aceita a opção --host que pode ser usada para vincular a 0.0.0.0.
Obrigado, isso me poupou de uma dor de cabeça.
Será que você pode atualizar os guias oficiais do usuário para incluir isso, em vez da solução que não funciona com bundle exec rails server -b 0.0.0.0?
Vi isso em toda a internet e não conseguia imaginar que não funcionaria.