この記事について
普段はSIerでセキュリティ基盤の運用チームに所属していますが、業務の中で新しい技術に触れる機会は正直多くありません(理由は後述します)。
そんな中、たまたま手元に余っていたPCがあったことをきっかけに、Proxmox VEで自宅サーバー(ホームラボ)を構築することになりました。今ではAI(Claude Code / Codex)と一緒に構築・運用まで進める環境に育っていますが、最初から綺麗に設計して作り始めたわけではありません。むしろ最初の数ヶ月は、その場その場の思いつきで手を動かした結果が積み重なったものです。
このシリーズでは、その正直な経緯を概ね時系列で振り返りながら、全8回で構築の過程を紹介していきます(一部、後から追加で自動化した部分など前後する回もあります)。
- 前置き+事の始まり(本記事)
- 手作業で「その場対応」に育てた最初の環境
- Git化とTailscale導入
- Claude Code×Obsidianで「外部脳」を作る
- Ansibleで自動化を始める
- 外部公開とセキュリティ強化(reverse-proxy+Wazuh)
- Claude Code×Codexに運用を任せる
- 振り返りと今の課題
初回の今回は、「なぜホームラボを作ろうと思ったのか」というところから書きます。
業務の中では、なかなか技術に触れられない
先述の通り、自分はSIerでセキュリティ基盤の運用チームに所属しています。守るべきシステムの運用に携わってはいるのですが、実際に手を動かして技術的な作業をする時間は体感で業務全体の1割程度、資料作成や作業前の準備まで含めても3〜4割程度というのが実感です。
残りは顧客調整や提案、あとは運用関連の定型業務であることが多く、「今の自分が知らない技術を、業務の中で新しく知る・触る」という機会を意識的に作るのは難しいなと感じていました。
もちろんこれはSIerという業態の性質上ある程度仕方のないことですし、顧客調整や提案、運用関連の定型業務自体が不要な仕事だとも思っていません。それでも、この状況のままでは技術的な引き出しが増えていかないという危機感がありました。
きっかけは、余っていた1台のPC
そんなことを考えていた頃、たまたま手元に使っていないPCが1台ありました。スペックはざっくり以下の通りです。
| 項目 | スペック |
|---|---|
| CPU | Intel Core i7-8700(6コア12スレッド) |
| メモリ | 約64GB |
| ストレージ | NVMe 500GB + HDD 4TB ×2 |
| ネットワーク | Wi-Fiのみ(有線LANなし) |
デスクトップPCとしては十分すぎるスペックで、正直このまま普通のPCとして使うにはもったいない構成でした。
なお「ネットワークがWi-Fiのみ」という点は、後々VM/LXCをどう外部と通信させるかという設計に地味に効いてきました。Wi-Fi子機をそのまま仮想ブリッジに使うのは一筋縄ではいかず、実際にはひと工夫必要でした(このシリーズでは設定の詳細には触れません)。また、HDD 4TB×2は当初から「写真データ用にZFSミラーを組む」つもりで用意したもので、この構成は後半の回でも登場します。
最初の目的は「写真管理サーバー」だけだった
このPCを見た時、最初に思いついたのは「写真管理サーバーを立てよう」ということでした。スマホやカメラで撮った写真・動画が増えてきて、クラウドサービスに頼らず自分で管理したいという気持ちがあり、そのためだけにこのPCを使う、というのが当初のプランです。
具体的には、OSSの写真管理ソフトである Immich を動かすサーバーにする、というだけの計画でした。
「これ、1用途はもったいなくない?」
ただ、改めてスペック表を眺めていると、「6コア12スレッド・メモリ64GBのマシンを、写真管理オンリーで使うのはさすがにもったいないのでは」という気持ちが出てきました。
それと同時に、冒頭で書いた「業務の中では新しい技術に触れる機会が少ない」という悩みが頭をよぎりました。せっかく手を動かせる環境を作るなら、
- インフラ(仮想化・ネットワーク・自動化)
- セキュリティ(自分の業務領域だからこそ、手を動かして深掘りしたい)
- アプリケーション(Immichのようなサービスを実際に動かして触る)
を全部まとめて学べる環境にしてしまいたい、という欲張りな結論に至りました。
1台のマシンで複数の目的を同時に持たせるなら、素のOSにアプリを直接入れていくのではなく、仮想化して用途ごとに環境を分けるのが自然です。同じ「用途を分ける」でもDockerコンテナだけで完結させる方法もありますが、今回はOSごとしっかり分離したかったのと、そもそも仮想化基盤(Proxmox)自体を学びたい気持ちが強かったので、ハイパーバイザーを導入する方を選びました。
結論: Proxmox VEを導入する
というわけで、このPCにハイパーバイザー(1台の物理マシンの上で複数の仮想マシンを動かす基盤ソフト)として Proxmox VE を導入し、用途ごとにVM/LXCを分けて動かす、というのが最初の決断になりました。VMは独立したOSごと丸ごと動かす仮想マシン、LXCはOSのカーネルをホストと共有する軽量なコンテナで、大まかに言えば「がっつり分離したいものはVM、軽くて済むものはLXC」という使い分けです(細かい違いは追々触れていきます)。
- 写真管理(Immich)用にVMを1台
- 他の用途は、その都度必要になったら追加していく
という緩いスタートで、次回以降で紹介する「その場対応」の構築が始まっていきます。
次回予告
次回は、実際にImmichを手作業で構築していく話と、その過程で「サーバーと手元PCを行き来するのが面倒すぎる」という理由から、サーバー内にClaude Code用のVMを立てることになった経緯を紹介します。後半で紹介するAIとの協業体制につながる、最初の一歩になった出来事です。
手作業で「その場対応」に育てた最初の環境