概要
- 数年間の試行錯誤を経て、自己ホスティング環境を「十分良い」状態で安定運用
- NixOS、ZFS、Tailscaleなど重要技術の選定と具体的な構成
- プライバシー重視と家族・友人の使いやすさを両立した設計
- 各種課題への対応策や実際の運用ノウハウの共有
- 今後の展望と、他者への知見提供の意図
自己ホスティング環境の完成までの道のり
- Docker Compose や Ansible など様々な手法を数年間試行
- 完璧を求めて無限に構成をいじることから、「十分良い」を目指すことに方向転換
- 目標・要件を明確化し、段階的な計画を作成
- 半年以上大きな問題なく安定運用中
- 得られた知見や具体的な課題解決策を、他者の参考になるようまとめて公開
目的と要件
- 主な目的は データとサービスのコントロール によるプライバシー確保と安心感
- 家族や友人にも同じ恩恵を提供
- 要件(優先順):
- できる限り インターネット非公開 運用(攻撃リスク低減)
- コアインフラ障害 のリスク低減と復旧容易性
- オープンソース重視 でコア要素を自前運用
- 家族・友人が 簡単に使える (理想はSSO/一人一アカウント)
- 宣言的な設定管理 (バージョン管理・バックアップ・変更追跡)
- 安全で簡単なアップデート手順
- 逆に「完璧なモジュール性」や「全てOSSであること」にはこだわりすぎない方針
主要技術選定
- NixOS
- OSやサービスの設定をnix言語で一元管理
- 設定ファイルは Git管理 し、他人の事例も参考にしやすい
- 不足パッケージは Podman/Docker で補完
- ZFS
- データ保護・スナップショット・ロールバックが容易
- 4台の10TB HDDによる RAIDZ2 構成+256GB SSDキャッシュ
- データ消失リスクを最小化しつつ、拡張性も確保
- Tailscale(+headscale)
- メッシュVPN で拠点間安全接続
- 企業依存回避のためOSS版 headscale を自前運用
- 利用者はクライアントインストール必須だが、セキュリティ重視
- Authelia & LLDAP
- 認証・認可 基盤(SSO/LDAP両対応)
- nginxリバースプロキシと連携し、非対応サービスも保護
- 設定は難しいが、軽量かつ連携性良好
構成設計
- サーバー名は Star Warsの惑星 由来
- Primary Public Server(taris)
- Authelia、headscaleなど中核サービスを限定運用
- 必要最小限のみ公開し、リスクと障害範囲を縮小
- Status監視やFoundry VTTのプロキシも担当
- Primary Private Server(kuat)
- TrueNAS 上でNixOS VMとZFSプールを運用
- データセットは「files(重要データ)」と「media(再取得可能)」で分離
- メインVM(bespin)が各種サービスを担当、テスト用VM(alderaan)も用意
- 専用アプライアンス機器
- Home Assistant OS(tython):スマートホーム用途
- Matrixサーバー(coruscant):Ansible Playbook活用
- メール・パスワード管理は ProtonMail/Bitwarden に完全委託(可用性重視)
主な課題と解決策
- 設定ミスや障害時の ロールバック はZFSスナップショットで対応
- 家族・友人の 利用負担 はSSOやシンプルなアカウント管理で軽減
- 一部サービスの公開は利便性とリスクを天秤にかけて判断
- 依存関係の循環やインフラ障害リスクを設計段階で排除
- 他人の設定事例や公式ドキュメントを徹底活用し、ノウハウ蓄積
今後の展望とコミュニティへの還元
- 運用経験から得たナレッジ・設定例・リンク集の公開
- OSSコミュニティや同じ悩みを持つ人への情報提供・助力
- 「完璧」より「実用性・持続性」を重視した自己ホスティング文化の推進