Homepageという自宅鯖ダッシュボードをProxmoxコンテナ上で構築した時の備忘録

どうもおはこんばんにちは、yotakun4132です。

自宅でホスティングしている様々なサービスのウィジェットをカスタマイズして統合して表示できる自己ホスト方のダッシュボードアプリケーション「Homepage」というものを知ったので、早速構築してみました。

ついでに、Proxmox VEのLXCコンテナというものを触ったことがなかったので、これを使って構築したときの手順も乗せておきます。

目標

  • Proxmox上の非特権LXCでDockerを動かし、Homepageを http://[CTのIP]:3000 で表示。
  • 設定ファイルは /srv/homepage/config に保存。

環境

Proxmox VE 8.4.10
テンプレート : Debian 12 standard

LXCのリソース
・1vCPU
・1GB RAM
・ディスク8GB

構築

LXC作成

  1. テンプレート取得
    local → CT Templates → debian-12-standard_*.tar.zst をDownload
  2. Create CT
    ・General : 任意のCTIDと名前。Unprivileged containerにチェックを入れる
    ・Template : debian-12-standard_*.tar.zst
    ・Disks : 8 GB
    ・CPU/RAM : 1vCPU、1024MB RAM、Swap 0
    ・Network : Static
    ・Confirmで作成
  3. 機能フラグを有効化
    Options > Featuresnestingkeyctl を有効 → 起動

Docker導入

apt update && apt -y upgrade
apt -y install ca-certificates curl gnupg lsb-release

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg \
 | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
 https://download.docker.com/linux/debian $(lsb_release -cs) stable" \
 > /etc/apt/sources.list.d/docker.list

apt update
apt -y install docker-ce docker-ce-cli containerd.io \
               docker-buildx-plugin docker-compose-plugin \
               fuse-overlayfs

cat >/etc/docker/daemon.json <<'EOF'
{
  "storage-driver": "fuse-overlayfs"
}
EOF

systemctl enable --now docker

確認

docker info | grep -E 'Storage Driver|Cgroup'

Storage Driver: fuse-overlayfs と出ればOK

ディレクトリとCompose準備

mkdir -p /srv/homepage/{config,icons}
cd /srv/homepage

/srv/homepage/docker-compose.yml を作成

services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    ports:
      - "3000:3000"
    volumes:
      - ./config:/app/config
      - ./icons:/app/public/icons
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Tokyo
    restart: unless-stopped

初期設定ファイルを最小で用意

# タイトル等
cat >/srv/homepage/config/settings.yaml <<'EOF'
title: "Home"
theme: dark
layout:
  - Services
  - Links
EOF

# 例:サービスカード
cat >/srv/homepage/config/services.yaml <<'EOF'
- Servers:
  - WordPress:
      href: http://www.ytkn.jp
      description: "WWW"
      icon: icons/wordpress.png
  - Nextcloud:
      href: http://pnw1-fs-01.ytkn.work
      description: "Files"
      icon: icons/nextcloud.png
EOF

# 例:ブックマーク
cat >/srv/homepage/config/bookmarks.yaml <<'EOF'
- Quick Links:
  - Proxmox: https://<proxmox-host>:8006
  - Router: http://10.10.10.1
EOF

# 例:ウィジェット
cat >/srv/homepage/config/widgets.yaml <<'EOF'
- search:
    provider: duckduckgo
- datetime:
    timezone: Asia/Tokyo
EOF

起動

cd /srv/homepage
docker compose up -d
docker ps

表示確認 : http://<CTのIP>:3000

運用コマンド

更新

cd /srv/homepage
docker compose pull
docker compose up -d

ログ

docker logs -f homepage

停止/再起動

docker compose stop
docker compose restart

コメント

タイトルとURLをコピーしました