あなたのサイトにあるすべてのものに対して「このテーマをインストール」ボタンがあったらいいのにな、と思ったことはありますか?私はそのようなサイトを開発しました!https://discourserouter.pyxfluff.dev でご利用いただけます。
例えば、以下のように言う代わりに:
これは example.com/admin/config/emoji/settings で確認できます。
…現在は以下のようにできます:
ここで変更できます:https://discourserouter.pyxfluff.dev/admin/config/emoji/settings
サイトを初めて訪問すると、あなたのサイトを登録するよう促されますが、クッキーに記憶されるため、次回からは同じサイトを使用できます。これは直接パスの置換 であり、パス接頭辞は不要です。フォーラムの URL を discourserouter.pyxfluff.dev に置き換えるだけでOKです!
紹介
これはまだ新しい製品であり、問題が発生する可能性があることにご注意ください!すべての問題、意見、その他のフィードバックはこのスレッドでご報告いただけます。私は可能な限りテストを行いましたが、100% 確実ということはあり得ません。
ソースコードは GitHub で Python (FastAPI) プロジェクトとして公開されており、プルリクエストも常に歓迎しています。
Contribute to pyxfluff/discourse-router development by creating an account on GitHub.
運用コスト
現在、このサービスは自宅のサーバーで稼働させているため、ドメインの年間 10 ドル以外のクラウド費用は発生せず、無料で運用できています。しかし、将来的には独自ドメインへの拡張を検討しています。現時点では公開の寄付 URL はありませんが、適切なドメインのスポンサーシップをご希望の場合は、PM でご連絡いただければ、何らかの形で調整いたします。
お楽しみいただき、ご意見をお聞かせください!
「いいね!」 2
Jagster
(Jakke Flemming)
2026 年 4 月 26 日午前 5:28
2
要するに、このリンクが購読されている場合、誰がどこをクリックしたのかという情報が得られるのでしょうか? それとも、これはどのように機能するのでしょうか?
透明性の観点から、ローカル環境でテストした際のサーバーログを以下に示します:
開発用のログを誤って残してしまいましたが、このコミット をもって本番環境では無効化されています。Uvicorn によるエンドポイントへのアクセスログについては、何らかの対応をすることが難しいこと(また、セキュリティの観点から望ましくない可能性もあること)を理解しています。しかし、私の目的はプライバシーを尊重することであり、エンドポイントの URL をログに記録することではありません。いずれにせよ、サーバーログは systemd ユニット内にあり、エラーの特定などやむを得ない場合を除き、抽出する予定はありません。
また、このウェブサイトは私自身の PA インスタンス と連携しており、侵入的な分析を行わずに利用者数を把握することができます。結論として、私はあなたの IP アドレス、サイト URL、あるいはそれら以外のほとんど何も追跡していません。私に確認できるのは、誰か がサイトを訪問し、リダイレクトされたという事実のみです。ご懸念があればお気軽にお知らせください。ただし、「uvicorn がリダイレクト要求をログに記録する」という問題は、アプリの構築方法(クッキーと Jinja2 を使用)における設計上の欠陥に過ぎません。
もちろん、何らかの理由で私を信頼できない場合は、ご自身でホストすることも可能です(明日、ガイドを作成する予定です)。また、コード自体は監査可能です。コンテナは GitHub にミラーリングされています。
Jagster
(Jakke Flemming)
2026 年 4 月 26 日午前 5:59
4
もちろん、あなたを信頼していません。信頼すべき人はごく少数です。あなたはインターネット上の顔の見えないユーザー名に過ぎません。
でも、その「はい、その情報は入手できます」という点は受け入れますか?
「いいね!」 1
いいえ、サイト URL はブラウザのクッキーに保存されており、サーバーログには残されません。
私ができる最善のことは、ミラーされたソースを公開し、ログを示し、サイトが使用している技術を明確に説明することです(すべて私のインフラ上で)。もしその情報を確認しない、またはまだ信じないとおっしゃるなら、私にできることはほとんどありません
「いいね!」 1
こんにちは、皆さん!このプロジェクトに割り当てるリソース(個人的なメンテナンス時間、資金など)の量を決定する助けにするため、簡単なアンケートを作成しました。現在のプロジェクトに対するご意見に関わらず、このフォームにご記入いただければ大変助かります(最初の質問に「いいえ」と回答された場合は、気に入らない点を記入する欄もあります)。ありがとうございます!
Canapin
(Coin-coin le Canapin)
2026 年 4 月 27 日午後 5:04
7
このようなサービスの問題点は、将来的に停止される可能性があり、URL が悪意のあるものへリダイレクトされるリスクがあることです。
あなたの善意には疑いの余地はありませんが、私の経験では、実際にそのようなことが起こります。そのため、可能な限り一切依存しないようにしたいと考えています。
「いいね!」 2
こんにちは、皆さん。利用が少ない ため、公式にホストされているインスタンスを先回りして停止します。これは、どこでも使用されたという証拠がない(今週の分析ヒットが0であることを根拠としています)ため、誰かがこれを見つけて使用した後、リンク切れが発生してしまうのを防ぎたいからです。
これは単なる週末の趣味のプロジェクトだったので、あまり気にしていません。GitHub リポジトリはそのまま残りますし、問題が報告されれば重要なバグは修正しますが、当面は新しい機能は追加しません。実行に必要なリソースはほとんどありません ので、最新の Python が動作する環境であればどこでも実行できます。基本的にあらゆる用途に転用可能ですが、元の目的が「Discourse ルーター」だったため、その名前にしました。
「いいね!」 2
以前に README を書く約束をしていたような気がしますが、どうやらそうではなかったようです。いずれにせよ、セルフホストや流用方法に関する簡単なガイドを公開しました!リポジトリは引き続き GitHub にありますが、何かの理由でここから移動したくない方のために、以下に貼り付けておきます。
手順
セットアップ
venv と Python 3.13 以降(3.14 でのみテスト済みですが、3.13 でも問題ないはずです。コンパイラエラーが発生する場合は Python を更新してください)がインストールされていることを確認してください。
uv venv
source .venv/bin/activate
uv pip install .
必要に応じて設定ファイルを編集します。
nano src/backend_config.jsonc
ほとんどの設定は自明です。web.hostname は UI 上の見た目のためのものであり、機能には影響しません。
それだけです!起動しましょう。
python3 -m src
uvicorn アプリを手動で実行する必要はありません。Python モジュールが自動的に実行します。
「いいね!」 1