HomeLabの第一歩となる旗艦サーバ『holodeck』を立ち上げました

Proxmox 上に Ubuntu Server 24.04 を構築し、Docker と Tailscale を導入して「どこからでもアクセスできる最強のコンテナ母艦」を作り上げるまでのプロセスを記録します。

    Loading...

2025-11-25-02-40-18

## ホストマシンの構成について

### ホストマシンとなるゲーミングPCのスペック

  • CPU: AMD Ryzen 5 3600 (6 Core / 12 Thread)
  • RAM: 16GB
  • SSD: 512GB
  • GPU: NVidia RTX 2070 Super

サーバーといえば低消費電力なミニPCやラズパイも人気ですが、あえて Ryzen 5 3600 を選んだのには理由があります。 それは 「圧倒的なマルチスレッド性能」 です。6コア12スレッドという余裕のあるリソースは、Proxmox で複数の VM やコンテナ(LXC)を並列稼働させるのに最適です。Docker コンテナを数十個立ち上げてもビクともしない、頼れる母艦になります。

### Proxmox VEについて

## holodeckの設計図

2025-11-25-02-43-30

このホスト上に構築するメインサーバー(VM)を、スタートレックにちなんで holodeck(ホロデッキ) と名付けました。

### holodeck スペック

  • OS: Ubuntu Server 24.04 LTS (最新の長期サポート版)
  • vCPU: 4 Core (Host passthrough)

※ホストのCPU機能を直接パススルーし、パフォーマンスを最大化

  • RAM: 8GB (Ballooning on)
  • Disk: 64GB (SCSI / writeback / iothread=on)

※I/Oパフォーマンス重視の設定

  • 役割: Docker ホスト (NPM, Cloudflare Tunnel, memos, FreshRSS 等の運用)

## Ubuntu Serverインストール後の作業について

### 固定IP化

サーバーとして運用する以上、IPアドレスが変わってしまうと不便です。Ubuntu 24.04 では Netplan を使って設定します。

まずインターフェース名を確認。

ip a
# 例: ens18 などが表示される

設定ファイルを編集します。

sudo nano /etc/netplan/00-installer-config.yaml

以下のように書き換えます。今回は 100.xx.x.xx を割り当てます。

00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      dhcp4: false
      addresses:
        - 100.xx.x.xx/24
      routes:
        - to: default
          via: 100.xx.1.1
      nameservers:
        addresses:
          - 1.1.1.1
          - 8.8.8.8

設定を反映させます。

sudo chmod 600 /etc/netplan/00-installer-config.yaml
sudo netplan apply

これで holodeck の住所が確定しました。

### SSH 鍵認証の導入(Mac → holodeck)

パスワード認証はセキュリティ的に不安があるため、Mac から鍵認証でログインできるようにします。

Mac側で鍵ペアを作成します。RSAよりも強固で短い Ed25519 を使用します。

ssh-keygen -t ed25519 -f ~/.ssh/holodeck

公開鍵を holodeck へ転送します。

ssh-copy-id -i ~/.ssh/holodeck.pub [email protected]

パスワードを聞かれずにログインできれば成功です。

ssh -i ~/.ssh/holodeck [email protected]

## Dockerの構築

モダンなホームラボに Docker は不可欠です。公式スクリプトを使ってサクッと導入します。

# 公式スクリプトでインストール
curl -fsSL https://get.docker.com | sudo sh

# sudoなしでdockerコマンドを使えるようにする
sudo usermod -aG docker yuuma

# Docker Compose プラグインの確認
sudo apt install -y docker-compose-plugin

ここで一度 exit して再ログインすると、グループ設定が反映されます。

docker version

これが動けば、コンテナをデプロイする準備は万端です。

## Tailscale で「どこでも管理」を実現

最後に、外出先や別ネットワークからでも安全にアクセスできるよう、VPNツールの Tailscale を導入します。ポート開放などの危険な作業なしに、安全なプライベートネットワークを構築できる神ツールです。

# インストール
curl -fsSL https://tailscale.com/install.sh | sudo sh

# 起動(SSH機能も有効化)
sudo tailscale up --ssh

表示された認証URLにアクセスし、ブラウザで承認すれば接続完了です。 以降は、元々の固定IPアドレスと異なる固定アドレスを使ってssh接続を行います。 接続元のクライアントPCにも Tailscale のログインが必要です。 このログインを通してプライベートネットワークにアクセスできるようになります。

これができると何が嬉しいか?

Macbook を持ってカフェに行っても、ssh [email protected] (Tailscale IP) と打つだけで、家の holodeck に安全にログインできるようになります。

これで、元ゲーミングPCが「holodeck」として生まれ変わりました。

✅ Proxmox + Ubuntu 24.04 の堅牢な基盤

✅ Ryzen 3600 のパワーを活かしたリソース配分

✅ Docker 完備でアプリを無限に追加可能

✅ Tailscale で場所を選ばない管理体制

次はこの holodeck 上で実際にサービスを動かしていきます。

  1. Nginx Proxy Manager: Webサービスの入り口を作る
  2. Cloudflare Tunnel: 自宅IPを隠したまま外部公開
  3. memos / FreshRSS: 自分専用の便利ツール群を展開
  4. Jellyfin: メディアサーバー構築(ゆくゆくはGPUパススルーも…?)