どうもおはこんばんにちは、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作成
- テンプレート取得
local
→ CT Templates →debian-12-standard_*.tar.zst
をDownload - 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で作成 - 機能フラグを有効化
Options > Features
→ nesting と keyctl を有効 → 起動
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
コメント