自宅サーバーの構成、Dockerか systemdネイティブか 海外で議論
姉妹サイトの新着
自宅サーバーで様々なサービスを動かす「セルフホスト」について書かれた海外ブログ記事をきっかけに、Hacker Newsで活発な議論が起きていた。デプロイ方法としてDocker Composeを使うか、systemdネイティブやNixOS、Proxmoxの仮想化で動かすかで意見が分かれ、単一バイナリ派とコンテナ派の対立も見られた。さらにLet’s Encryptの証明書をインターネットに公開していないサーバーでどう発行するか、Protonメールを暗号化したまま自宅で扱えるのかといった、具体的な技術の質問にも回答が集まっていた。
自分がセルフホストしているものたち
出典: viceconsole.fyi / 元記事はこちら
今の時代、指をパチンと鳴らすだけでそれなりにまともなコード化バージョンが手に入るのに。てきとうに作ってLLMに『手作りでごちゃごちゃになったこの構成を、もう少しましな形に移植して』って頼めばいいだけだし。
systemdをちょっと設定するだけで、最近のネイティブアプリは実質コンテナみたいなものだよ。こういう小さい箱にアプリごとに別カーネルを積む余裕なんてないし。DynamicUserとProtectSystemがあれば十分正気を保てる。
別の人も言ってたけど、ProxmoxはコンテナもフルVMも使えて、ベースOSは2GB RAM未満で動く。自分のjellyfin用LXCは数百MBのRAMでアイドルしてて、ベースのDebianカーネルを共有してる。もし誰かに侵入されても、サーバーの他の部分には一切アクセスできない(メディアもjellyfin用LXCには読み取り専用でマウントしてる)。最近組んだばかりだけど、すごく気に入ってる。全部がきちんと収まってる感じ。
自分はLXC + IaCで作り直せるようにする方が好みだけど、まあ似たようなものだね。
DNS-01チャレンジを使えばいいよ。
ありがとう、助かった。
自分のサーバーはNixOSで動かしてて、systemdコンテナを使ってる。この構成にすごく満足してる。Claudeに手伝ってもらったら、セットアップは全然難しくなかったよ。
自分はNixOSを使って、systemdサービスと、依存関係や可動部分が多いコンテナ用にQuadlet-Nixを組み合わせてる。うまくいってる。
quadletsを使えば両方のいいとこ取りができるんじゃない?
試したことがない人には怖そうに見えるだけだと思う。実際はかなりよく設計されたソフトウェアで、手順をちゃんとこなしてAPIキーで全部つなげるだけの、比較的簡単なセットアップだよ。投稿者にもすごくお勧めしたい。自分の構成はこの4年で1回しか落ちてないし、それも自分のミスだった。
もう一つのいい選択肢はnixflixだよ: https://github.com/kiriwalawren/nixflix (NixOS版の同等品)
なるほど、その意見は尊重するけど、自分みたいに逆の方が好きな人間もいるってことを忘れないでね。他の条件が同じなら、どうしてDocker Composeを選ぶの?自分の感覚だと、単一バイナリの方がDocker Compose的な解決策より圧倒的に優れてると思うんだけど。
自分はDockerを使わないけど、プロジェクトにcomposeファイルがあるとそれを読むのが大好き。そのプロジェクトのアーキテクチャを高いレベルでざっくり理解するのに一番早い方法だから。最高のドキュメントだよね 🙂
一つの設定ファイルで複数のサービスを動かせて、動かしっぱなしにもできる。アップグレードもイメージタグを書き換えるだけ。実行方法を調べるためにCLIのドキュメントを見る必要もない。ファイルシステムへのアクセス権もないし、ログも見やすい。
ある程度の分離があるのはいいよね。『ある程度』って言ったのは、セキュリティ的には信用しきっちゃいけないって言われてるから。それでも、悪意のないバイナリでも最初から『どの状態が残るか』に境界線があるのは好き。
自分も同じ。composeファイルだけくれれば、それで始められる!
自分のプロジェクトでRustとSqliteを選んだ大きな理由は、ユーザーが小さいバイナリをただ実行するだけで済むようにしたかったから。https://github.com/sergiotapia/joyscroller 特に自分だけのために作るなら、この構成でかなり遠くまで行けると思う。
他サイトの新着
『メールを完全にセルフホストするのは面倒/不要』って、ITをやってる人間として、具体的に何がそんなに面倒だと思ってるの?
mailcowみたいなツールで簡単にできるって知ってるけど、実際にセットアップしたことは一度もない。困るのは、メールが相手に届いたかどうかが絶対に分からないこと(自分のIPが原因でGmailにブロックされてるかもしれないし、他の理由かもしれない)。Gmailやprotonなんかを使えば、相手にちゃんと届いたとかなり確信できる。
本当にProtonでそれができるの?復号化・暗号化とかはどう処理してるの?ぜひやりたいんだけど、Protonのフロントエンドが時々うっとうしくて。
Wireguardは比較的簡単だよ。自分のスマホのVPNは家のWiFiから外れると自動で接続してくれて、まるで家にいるみたいになる。
自分で作ったツールって具体的に何?
自分はdockerとportainerでスタック/コンテナを管理してる。もう何年もこのやり方で、気に入ってるよ。
そう。NixOS上でPodmanコンテナを動かすのが、ほぼ全部試した末に自分が辿り着いた答え 🙂
ここ数年はDockerとportainerだね。
セルフホストは今まででいちばん簡単になったのに、普通の人はそれを試そうという気持ちからいちばん遠くなってる気がする。これだけの量をホストするところまで行く人なんて、これから誰も出てこないんじゃないかな。
sabnzbdは、ストレージを空けて直接usenetからストリーミングしたいならnzbdavとか類似ツール(infinidysk、altmount)に置き換えられるよ。もっと言えば、arrスタック全体をstremioに置き換えれば、ライブラリを整理する代わりに全部オンデマンドにできる。
ちょっと馬鹿な質問かもしれないけど、NixOSを使ってるならなんでdockerやsystemdコンテナが必要なの?特にsystemdのサンドボックス機能があるのに。
Quadletは最高だよ、仕事用とホビー/セルフホスト用のサービスにたくさん設定してる。すごく便利。Mac用にも同じようなものがあればいいんだけど(launchdファイルじゃ全然代わりにならない)。
そう、エンドツーエンド暗号化が組み込まれてて、これが気になって調べたら、それを処理するブリッジアプリがあるのを見つけた。https://proton.me/support/bridge-for-linux これを設定するのが楽しみ。可能だとは思ってなかったから。
この話題の背景と論点
セルフホストは2020年前後、Raspberry Piの普及とDocker対応アプリの増加を背景に広がった文化で、今回の議論もその延長にある。対立の軸は「手間をどこで負担するか」で、Docker Compose派は構成ファイルがそのままドキュメントになる点を評価し、systemdネイティブ派やNixOS派はカーネルやコンテナランタイムを増やさずに済む軽さを支持していた。Let’s Encryptの話題で出た「DNS-01チャレンジ」は、サーバーを外部に公開せず、DNSのTXTレコードを書き換えるだけで所有権を証明できる方式で、HTTP経由の検証(HTTP-01)と違い自宅ネットワークを閉じたままでも証明書を発行できる。どの方法が「正解」かという結論は出ておらず、各自の運用環境や許容できる複雑さによって選択が割れている点が、このスレ全体を通して見えてくる。
※本記事は海外掲示板 Hacker News のスレッド「What I Self-Host」から抜粋し、編集部で日本語に意訳したものです。訳文の責任は当サイトにあります。






まだコメントはありません。