自宅で動かしているセルフホストサービスと自動化の仕組みを全部棚卸ししてみたよ!というお話

自宅サーバーをMini PC + Proxmox VEで構築した話は以前書きましたが、今回は 「実際にこのProxmoxホストの上で何を動かしているか」 を一覧できるように棚卸ししてみます。動いているものが多いので、それぞれは概要だけに留め、詳しく知りたいものがあれば個別記事へどうぞ、という目次的な記事です。

SynologyのDocker運用が限界だったのでGMKtec Mini PCにProxmoxを入れて自宅サーバーを分離したよ!というお話

Proxmoxのダッシュボードはこんな感じ

Proxmoxのダッシュボード画面
Proxmoxのダッシュボード画面

home-serverという1台のノードの上に、LXCコンテナ6台+VM1台 が同居しています。

全体像:主役はDocker、それ以外は「独立させざるを得なかった」もの

サービス構成の全体図
サービス構成の全体図

数だけ見るとLXCが並列していますが、動いているサービス数で言えば 圧倒的に101番のDocker環境が主役 です。他のLXCは「Dockerに載せたいけど載せられない事情」があって、それぞれ独立している位置づけになっています。

メディアライブラリ管理(100)

自分用のプライベートなメディアライブラリを管理するコンテナです(用途の性質上、中身の紹介は割愛)。AMD Vega 8内蔵GPUでのハードウェアトランスコード を使いたいため、Dockerには載せず独立したLXCとして切り出しています。

Docker環境(101)― 実質的な本体

Portainerで管理しているDocker環境の様子
Portainerで管理しているDocker環境の様子

自宅のセルフホストサービスは、ほぼこのコンテナの中でDocker Composeとして動いています。

定番のOSS・公開イメージ系

  • n8n:自動化のハブ
  • changedetection.io:Webページの変更検知
  • Homebox:自宅の物品・在庫管理
  • Linkwarden:ブックマーク/リンク管理
  • rfriends:radikoの録音に使っているツール
  • Calibre-WEB-AUTOMATED:電子書籍ライブラリの管理
  • JDownloader-2:ダウンロードマネージャー
  • pinchflat:動画アーカイブツール
  • FossFLOW:ネットワーク構成図の作成ツール
  • Moocup:スクリーンショット加工アプリケーション

自作アプリ系

  • podcast-server:自作の自分用ポッドキャスト配信サーバー
  • businesscard-shelf:自作の名刺管理アプリケーション
  • estimate-request:自作の見積依頼アプリケーション
  • raw-sorting:自作のRAW画像仕分けアプリケーション

「公式・非公式問わずDocker化できるもの」はすべてここに集約しているのが特徴で、稼働率・メモリ使用率も他のコンテナより頭ひとつ高い、このホストの実質的な本体 です。設定ファイルや実データはこのLXC内には置かず、マウントしているSynology NAS側に集約しています。管理はPortainerのUIから。

余談:Synology NASのContainer Stationも現役

パスワード管理のVaultwardenHome Assistantは、より安定した環境が必要なため、あえてSynology NASのContainer Station側で動かしています。

AdGuard Home(102)― Tailscale接続中も広告ブロックを効かせるため

AdGuard Homeのダッシュボード画面
AdGuard Homeのダッシュボード画面
DNSブロックリストの設定画面
DNSブロックリストの設定画面

iPhoneのAdGuardアプリは、Tailscale接続中は広告ブロックが効かなくなる という弱点があります。自宅外では常時Tailscaleに接続しているため、自宅ネットワーク内にもAdGuard Homeを立てて、Tailscale接続時のDNSをこちらに向ける ことで弱点をカバーしています。フィルターには標準リストに加え280blockerも追加し、毎月cronで自動更新しています。

ネット監視・SwitchBot連携(103)― ホストのBluetoothを直接触る必要があった

自宅回線の疎通状況を常時監視し、異常時はSwitchBotのプラグミニをBLEで直接操作してONUやルーターを再起動する ためのコンテナです。ホストのBluetoothを直接操作する必要がある ため、Docker化せずLXCに切り出しています。詳細は「SwitchBotでネット接続が不安定な時に自動的にルーターを再起動させるシステムを作った!というお話」にまとめてあります。

Tailscale(104)― 外出先からのアクセス

自宅ネットワークの外から安全にアクセスするためのVPN専用コンテナです。この経由でのアクセスを前提にしているため、Proxmoxホストは外部に一切公開せず、すべてローカルネットワーク内で完結 しています。

Claude Code環境(105)

tmux上でClaude Codeのセッションを動かし続けるための環境です。n8nのWebhook経由で、iPhoneからセッションの起動・一覧・終了 ができるようにしてあります(詳細は Claude Code × tmux × n8nで、iPhoneからClaude Codeを遠隔操作できるようにしたよ!というお話 にまとめてあります)。

Claude Code × tmux × n8nで、iPhoneからClaude Codeを遠隔操作できるようにしたよ!というお話

このLXCにはSynology NASをマウントしてNAS上のファイルを直接扱えるようにしているほか、他の各LXCへもSSH経由でアクセス できるようにしてあります。NASのファイルにもホスト内の各コンテナにも、この105番から一通り手が届く格好になっています。

常時稼働のWindows VM(200)

コンテナ勢とは別に、Windows 11のVMを1台、常時起動 させています。主な用途は、

  • Amazon Photosによる、NAS上の家族写真の自動バックアップ
  • AltServerを常駐させて、iPhoneのサイドロードアプリの署名切れを自動更新
  • n8nからSSH経由でChromeを自動起動し、Tampermonkeyのuserscriptを発動させる自動化
iOS版のTampermonkeyが登場したので出退勤時のタイムカード打刻(ジョブカン)を自動化してみたよ!というお話

の3つです。加えてClaude Codeデスクトップ版もインストールしてあり、腰を据えた作業はリモートデスクトップ、ちょっとしたタスクはディスパッチ機能、Tampermonkeyのバグ修正のような定期メンテナンスはルーティン機能、という形で使い分けています。

まとめ

このProxmoxホストで動いているものの大半は、既存のセルフホストアプリと、n8nを中心にした自動化の集合体でした。GPUパススルーやBluetoothのようにDockerに載せられないものだけをあえてLXCやVMに切り出す、そういう工夫も含めて、正直かなり楽しんでやっています。

改めて振り返ると、これだけの数のLXC・十数個のDockerコンテナ・常時起動のWindows VMを同時に抱えて、なおまだ余裕がある GMKtec NucBox M5(Ryzen 7 5700U/8コア16スレッド・TDP 15W) の性能には驚かされます。手のひらサイズ・省電力ノートPC向けCPUという構成で、ここまで盛大に「自宅の裏方」を任せられるのは、正直かなりコスパの良い選択だったと思っています。

次回以降は、この中の個別のトピック(Docker環境で動かしているサービス群の詳細など)についても、もう少し踏み込んで紹介していこうと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です