obsidian/wiki/infrastructure/server-pve.md
2026-04-24 11:54:04 +01:00

4.9 KiB

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

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 running 8 GB 60 GB

LXC Containers

VMID Name Status Purpose
100 ollama running Local LLM inference (Ollama)
101 adguard running DNS ad-blocking (AdGuard Home)
102 docker running General Docker container host
103 beszel running Server monitoring dashboard
104 vaultwarden running Bitwarden-compatible password manager
105 immich running Self-hosted photo management
107 homarr running Homepage / service dashboard
110 uptimekuma running Uptime monitoring

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

Container Details

CT 100 — ollama

  • Runs Ollama server for local LLM inference
  • Access models from LAN

CT 101 — adguard

  • AdGuard Home DNS server
  • Likely set as LAN DNS resolver (192.168.1.x)

CT 102 — docker

  • General-purpose Docker host for misc containers
  • Check inside with pct exec 102 -- docker ps
  • 17 containers running, all with unless-stopped/always restart policies
  • Docker data-root: /mnt/data/docker (300 GB data-hdd mount)
    • Config: /etc/docker/daemon.json{"data-root": "/mnt/data/docker"}
    • Moved from /var/lib/docker on 2026-04-24
  • System disk: 51% used (was 88% before Docker data-root migration — resolved 2026-04-24)

CT 103 — beszel

  • Monitoring hub for all containers/VMs
  • Pulls metrics from beszel agents running on each host

CT 104 — vaultwarden

  • Self-hosted Bitwarden password manager
  • Separate from aimpress VPS vaultwarden

CT 105 — immich

  • Photo management (Google Photos alternative)
  • PostgreSQL data dir: /opt/immich/data/postgresql (on data-hdd)
    • Symlink at original path: /var/lib/postgresql/opt/immich/data/postgresql
    • Migrated from /var/lib/postgresql on 2026-04-24
  • Immich cache: /opt/immich/data/cache on data-hdd, symlinked from /opt/immich/cache
  • Upload dir: /opt/immich/upload — existing 200 GB data-hdd mount (unchanged)
  • System disk: 62% used (was 82% before migration — resolved 2026-04-24)

CT 107 — homarr

CT 110 — uptimekuma

  • Monitors all services for uptime
  • Web UI — configure webhooks to monitoring-agent for alerts
  • ⚠ Pending: add Webhook to http://192.168.1.225:9111/alert/uptime-kuma

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) running — for security/pentesting
  • Ollama (CT 100) = local LLM inference, no API key needed
  • AdGuard (CT 101) = DNS for LAN — changing it affects all home devices
  • All 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 — system disk at 68% (healthy)