HomepageがZimaOS上で起動しているのに、ブラウザーにHost validation failedと表示される場合、コンテナ自体は正常な可能性があります。このエラーはHomepage内部のセキュリティチェックによるもので、必ずしもZimaOSのファイアウォールやポートの問題とは限りません。
HomepageがZimaOSのIPを拒否する理由
Homepageは、常に許可されているlocalhostアドレス以外のホスト名またはIPアドレスを介してアクセスする場合、HOMEPAGE_ALLOWED_HOSTSを必要とします。この値は、Homepageがリクエストで認識するホストと一致する必要があり、ポート番号を含める場合もあります。
現在のHomepageプロジェクトの説明では、この変数はカンマ区切りのリストであり、このエラーが発生した場合はアプリケーションログに表示される、拒否されたホストをそのままコピーするよう案内されています。
値を決める際は、Homepageプロジェクトの最新のホスト検証ルールを使用してください。
コンテナを変更する前にエラーを確認する
コミュニティからの返信で有用だったのは、トラブルシューティングの順序です。まずHomepageがポート3000で実行されていることを確認し、その後、環境変数を変更する前にコンテナログを確認します。通常、ログには拒否されたホストが記録されています。
たとえば、ログで192.168.1.20:3000が拒否されている場合、別のIPアドレスやドメイン名だけを追加しても、そのリクエストは許可されません。実際にアクセスしているホストをそのまま使用してください。
アプリの環境設定でHOMEPAGE_ALLOWED_HOSTSを設定する
ZimaOSのアプリ設定で環境変数を追加または修正し、使用するLAN IPアドレス、ホスト名、リバースプロキシ名、または複数のカンマ区切りホストを指定します。
HOMEPAGE_ALLOWED_HOSTS=192.168.1.20:3000
上記の値はあくまで例です。自分のHomepageログに表示されたホストを使用してください。
デフォルトの解決策として*を使用しない
Homepageでは、変数に*を設定してホストチェックを無効にできますが、現在の手順では明確に非推奨とされています。ホストチェックは、予期しないHostヘッダーからアプリケーションのAPIプロキシを保護するのに役立ちます。
Homepageを信頼できるLANの外部に公開する場合、上流プロジェクトでは、認証とTLSを適用するリバースプロキシまたはVPNの使用も推奨しています。
リバースプロキシには個別の許可ホストが必要
Nginx Proxy Manager、Traefik、または別のプロキシの背後にあるドメインを通じてHomepageを開く場合、Homepageが認識するホストは、ZimaOSの直接IPアドレスとは異なる可能性があります。ブラウザーのURLだけで推測せず、コンテナログに実際に表示される値を追加してください。
Homepageのホスト検証に関するFAQ
このエラーはポート3000が閉じていることを意味しますか?
必ずしもそうではありません。Homepageのエラーページが読み込まれるなら、リクエストはすでにアプリケーションに到達しています。
HOMEPAGE_ALLOWED_HOSTSには何を設定すればよいですか?
Homepageが拒否したと報告している正確なホスト名またはIPアドレスです。ログにポート番号が含まれている場合は、ポート番号も含めてください。
HOMEPAGE_ALLOWED_HOSTS=*を設定できますか?
Homepageでは設定できますが、非推奨です。可能な限り、明示的な許可リストを使用してください。
このスレッドでZimaOS固有の不具合は確認されましたか?
いいえ。コミュニティからの返信は通常のHomepageのホスト検証を指摘しており、現在の上流版Homepageの動作もその説明を裏付けています。
