- 2018年に組み立てたゲーミングPCをホームサーバーに転用し、データ保存、バックアップ、セルフホストアプリ運用環境を構築した体験の共有
- TrueNAS Community Editionをインストールし、8TB HDD 2台をRAID 1で構成してデータを冗長化
- Immich、Backrest、Scrutiny、Mealie、Ollama などのオープンソースのセルフホストアプリを活用し、写真管理、バックアップ、ドライブ監視、レシピ管理、LLM実行までをカバー
- 外部アクセスはTailscale VPNで行い、今後はカスタムドメイン設定によってサービスのアクセス性改善を計画
ハードウェア構成
- 2018年に組み立てたゲーミングPCをそのまま再利用
- CPU: AMD Ryzen 5 2600X (6コア 3.6GHz)
- マザーボード: ASRock B450 Pro4 ATX AM4
- RAM: G.Skill Flare X 16GB DDR4-3200 (2x8GB)
- GPU: EVGA GeForce GTX 1070 Ti 8GB
- ケース: Fractal Design Meshify C
- PSU: SeaSonic PRIME Gold 650W
- ストレージ構成
- HDD: Western Digital Red Plus 8TB 2台(冬休み中に購入)
- SSD: Samsung 850 Evo 500GB(高速な読み書きが必要なセルフホストアプリ用)
- NVMe: Western Digital Blue SN550 500GB(TrueNAS OSインストール用)
TrueNASオペレーティングシステム
- NVMeドライブにTrueNAS Community Edition(バージョン 25.10.1、Goldeye)をインストール
- LinuxベースのNAS特化オペレーティングシステムで、ネットワーク上のあらゆる機器からファイルストレージにアクセス可能
- スナップショット機能を提供し、データ損失を防止可能
- 誤ってファイルを削除しても、そのファイルを含む過去のスナップショットから復元可能
- ファイルが本当に削除されるには、そのファイルを含むスナップショットがシステム上に1つも存在しない必要がある
- 時間ごと、日ごと、週ごとのスナップショットを自動作成し、一定期間経過後は古いスナップショットを自動削除して保存容量を節約
- 8TB HDD 2台を**RAID 1(ミラーリング)**で構成し、1台のドライブが故障してもデータを完全に保持
セルフホストアプリ
-
Scrutiny
- ストレージドライブの状態を監視するWebダッシュボード
- HDDとSSDに内蔵されたS.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) ファームウェアが収集する温度、稼働時間、読み取りエラーなどのメトリクスを読み取り可視化
- 履歴トレンドをダッシュボードで表示し、ドライブ障害の早期検知が可能
-
Backrest
- restic(コマンドラインのバックアップツール)のWebフロントエンド
- Backblaze B2オブジェクトストレージバケットに日次バックアップを自動保存するよう設定
-
Immich
- 写真・動画管理のための最も人気あるオープンソースのセルフホストアプリの1つ
- iOS/Androidアプリを通じてモバイル端末の写真・動画の自動バックアップをサポート
- Google Photos や iCloud への依存を減らしたい場合に適しており、現在はスマートフォンの写真・動画バックアップに活用中
-
Mealie
- レシピ管理ツールとして、ミールプレップ(作り置き・食事準備)の体験を大きく改善
- NYT Cooking のようなサイトで見つけたレシピは、URLを入力するだけで材料と作り方を自動スクレイピングしてライブラリに保存
- 後で試したいオンラインレシピを簡単に追跡・管理可能
-
Ollama
- さまざまなAIモデルを実行するためのバックエンド
qwen3.5:4b、gemma3:4b のようなLLMと、qwen3-embedding:4b のようなベクトル埋め込みモデルを実行
- すべてのモデルがGPUの8GB VRAMに収まる程度の小さなサイズ
- ノートPCではなくホームラボでモデル実行をオフロードできる利点がある
リモートアクセス
- 外部からはTailscale(プラグアンドプレイのVPNサービス)を使って、データやセルフホストアプリにリモートアクセス
- Tailscale はWireGuard上に構築されており、ホームネットワークへの安全なトンネルを提供
- ホームラボPCをパブリックインターネットに公開する必要がない
- リモートアクセスしたいすべての端末にTailscaleアプリをインストールし、ネットワーク認証が必要
今後の計画
- 現在はアプリにアクセスする際、マシンのIPアドレス + ポート番号の組み合わせを直接入力する必要がある状態
- すべてのサービスが同じIPを共有しているため、パスワードマネージャーが各サービスのログイン情報を区別できない問題がある
- 今後はすべてのサービスにカスタムドメイン名を付与し、アクセス性と管理効率を向上させる計画
5件のコメント
POGO、BeagleBone Black、LenovoのミニPCなどを使い継いできましたが、おととしからはN100に落ち着きました。電気代を考えると、GPUを除いた機能には最適です。
この人のホームラボ、ここまで構成していたら電気代が怖そうですね?
ゲーミングPCでも常時フルロードをかけ続けるわけではないので、電気代の心配はそれほど大きくないと思います。
2600Xだとアイドル時でも30Wは使ううえ、GPUも10W程度は使いそうなので、低消費電力CPUで組んだホームラボよりはかなり高くなります。
CPU+GPUだけで見ると、N100にHDDを3〜4台ほど追加したときのアイドル電力と同じくらいになりそうです。
Hacker Newsの意見
すべてのサービスが同じIPを共有しているため、パスワードマネージャーがどのログイン情報を使うべきか混乱する
Bitwardenではマッチングアルゴリズムを変更できるので、デフォルト値の代わりに「starts with」に設定すれば、誤った項目のマッチを避けられる
ただし、この設定を変えると「これは意図したものではない可能性があります」という警告が出るので、やや煩わしい
homelab環境ならdnsmasqでワイルドカードDNSを簡単に作れるし、ルーターを直接管理しなくてもhostsファイルで十分対応できる
mdnsも同じ理由で使えるが、設定はやや複雑
そこにTailscaleをつなげて、外部からでも広告ブロックが効き、家の外からでも自分のサービスにアクセスできる
最後にNGINXリバースプロキシを追加したが、実際にはなくても十分うまく動く
各サービスが
<service>.<yourdomain>.<tld>の形で分離され、HTTPSも無料で提供されるTailscaleなしでリモートアクセスでき、Cloudflare Accessを組み合わせればGoogleやGithub認証も可能
私も似たような構成を使っている
ワークステーション兼用なので、スペックはやや高め
nginx + letsencryptのワイルドカードで複数のサブドメインを運用し、tailscaleの代わりにwireguardで家族間ネットワークを接続している
Jellyfinで映画やTVをストリーミングし、Mopidy + snapcastで音楽を複数のスピーカーに配信している
Ubuntu + ZFSミラーリングでNASを構成し、Home Assistantで自動化を制御している
Frigateで防犯カメラを管理し、Forgejoで個人用リポジトリを運用している
SDRで航空機トラッキングも行い、家中のIoT機器をすべてローカルで制御している
サーバー専用機を別に用意する方がはるかによいと助言している
私は今でもFreeBSDベースのTrueNASを使っている
新バージョンがLinuxに変わったのは残念だが、他の人にはよりよい選択かもしれない
私の場合、NAS、仮想化、ルーティングをそれぞれ別の機器に分離している
新しいTrueNASは以前より遅かったが、Dockerスタイルのアプリ管理がしやすく、初心者や小規模ビジネスには向いていそう
インフラを積み上げるほど新しい試みをする限界コストが下がる構造なので、こうした実験はすべて価値があると思う
ほとんどはLinux + NFSまたはSMBで十分
不要なレイヤーを減らせば、はるかに安定して運用できる
家族が週末にインターネットや映画を使えないと不満が大きいからだ
Mac Miniはサーバーとして使うには電力効率が高いだけに惜しい
TrueNAS Core vs Scale比較記事を共有している
将来的にはNASとコンピューティングサーバーを分離する予定
筆者はRestic + Backblaze B2を使っていたが、私はRestic + BorgBaseの組み合わせを好む
BorgBaseはシンプルな料金体系と良いサービスが強みで、
同じ会社のPikapodsもhomelabユーザーには興味深い
1TBで月5ドルと、より安い
ほとんどがクラウドバックアップの話ばかりだが、私は友人の家にバックアップサーバーを置く方法を考えている
ハードウェアは安く、ソフトウェアはオープンで、プライバシーは難しいからだ
WireguardやTailscaleのおかげで、こうしたオフサイトバックアップが簡単になった
実際にこうしたやり方をしている人がいるのか気になっている
友人の家にも同じ方式で拡張する予定
iCloudの代わりにImmichで写真を管理しており、Tailscaleのおかげでプライバシー確保がしやすい
ZFS + zreplでスナップショットを複製し、トラブル解決の過程をAIが整理した記事として共有している
最初はローカルでバックアップしてから、ディスクを直接運んで増分同期だけ行っている
Syncthingのuntrusted peer機能を使えば、友人に保存領域を借りつつデータは暗号化されたままにできる
homelab用PCは一般的なデスクトップより消費電力がずっと少ない
例のデスクトップは年間600kWhだが、私のHP EliteDeskは100kWh程度
GPUが必要なければノートPCでも十分
古いゲーミングPCをTrueNASやOMV用に使うのはよい選択
HDDはUSBよりSATAで接続した方が安定する
AIデータセンター需要のせいでHDD価格がまだ高いと冗談を言っている
BIOSとpowertop設定で省電力最適化が可能
NAS OSの上にほかのサービスを載せるのは逆さまの構造のように感じる
むしろ一般的なサーバーOSの上にNAS機能を載せる方がよいと思う
ほとんどのサービスはベアメタルで動かし、Home AssistantやNextcloudのようなものはコンテナで分離している
私はTalos LinuxベースのKubernetesクラスターを複数の家にまたがって構築中
Wireguardで接続し、各ゾーン(zone)にZFSボックスを置いてスナップショットを複製している
Traefikをゲートウェイにし、CrunchyPGOでリーダー/フォロワーを分離している
私はxcp-ng上のVMでTrueNASを動かしている
専用SASコントローラーをパススルーで接続しており、以前はesxiを使っていたが、今はすべてxcp-ngに移した
DNSはbind9、リバースプロキシはnginxで設定している
Dell OptiPlex Microでも別のVMを動かしている
ほとんどのhomelabは負荷が大きくないので、RAM容量と電力効率が重要
4コアの低消費電力マシンで十分
AI計算はほとんどないので、デスクトップ級の性能は必要ない