RSSリーダー探しから始まって、self-hosted沼にハマり、気づけば自宅サーバーを構築するに至りました。
Gemini先生に相談する際にも簡単に提示できるよう、現在のHomelabの状況をまとめておきます。
🤖 Gemini相談用の構成サマリー(クリックで展開)
# My Homelab Configuration Summary
## Overall Architecture- Hybrid configuration: OCI (Cloud) + Home Server (On-premises)- Connected via Tailscale VPN.
## 1. OCI Server (paimon)- **Instance**: Oracle Cloud Always Free (VM.Standard.E2.1.Micro)- **Specs**: 1 OCPU (AMD EPYC 7551), 1 GB RAM- **OS**: Ubuntu 24.04 LTS- **Services (Docker Compose)**: - FreshRSS (RSS Reader) - RSSHub (RSS Generator) - Uptime Kuma (Monitoring) - Netdata (Monitoring) - Nginx Proxy Manager (Reverse Proxy)
## 2. Home Server (Proxmox Host)- **Hardware**: - **Mobo**: ASRock B250M Pro4 - **CPU**: Intel Core i3-7100 @ 3.90GHz - **Memory**: 40GB DDR4-2400 - **Storage**: - 512GB NVMe SSD (Proxmox OS, VM disks) - 8TB HDD (Media storage)- **Virtualization**: Proxmox VE 9.0- **IP Address**: 192.168.x.200 (Static)
### 2.1. VM: lumine (Main Service VM)- **Assigned Resources**: 2 Cores, 8GB RAM- **Services (Single Docker Compose)**: - memos (Notes) - jellyfin (Media Server, Intel QSV enabled) - stash ("Library" management) - homepage (Dashboard) - copyparty (File sharing) - netdata (Monitoring) - adguard (Ad-blocking DNS) - glances (Monitoring) - npm (Internal Reverse Proxy, handles requests to `*.lumine`)
### 2.2. VM: noelle (Home Assistant)- **Assigned Resources**: 2 Cores, 4GB RAM- **OS**: Home Assistant Operating System (HAOS)
### 2.3. VM: nahida (Planned)- **Purpose**: Dedicated for Immich (Photo management)
## 3. Network Configuration- **Topology**: Fiber Modem -> Router (Bridge) -> Proxmox- **Subnet**: 192.168.x.0/24- **DNS**: AdGuard Home on `lumine` is set as the primary DNS for the LAN. It uses DNS rewrites for `*.lumine` to point to the `lumine` VM.- **Remote Access**: Tailscale for secure access to local IPs.
## 4. Current Issues- **paimon**: Unable to upgrade OCI account.- **lumine**: Considering separating AdGuard Home into a dedicated LXC.- **noelle**: Facing issues connecting a CO2 monitor to Wi-Fi.- **nahida**: Need to set up Immich.全体構成図
現在のHomelabは、OCI上のクラウドサーバーと自宅サーバーのハイブリッド構成である。
[インターネット] | +-- [OCI Cloud] ------------------+ | | | | +-- [VM] paimon | | | (Tailscale VPN) +-- [自宅LAN] --------------------+ | +-- [光BBユニット] -> [ルーター(ブリッジ)] -> [Proxmoxサーバー] | +-- [VM] lumine +-- [VM] noelleOCIと自宅サーバー群はTailscaleによるVPNで接続され、単一のプライベートネットワークを形成している。
paimon (OCIサーバー)
Oracle CloudのAlways Free枠(VM.Standard.E2.1.Micro)を利用。主に外部との連携や、自宅サーバーがダウンした際にも稼働させたいサービスを展開している。
スペック
- プロセッサ: AMD EPYC™ 7551 (1 OCPU, 2-vCPU相当)
- メモリー: 1 GB
- イメージ: Ubuntu 24.04 LTS
稼働中サービス
全サービスをDocker Composeで管理している。
- FreshRSS: RSSリーダー本体
- RSSHub: RSSフィードがないサイトをRSS化
- Uptime Kuma: 自宅サーバーや各サービスを外部から死活監視
- Netdata: サーバーリソース監視
- Nginx Proxy Manager: 各サービスへのリバースプロキシ
自宅サーバー (Proxmox)
家庭内のメインサーバー。以前使っていたPCパーツを流用して構築した。
ハードウェアスペック
- マザーボード: ASRock B250M Pro4
- CPU: Intel(R) Core(TM) i3-7100 @ 3.90GHz
- メモリ: 40GB
- Crucial 4GB DDR4-2400 x2
- Sanmax 16GB DDR4-2400 x2
- ストレージ:
- 512GB M.2 NVMe SSD (Apacer AS2280P4): ProxmoxホストOS、VM/LXCのシステムディスク用
- 240GB SSD (Sandisk SDSSDHII-240G-J26): (用途未定)
- 8TB HDD (Seagate ST8000VN002): メディアファイルなど、大容量データ保存用
- 1TB HDD (TOSHIBA DT01ACA100): (用途未定)
- 外部ストレージ:
- 2TB HDD: VMのバックアップ先として利用予定
OS・仮想化基盤
- OS: Proxmox VE 9.0
- ネットワーク: 物理NICを
vmbr0にブリッジ接続し、全VMがこれを利用する。 - IPアドレス:
192.168.x.200に固定。
VM: lumine (サービス母艦)
Proxmox上のVM。8GBのメモリと2コアCPUを割り当て。我が家のデジタルライフを支えるサービスのほとんどがここで稼働中。
稼働中サービス
全て単一のdocker-compose.ymlで管理している。
- memos: 日々のメモ用
- jellyfin: メディアサーバー (Intel QSV有効化)
- stash: “ライブラリ”管理
- homepage: 各サービスへのポータル画面
- copyparty: ファイル共有・アップロード用
- netdata: VMリソース監視
- adguard: LAN全体の広告ブロックDNSサーバー
- glances: 詳細なリソースモニター
- npm: LAN内サービスへのリバースプロキシ
サービス管理方針
- デプロイ: 全てDocker Composeで管理。
- ネットワーク:
my-servicesというカスタムブリッジネットワークを作成し、全コンテナを接続。 - サービスへのアクセス:
npm(Nginx Proxy Manager) をリバースプロキシとして利用。- 各サービスには
http://memos.lumineやhttp://jellyfin.lumineのような分かりやすいURLでアクセスできるよう設定している。
- データ永続化:
- 各サービスの設定ファイルは
./<サービス名>/ディレクトリに保存。 - Jellyfin等のメディアデータは、Proxmoxホストからマウントした
/mnt/data/配下を参照。
- 各サービスの設定ファイルは
VM: noelle (Home Assistant)
Proxmox上のVM。4GBのメモリと2コアCPUを割り当て。Home Assistant Operating System (HAOS) を直接動かしている。
VM: nahida (予定)
Proxmox上のVM。リソース消費を考慮し、写真管理ツールImmichを単独で動かす予定である。
システム詳細
ネットワーク構成
- 物理接続: 光BBユニット → 自前ルーター(ブリッジモード) → Proxmoxサーバー
- IPアドレス体系: ルーター配下は
192.168.x.0/24。Proxmoxホストは.200に固定。各VMはルーターのDHCPからIPを取得。 - DNS: ルーターのDHCP設定で、DNSサーバーとして
lumine上で稼働するAdGuard HomeのIPを指定。AdGuard HomeのDNS書き換え機能を利用して*.lumineドメインの名前解決をlumineVM自身に向けることで、前述のhttp://memos.lumineといったURLでのアクセスを実現している。 - リモートアクセス: 前述の通りTailscaleを導入し、外出先からでも
192.168.x.xのローカルIPで安全に各サービスへアクセス可能。
現状の課題と所感
paimon
OCIには多少ならお金を払っても良いと思っているのだが、「Your account provisioning is in progress…」の表示から一向に課金アカウントにアップグレードできない。
lumine
サービス母艦として色々動かしすぎているが、パフォーマンス的にはまだ余裕がある。ただ、AdGuard Homeのようなネットワークの根幹に関わるサービスは、将来的に別のLXCに分離した方が安定するかもしれない。
noelle
家にスマートデバイスがほとんど無いので、現在はデスクライトのON/OFF機能のみ。今後、センサー類を増やしてスマートホーム化を進めたい。既存のCO2モニターがなぜかWi-Fiに繋がらず、最初の壁にぶつかっている。
nahida
そもそも死にかけドライブからデータを整理したり、8TBのHDDやメモリを増設したのは、全てImmichを快適に動かすためである。このまとめ記事も、Immichの導入を円滑にするために書いている。