Como abrir via IP interno?

Prezados especialistas,

Agradeço muito pelas contribuições de vocês!!

Atualmente, consegui compilar o Discourse com sucesso no meu computador local e consigo acessá-lo por meio de localhost:3000. É excelente, incluindo a criação de tópicos, publicações, etc.

Segui principalmente este guia: aqui. É realmente incrível!

No entanto, não consigo acessá-lo pelo meu IP interno (ou seja, o IP da rede local). Por exemplo, 10.1.2.139 (algo assim). Quero acessar este fórum a partir de diferentes dispositivos (ou seja, acessá-lo no meu laptop).

Reprodução

Obtenha o script bash (install_discourse.sh) em: install-rails/linux at main · discourse/install-rails · GitHub

chmod +x install_discourse.sh
sudo ./install_discourse.sh

git clone https://github.com/discourse/discourse.git ~/discourse
sudo -u postgres createuser -s "$USER"
cd ~/discourse

source ~/.bashrc
bundle install

bundle exec rake db:create 
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

bundle exec rake autospec (alguns erros podem ocorrer aqui.)

Iniciar o servidor:

bundle exec rails server
ou
bundle exec rails server --binding=0.0.0.0

Criar um administrador

RAILS_ENV=development bundle exec rake admin:create

Configurar o e-mail

mailcatcher --http-ip 0.0.0.0

Há alguma sugestão para acessar via IP local?
Muito obrigado.

Atenciosamente,
Chieh

Qual comando você usou para iniciar o servidor? Você precisa usar este:

bundle exec rails server --binding=0.0.0.0

Eu também tive problemas para fazer minha máquina de desenvolvimento ouvir o endereço IP com uma instalação recente de desenvolvimento no Ubuntu.

Tenho quase certeza de que fiz o que o Simon recomendou, além de usar bin/rails.

Prezado @simonk,

Obrigado pela sua resposta!!
Estou usando Ctrl+C para interromper o processo no terminal e reiniciando com o comando bundle exec rails server --binding=0.0.0.0, mas parece que ainda não funciona.

Gostaria de saber como parar corretamente e, em seguida, reiniciar. Porque notei que, mesmo após fechar o terminal, ainda consigo acessar o fórum. Além disso, não estou executando via contêiner Docker, então não tenho o launcher para usar o comando ./launcher stop app. Também tentei kill $(cat tmp/pids/server.pid), mas recebi a mensagem cat: tmp/pids/server.pid No such file or directory.

Agradeço qualquer dica que você possa fornecer.

Muito obrigado!

Atenciosamente,
Chieh

(Aviso: Eu mesmo não executei o Rails dessa maneira – uso o ambiente de desenvolvimento baseado em Docker em vez disso)

Você tem certeza disso? Já fui pego nessa situação antes porque meu navegador havia armazenado em cache o aplicativo Discourse e permitia que eu navegasse entre os tópicos, mesmo que o processo do servidor não estivesse em execução. Você pode querer testar usando curl em vez disso:

curl http://localhost:3000

Você também pode verificar se há processos ruby em execução:

ps -ef | grep ruby

A ferramenta netstat pode informar quais processos estão escutando em quais portas. Por exemplo, se eu executar um servidor web Python trivial assim:

$ python3 -m http.server 8099
Servindo HTTP em 0.0.0.0 na porta 8099 (http://0.0.0.0:8099/) ...

Então execute netstat:

$ netstat -tlp
Conexões de Internet ativas (apenas servidores)
Proto Recv-Q Send-Q Endereço Local    Endereço Estrangeiro   Estado    PID/Nome do Programa
tcp        0      0 0.0.0.0:8099     0.0.0.0:*         ESCUTANDO   2511478/python3
...

Isso me diz que o PID 2511478 está escutando na porta 8099 em todas as interfaces (0.0.0.0 significa “todas as interfaces”). Para obter um pouco mais de informações sobre esse processo:

$ ps -fp 2511478
UID          PID    PPID  C STIME TTY          TIME CMD
simon    2511478 1250783  0 09:53 pts/11   00:00:00 python3 -m http.server 8099

Olá @simonk,

Obrigado pelas informações! Elas são bastante úteis. Além disso, já migrei para o docker-container dessa forma.
Vou testar mais o Discourse. Estou realmente animado com isso.

Obrigado novamente!

Atenciosamente,
Chieh