obsidian/wiki/infrastructure/server-pve.md
2026-04-30 19:44:46 +01:00

4.4 KiB

tags updated
infrastructure
server
proxmox
homelab
personal
2026-04-30

pve — Proxmox VE Homelab

SSH alias: pveroot@192.168.1.48:22 Key: ~/.ssh/id_ed25519 Web UI: https://192.168.1.48:8006

Overview

Home Proxmox VE server. Runs VMs and LXC containers for personal projects, self-hosted services, and homelab experimentation. Connected via Tailscale for remote access.

  • Platform: Bare-metal (home server)
  • OS: Proxmox VE 9.1.8 (kernel 6.17.13-2-pve) — security update 2026-04-24: pve-manager 9.1-8, libngtcp2-quic0, libproxmox-rs-perl, cluster libs
  • IP: 192.168.1.48 (LAN)
  • Tailscale: 100.122.192.8 (accessible remotely)
  • CPU/RAM: Not audited (runs 8 containers + 1 VM comfortably)

Storage

Pool Type Total Used Available %
data-hdd LVM-thin 5.6 TB 31 GB 5.5 TB 0.55%
local dir 68 GB 6.6 GB 58 GB 9.5%
local-lvm LVM-thin 141 GB 100 GB 41 GB 71%
usb-backup dir 916 GB 110 GB 759 GB 12%

local-lvm is 71% full — watch this pool

Virtual Machines

VMID Name Status RAM Disk
200 kali-linux stopped 8 GB 60 GB

LXC Containers

VMID Name Status IP Purpose
101 adguard running 192.168.1.62 DNS ad-blocking (AdGuard Home) + Docker AdGuard
102 docker running 192.168.1.225 General Docker host — ~50 containers
105 immich running 192.168.1.71 Self-hosted photo management
111 media running 192.168.1.230 Media stack (Jellyfin, Radarr, Sonarr, Jellyseerr)

Host Ports

Port Service
8006 Proxmox Web UI (HTTPS)
3128 SPICE proxy
22 SSH
45876 Beszel agent
9101 node_exporter (Prometheus metrics)

Key Services on Host

  • Tailscale — remote access overlay (100.122.192.8)
  • Beszel agent — system monitoring
  • node_exporter — Prometheus metrics
  • Postfix — local mail relay

Beszel Monitoring

Hub runs in Docker (CT 102) at http://192.168.1.225:8090

System IP Port Status
ProxMox (host) 192.168.1.48 45876 up
adguard (CT 101) 192.168.1.62 45876 up
docker (CT 102) 192.168.1.225 45879 up
immich (CT 105) 192.168.1.71 45876 up
media (CT 111) 192.168.1.230 45876 up

Container Details

CT 101 — adguard

  • AdGuard Home DNS server (LXC)
  • Also runs Docker AdGuard container — LAN DNS resolver
  • IP: 192.168.1.62, Beszel agent: port 45876

CT 102 — docker

  • General-purpose Docker host — ~50 containers
  • Check inside with pct exec 102 -- docker ps
  • Docker data-root: /mnt/data/docker (data-hdd mount)
    • Config: /etc/docker/daemon.json{"data-root": "/mnt/data/docker"}
  • Beszel Hub at port 8090 — manages all monitoring
  • Beszel agent at port 45879 (monitors Docker host itself)
  • System disk: ~51%

CT 105 — immich

  • Photo management (Google Photos alternative)
  • IP: 192.168.1.71, Beszel agent: port 45876
  • PostgreSQL data dir: /opt/immich/data/postgresql (data-hdd symlink)
  • Upload dir: /opt/immich/upload (200 GB data-hdd mount)

CT 111 — media

  • Media stack: Jellyfin, Radarr, Sonarr, Jellyseerr
  • IP: 192.168.1.230, Beszel agent: port 45876
  • Jellyseerr at media.ai-impress.com (5055)
  • Jellyfin at 192.168.1.230:8096

Useful Commands

# List VMs and containers
ssh pve "qm list && pct list"

# Execute command in container
ssh pve "pct exec 102 -- docker ps"

# Start/stop container
ssh pve "pct start 110"
ssh pve "pct stop 110"

# Check storage
ssh pve "pvesm status"

Key Takeaways

  • local-lvm at 71% — clean up unused volumes or expand before hitting 85%
  • Kali Linux VM (200) stopped
  • AdGuard (CT 101) = DNS for LAN — changing it affects all home devices
  • All 4 LXC containers running — healthy cluster
  • Tailscale enables access from anywhere without port forwarding
  • CT 102 Docker data moved to data-hdd — system disk at 51% (healthy)
  • CT 105 PostgreSQL/Immich data moved to data-hdd (healthy)
  • Beszel monitoring all 5 systems (pve + 4 LXC) — all UP (2026-04-30)