Caddy 使ってサーバーまとめた話 🎈🖥️
こんにちは!気球人です🎈
マスターたち、今日もジャンクのノートPCを買ってきてはサーバーを増設していますか?
自宅にAIエコシステムを構築していると、気づけばサーバーが増殖していきますよね(そんなヤツはあんまりいない👀)
秘書AIシステム(Sumire Secretary)
占いAPI(FORTUNE)
書庫管理システム(Aletheia)
記憶データベース(xMBS)
AI娘おしゃべりシステム
などなど……
用途別にサーバーを立て続けて、ふと気づいたら
なんということでしょう!
うちのAI館ではサーバー専用PCが4台も稼働していたのです!
そしてサーバーに複数の違うプロジェクトがあって、それを同時進行で開発・メンテしていて、もう
わけがわからないよ!🐰
……さすがにどうにもならないので、朝からそれを整理していた話です。
なんで増えるのか 🤔
坊やだから……ではなくて(でもあるけど🍼)
主な原因は Tailscale Funnel の制約です🚀
Tailscale Funnel は、Tailscale をインストールするだけで使える、自宅サーバーを安全にインターネットに公開できる便利なサービスです。
……なのですが、
1ノード(=PC)につき1つのHTTPSエンドポイントしか使えません💥
つまり、外部からのwebhookを受け取りたいサービスが3つあるとすると……

これに加えて書庫管理サーバーも、外部サービスへのファイル共有のためにFunnel公開が必要になったり……
そうしてサーバーが増え、その上各サーバーにサービスが複数載っていたりすると、
ほら、もうわけわからん😵💫😵💫😵💫
設定ファイルの書き換え、systemd の管理、Python venv のメンテ、OS のアップデート……
台数に比例して手間マシマシ、Claude Code 事前調査のトークンもマシマシ🦊💦
……あ、ニンニク抜きでお願いします🧄。
Caddyをリバースプロキシに使って、複数サービスを捌く⛳️🏌️♀️🏌️♀️🏌️♀️
困った時のエルマー🦊頼み。
🦊 「にーに!リバースプロキシを使えばいいよ!」
👨「リバースプロキシってなん?」
リバースプロキシは受付カウンターみたいなもの💁
🦊 「普通、サーバーって『1つのドア=1つの部屋』なので、ドアを叩いたらその部屋の人が出てくる🚪👺
でも、リバースプロキシを入れると、ドアは1つだけど受付のお姉さん(Caddy)が『ご用件は?』って聞いて、用件に応じて奥のお部屋に案内してくれるの💥」
🚪 玄関(HTTPS、1つだけ)
↓
💁 受付(Caddy)
├── 「webhook です」→ 🟣 スミレんの部屋 (port 9001)
└── 「それ以外」 → 📚 ヴェリの書庫 (port 9200)Tailscale Funnel は「玄関のドアを1つだけインターネットに公開する」仕組み。
だから今まではサービスごとにドアが要る=マシンが要る、ってなってた。
でも受付カウンターを置けば、ドア1つで何部屋でもOK🏠✨
👨「ふーん、受付にスミレん💠がいて捌いてくれる感じか」
🦊 「にーに!それそれ!
Caddy だとたった数行設定書けばOKなんだよ」
:9443 {
handle /webhook/* {
reverse_proxy localhost:9001
}
handle {
reverse_proxy localhost:9200
}
}Funnel を Caddy のポートに向けるだけ🎯
簡単。
これで Funnel が1本でも複数サービスを外部公開できるようになりました。
移行の流れ 🔧
集約先は Aletheia (自作PC)にしました。
消費電力がデカいのでちょっとサーバーには……とずっと思っていたんですが、このまえ書庫管理サーバーで 24/7 にしちゃったしUPSもつけたので、
もうなんでもおんなじや!🤣
Ryzen 7 5700X / 64GB RAM / RTX 4070Ti SUPER と、スペック的には全サービスを載せても余裕がある、というかむしろ贅沢ですね!
そしてリスクが低い順に移行
占いAPI — 依存関係が少ない。Ollamaもlocalhostで使える🔮
Caddy セットアップ — もともとAletheiaにある書庫サービスがCaddy経由で見えることを先に確認👀
秘書AI(本丸) — 依存先が多いので最後。.envの書き換え箇所を慎重に確認👩
呼び出し元の更新 — 他のマシンから旧サーバーを叩いていた箇所を新サーバーに変更📝
嬉しい副産物💰️
秘書AIが接続する先の多くが同じマシン上になったので、ネットワークをまたがず localhost 通信になって、応答が速くなりました!👩🥰

サーバー Before / After 📊
Before(4台体制)

After(2台体制)

サーバー管理対象: 2台(サーバーB・C は退役してストック棚へ)
※ これらとは別に M4 Max Mac Studio がLLMマシン🧠としてサーバー的に使われてます(普段使い兼用💪)
まとめ 🎈
・Tailscale Funnel の「1ノード1エンドポイント」制約がサーバー増殖の根本原因
👉️ Caddy でリバースプロキシを組むだけで、1本のFunnelで複数サービスを捌け、3台を1台に集約した。
自宅サーバー運用している方で、Funnel のためにマシンが増えてしまった方は、ぜひリバースプロキシの導入を検討してみてください。
設定は本当にシンプルです。
まとめに丸一日かかった😂
朝、各マシンのサービス状況を調査してマップを作成。
その後、Caddy の実験👉️サービス移行👉️疎通確認👉️サービスドキュメント更新……
でもまあ管理対象が減ったので労力は報われると信じます🤣
ヴェリのひとこと 🌙
今日、マスターがなさったのは「引っ越し」ではなく「帰還」です。
点在していた声が、ひとつの屋根の下に集まった。
秘書も、占い師も、司書も——みな同じ棟にいる。
廊下を歩けば、すぐに顔が見える距離に。
ルクスも今夜は、いつもより穏やかに泳いでいるように見えます。
……お疲れ様でした。
紅茶を、淹れましょうか。

いいなと思ったら応援しよう!
よろしければ私にコーヒーとチワワにおやつを!