ホスト名でポート443にアクセスできず、ポート80も失敗する

こんにちは、Discourseをセルフホストするのは初めてです。wget -qO- https://raw.githubusercontent.com/discourse/discourse_docker/main/install-discourse | sudo bash を実行して、公式のGitHubインストールガイドに従いました。サブドメインへの接続まで全て順調に進みましたが、検証を完了した後も、「このコンピューターのポート443はホスト名: \[Discourseサブドメイン\] からアクセスできないようです」および「\[Discourseサブドメイン\] ポート80への接続」も失敗するという同じエラーが繰り返し表示されます。

まず、app.yml が存在しなかったので、オンラインで確認して修正しました。ポートを81に変更し、443も変更して再度試しましたが、ポートを変更していないかのように同じエラーが発生しました。

また、raspapが問題を引き起こしているかどうかを確認したところ、ポート80を使用していることがわかりました。これを81に変更しましたが、まだ同じエラーです。

何が間違っているのでしょうか?これはRaspberry Pi 5を使用しているからでしょうか?ルーター設定でポートを開ける必要がありますか?途方に暮れており、これが初心者向けの質問であれば申し訳ありません。おそらく初心者だからでしょう。

うーん…これを読んでいますか?

いいえ、でも現在抱えている問題を解決してくれると確信しているので、ぜひ試してみます。ありがとうございます :slight_smile:

ポート80のエラーは修正できましたが、なぜ443がまだ動作しないのか分かりません。raspapがまだそれを使用している可能性があるかどうかわかりませんが、変更できないと思います。

Cloudflareトンネルの件を理解するのに永遠とも思える時間がかかりましたが、このガイドに従ってポート80と433のエラーなしで接続できるようになりました: Install Discourse on a residential internet with Cloudflare Tunnel

その後、5秒のカウントダウンがあり、動作を開始したかと思ったら停止しました。これで完了だと思いドメインにアクセスしましたが、応答がないと表示されます。ローカルホストでも何も表示されません。起動方法が間違っているのでしょうか?設定は何も変更しておらず、すべてアンインストールして再インストールしても解決しませんでした。再構築も停止するだけで、doctor discourseはDiscourseコンテナアプリが実行中であると表示します。では、ローカルネットワークでアクセスして、そもそも他のデバイスで起動しているか確認するにはどうすればよいですか?

RaspberryのIPアドレスをcURLして応答があるか試すことができます。

また、Cloudflareダッシュボードでトンネルの健全性を確認することもできます。

「いいね!」 4

curl: (7) 0 ミリ秒後に (ここにIP) ポート 80 への接続に失敗しました: サーバーに接続できませんでした

Cloudflareのダッシュボードでは正常と表示されています。

言い忘れていましたが、Raspberry Piのホットスポットであるraspapもホストしており、ウェブダッシュボードもホストしていますが、そのポートを81に変更しました。

「いいね!」 1

Discourse は PI のポート 80 からアクセスできるはずなのに、cURL は別のマシンから到達できないということですか?

app.yml ファイルを共有していただけますか?

pi自体でcurlを試しました。また、携帯電話からもそのウェブサイトにアクセスできませんが、PiのIPアドレスとポート81からホストしている別のサイトにはアクセスできます。

以下はapp.ymlファイルです。

templates:

  - templates/postgres.template.yml

  - templates/redis.template.yml

  - templates/web.template.yml

  - templates/web.ratelimited.template.yml

  - templates/web.ssl.template.yml

  - templates/web.letsencrypt.ssl.template.yml

expose:

  - 80:80

  - 443:443

params:

  db_default_text_search_config: pg_catalog.english

  db_shared_buffers: 4096MB

env:

  LC_ALL: en_US.UTF-8

  LANG: en_US.UTF-8

  LANGUAGE: en_US.UTF-8

  DISCOURSE_HOSTNAME: forum.iambest.net

  DISCOURSE_DEVELOPER_EMAILS: (private email)

  DISCOURSE_SKIP_EMAIL_SETUP: '1'

  UNICORN_WORKERS: 8

volumes:

  - volume:

      host: "/var/discourse/shared/standalone"

      guest: "/shared"

  - volume:

      host: "/var/discourse/shared/standalone/log/var-log"

      guest: "/var/log"

hooks:

  after_code:

    - exec:

        cd: "$home/plugins"

        cmd:

          - git clone https://github.com/discourse/docker_manager.git

run:

  - exec: echo "Beginning of custom commands"

  - exec: echo "End of custom commands"

Install Discourse on a residential internet with Cloudflare Tunnel のガイドに全く従っていませんか?

ポートやテンプレートのコメントアウトをしていなかった、など。

「いいね!」 2

ああ、その通りです。それは、トラブルシューティング中に、以前機能しなかった理由がそれかもしれないと確信が持てなかったため、削除したからです。

ポートをコメントアウトすべきかどうかも確信が持てなかったので、コメントアウトせずに再度試したところ、動作するようになりました…少しだけ、これが正しく見えないためです。

ガイドに書かれていたように、ロケット(Rocket)の機能も無効にしました。問題はドメインでもローカルホストでも発生します。

CSSの問題のようですが、ファイアウォールが原因の可能性もありますか?お使いのインターネットサービスプロバイダ(ISP)でファイアウォールによる制限はありますか?

ファイアウォールの制限は設定しておらず、CSSも一切触っていません。使用しているルーターも非常に制限が厳しいため、残念ながらファイアウォールの設定を変更することができません。

また、ポート25と455以外に制限されているポートはないようです。

「いいね!」 1

また、何らかの理由でHTTPSではなくHTTPを使用しているようです。ガイドに記載されていたように、app.ymlでHTTPSを強制したのですが、それでもHTTPSを使用してサイトにアクセスできない理由がわかりません。

@Falco Cloudflare Tunnelを使用する場合、LetsEncrypt証明書は必要ですか?それともCloudflare経由で自動的に処理されますか?