- データ収集中心の中央集権型サービスに代わる選択肢として、セルフホスティングが近年人気を集めている
- さまざまなツールやアプリを試したうえで、1年以上安定運用してきた経験をもとに、役立ったツールを紹介する
- コンテナランタイム、Webベースの管理ツール、リバースプロキシとVPN、そのほかセルフホスティング向けツールのおすすめ記事まとめ
- 特定ソリューションの優劣を決めるための記事ではなく、さまざまな問題にはさまざまな解決策があることを強調している
コンテナランタイム
- 最近ではコンテナがホスティングの基本となり、従来型の方式はますます見かけなくなっている
- これは**ホームサーバーユーザー(homelabber)**にとって非常に好ましい流れであり、コンテナはソフトウェア配布を簡単にし、仮想マシンより効率的な性能を提供する
- 多くの人はDockerを使っているが、この記事ではホーム環境で使えるさまざまな代替ランタイムを紹介する
-
Docker
- 最も広く使われている元祖コンテナランタイム
- 豊富なドキュメントとコミュニティのおかげで、ITに詳しくなくてもGitHubから
docker-compose.yml をコピーして実行してみることができる
- ただし、セキュリティ関連の設定は別途検討が必要
-
Podman
- ルートレス(rootless)構造とDocker CLI互換性により注目を集めている次世代コンテナランタイム
- デーモンなしで動作するため、セキュリティを重視する人や関連技術を学びたい人に向いている
- ほとんどのDockerコマンドをそのまま使え、
docker コマンド互換のaliasも提供されるため移行しやすい
- 当初は参入障壁があるが、ドキュメントとコミュニティの発展により、徐々に使いやすくなっている
- さらに、Podman Quadlets によって docker compose の代わりに systemd ベースの宣言的コンテナ管理も可能
-
Kubernetes
- 好奇心旺盛で実験好きなホームサーバーユーザーにとっては、挑戦意欲をかき立てる高度なツール
- 多数のインスタンスを優雅に管理できるオーケストレーションツールとして、エンタープライズ級の管理体験を提供する
- ただし、機能が非常に多く複雑なため、ほとんどのユーザーには過剰
- ホーム環境では学習そのものが主目的であり、実運用より技術理解に重点が置かれる
Webベースのコンテナ管理ツール
- ローカルディスクに compose ファイルを集めて管理するのを好むユーザーもいるが、毎回SSHでサーバーに接続してログを確認しなければならない煩わしさがある
- その代わりにWebベースのコンテナ管理ツールを使えば、より便利に作業できる
-
Portainer
- Docker、Kubernetes、Podmanのすべてに対応する、最も安定したWeb UI管理ツール
- ホームサーバーから企業環境まで幅広く使われており、実践を通じた学習にも非常に有益
- オープンソースのコミュニティ版と追加機能を含むエンタープライズ版があり(3ライセンスは無料提供)
- 直感的なインターフェースと多彩な機能により、コンテナ管理に非常に向いている
-
Dockge
- Uptime Kumaの開発者が作った新しいWebベースのDocker Compose管理ツール
- まだPortainerほど成熟してはいないが、非常にシンプルで直感的なUIが強み
- 開発者がGitHub Issuesに素早く対応し、定期的なアップデートが行われている
- 軽量でミニマルなツールを好むユーザーに適している
リバースプロキシとVPN
- 外部からでもセルフホストしたアプリケーションにアクセスするには、主に2つの方法がある:
- サービスをインターネットへ直接公開する
- VPNを通じて内部ネットワークへアクセスする
- VPNのほうがセキュリティ面では安全だが、インターネット公開方式でも設定を適切に行えば十分有用
-
Pangolin
- VPNとリバースプロキシを1つに統合した革新的なソリューション
- まるでセルフホスティング向けのCloudflareのような役割を果たす
- VPSなどにイングレスサーバーだけを設置すれば、さまざまな環境からVPNクライアントで簡単に接続できる
- CrowdSec連携、基本的なSSO機能まで搭載
- 筆者がこの記事を書くきっかけになったほど印象的なツールで、時間がたてば既存ソリューションの標準的代替になる可能性がある
-
Nginx Proxy Manager (NPM)
- TCP/UDP/HTTP(S) プロキシをWeb UIで簡単に設定できるNginxフロントエンド
- 多くのユーザーに利用されているが、筆者は一部機能(例: パスワード保護)が不安定だと評価している
- 最初に触れたツールとして良い印象ではなかったが、動作するときは役目をきちんと果たす
-
Caddy
- **シンプルな設定ファイル(Caddyfile)**で、プロキシ設定からHTTPS証明書の発行まで自動処理
- Web UIがないため初心者には勧めにくいが、UNIX哲学を好むユーザーには最良の選択肢
- Let’s Encryptを標準サポートし、複雑な構成を必要としないのが利点
-
NetBird
- Tailscaleに慣れていればすぐ順応できるVPNソリューション
- WireGuardベースのネットワークを自動構成し、複雑な設定を減らしてくれる
- クラウドの無料ティアでもセルフホストでも利用でき、柔軟性がある
状態監視と通知ツール
-
Uptime Kuma
- ZabbixやGrafanaのような重いスタックなしでも、手軽にサービス状態を監視できる
- たった1回のデプロイで、さまざまなチャネルを通じた通知設定が可能
- セルフホスティングシステムの可用性チェックに優れている
-
Gotify
- 簡単なHTTPリクエストでプッシュ通知を送信できる通知サーバー
- モバイルアプリをインストールすれば通知を受け取れ、Uptime Kumaなどとの統合も可能
- さまざまなセルフホスティングツールと組み合わせて使えるため実用的
セルフホスティングアプリを探すための追加資料
- さまざまなセルフホスティングアプリケーションを見つけられる便利な資料のまとめ
-
- GitHubで提供されている膨大なソフトウェアリスト
- やや整理されておらず、開発が停止したプロジェクトも一部含まれている
-
- 筆者が最も気に入っている情報源
- ニッチなアプリケーションを紹介するニュースレターと、並べ替え機能付きの大規模アプリケーションディレクトリを提供している
- 非常に有用なサイト
-
- すぐ実行できるDocker Composeファイル集
- 一部アプリケーションはアップデートによる互換性問題を抱えることがあるが、全体として良い参考資料
4件のコメント
n100をこの前のAliのセール時に1台買ってProxmoxをインストールし、とりあえずこれまで使っていたOracle ARMサーバーのデータはすべてバックアップしておきました。追加でXpenology、pfSenseもインストールしてあり、まだ本格的には回していませんが、近いうちにメインへ移行する予定ではあります。
昨年末にセールになっていたVPNサービスを契約しました。大手サービスにいろいろな変化が起きそうな気配が見えてきたので、少しずつセルフホスティングへ移行しようと思ったからです。まずはブラウザのパスワードやブックマークを移しながら、少しずつ試していこうと思います。
Docker + Portainer + Cloudflare + Uptime Kuma
こんなふうに使っています。
Hacker Newsの意見
セルフホスティングのアイデアが好き。複数の小さなWebサイトやプロジェクトを運営しているので、リソースは大きな問題ではない
新しい VPS を設定中
reboot = when-changedの設定で更新を自動化セルフホスティングの増加が心配
Web アプリのホスティングには今後も dokku を使う予定
Hashicorp Nomad、Consul、Traefik を OpenTofu で管理中
Portainer を使ってみたが、
docker composeの方が簡単だったdocker compose pullは crontab で設定できるセルフホスティングするならコンテナは使わず、静的サイトジェネレーターを使うことを勧める
FreeBSD jails とシェルスクリプトを使ってセルフホスティングしている
この記事のおかげでホスティング方法をアップグレードする気になった