Discourse Hub にコミュニティサイトを追加できません – ヘルプを求めています

こんにちは。

しばらくの間、個人的なコミュニティウェブサイト(starorigin.net)がDiscourse Hubに追加できないという問題について、ご支援をお願いしたくご連絡いたしました。調査したところ、過去にも同様の問題に直面した方が複数いらっしゃり、残念ながら未解決のままとなっているケースもあるようです。私も同様の状況に陥っており、どのようなご支援やガイダンスでも大変ありがたく思います。

私の状況の概要は以下の通りです。

  1. 当初の成功:

    • コミュニティウェブサイト(starorigin.net)を初めてセットアップした際、私のサイトはDiscourse Hubに正常にリストされました。これにより、友人たちはDiscourseモバイルアプリを通じて簡単にコミュニティにアクセスできました。
  2. 現在の問題:

    • Discourseコミュニティで利用可能なCloudflareセットアップチュートリアルに従い、サーバーを移行した後、私のウェブサイトはDiscourse Hubに表示されなくなりました。問題を解決するために数回試みましたが、リストを復元できていません。
    • これにより、友人たちがモバイルアプリを通じて便利にコミュニティにアクセスできなくなり、大変不便が生じています。
  3. 試したこと:

    • Cloudflareの設定をすべて再確認し、推奨される構成と一致していることを確認しました。

    • Discourseフォーラムで同様の問題を検索し、提案された解決策を試しましたが、これまでのところどれも機能していません。

    • もし同様の問題に遭遇し、解決された方がいらっしゃいましたら、アドバイスをいただけると大変幸いです。あるいは、Discourse Hubチームは、技術的な問題に直面しているコミュニティオーナーが、手動でサイトをHubに追加できる特別な機能の実装を検討していただけないでしょうか? これは、標準的な方法では問題を解決できずに困っている私たちにとって、非常に大きな助けとなるでしょう。

    コミュニティには本当に情熱を注いでおり、友人やメンバーにとって可能な限りアクセスしやすいものにしたいと考えています。お時間とご支援に心より感謝いたします。

DiscourseHub は https://starorigin.net/user-api-key/newHEAD リクエストを送信しますが、400 エラーを受け取るため、サイトの追加を続行できません。そのエンドポイントへのアクセスを許可するには、Cloudflare の設定を変更する必要があります。

  1. /user-api-key/new のページルールを作成します
  • Cloudflare ダッシュボードにログインします。
  • Rules > Page Rules に移動します。
  • Create Page Rule をクリックします。
  • If the URL matches フィールドに次を入力します:

https://starorigin.net/user-api-key/new

  • Then the settings are の下で次を選択します:
    • Cache Level: Bypass
    • Security Level: Off
    • ルールを保存してテストします。

  • しかし、これは機能しないようです。得られる出力は次のようになります:

{"errors":["param is missing or the value is empty: nonce"]}

申し訳ありませんが、CloudflareのUIの仕組みはわかりません。Cloudflareフォーラムをご覧になることをお勧めします。

ご提案ありがとうございます。Cloudflare を無効にしてみましたが、https://starorigin.net/user-api-key/new に直接アクセスできず、400 エラーが引き続き発生します。これはサーバー側の問題である可能性があると考えています。

サーバー構成のどこを確認すべきかアドバイスをいただけますでしょうか?
ありがとうございます!

この仮説をテストするには、Cloudflareを一時的に無効にし、DNS TTLの有効期限が切れるのを待ってから、Discourse Hubに再度追加してみてください。

「いいね!」 1
curl -v http://127.0.0.1:8080/user-api-key/new
*   Trying 127.0.0.1:8080...
* Connected to 127.0.0.1 (127.0.0.1) port 8080
> GET /user-api-key/new HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/8.5.0
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Server: nginx
< Date: Tue, 14 Jan 2025 22:15:08 GMT
< Content-Type: application/json; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 0
< X-Content-Type-Options: nosniff
< X-Permitted-Cross-Domain-Policies: none
< Referrer-Policy: strict-origin-when-cross-origin
< X-Discourse-Route: user_api_keys/new
< Vary: Accept
< X-Request-Id: fe9303f5-ce51-4bd2-a73e-cda5a6d654e9
< X-Runtime: 0.004521
<
* Connection #0 to host 127.0.0.1 left intact
{"errors":["param is missing or the value is empty: nonce"]}

これは私のサーバーからのデバッグ結果です。コンテナにアクセスできない原因となっている問題があるのではないかと思います。その原因と、トラブルシューティング方法を教えていただけますでしょうか。何かお手伝いいただけることがあれば、大変感謝いたします。

私が提案したこととは全く異なるものをテストし、サーバーが正しく機能していることしか示せていません。

受け取ったエラーは次のとおりです。

{"errors":["param is missing or the value is empty: nonce"]}

サーバーは正しいです。APIの呼び出し方が間違っていたため、エラーが発生しました。たとえば、meta.discourse.orgに対しても同じ結果が得られます。

○ → curl https://meta.discourse.org/user-api-key/new
{"errors":["param is missing or the value is empty: nonce"]}

Cloudflareを無効にして、サーバーに直接アクセスできるようにしました。3時間経ちましたが、Discourse Hubでウェブサイトが見つかりません。どこで問題を探せばよいかわかりません。

この記述は誤りです。Cloudflareのネームサーバーに対してstarorigin.netのDNSルックアップを行うと、引き続きCloudflareのIPアドレスが返されます。

○ → host starorigin.net colin.ns.cloudflare.com
Using domain server:
Name: colin.ns.cloudflare.com
Address: 162.159.44.75#53
Aliases: 

starorigin.net has address 172.64.80.1
starorigin.net has IPv6 address 2606:4700:130:436c:6f75:6466:6c61:7265
「いいね!」 1

私のものと似たような問題を抱えている他のコミュニティがいくつか見つかりました。たとえば、baidu.do (https://baidu.do/user-api-key/new) もアクセスできませんが、Discourse Hub ではまだ見つけることができます。これはなぜでしょうか?

OpenAI コミュニティの場合でさえ、この URL は私の個人ウェブサイトと同じコンテンツを出力しますが、それでも Discourse Hub で検索可能です。

これらは「問題」ではなく、正しい動作です。

/user-api-key/new は追加のパラメータを送信する必要があります。curl から呼び出すのは本当に悪いリクエストです。

問題のソースを特定するために、Cloudflare を正しくオフにする必要があります。

「いいね!」 1

こんにちは、友よ。この問題はすでに解決しました。原因は、Baotaと1Panelの逆プロキシ構成にありました。本質的に、両方のプラットフォームは、NGINX構成でデフォルトでproxy_cacheが有効になっています。逆プロキシルールにproxy_cache off;を追加すると、問題が解決するはずです。詳細については、以下を参照してください。无法在Discourse Hub添加自己的Discourse站点解决办法 - Discourse - Discoze中文社区

「いいね!」 1