---
tags: [infrastructure, server, proxmox, homelab, personal]
updated: 2026-04-24
---

# pve — Proxmox VE Homelab

> SSH alias: `pve` → `root@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
- Dashboard at http://192.168.1.224:7575 (or configured port)
- Shows all services, integrates with Docker/Proxmox

### 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

```bash
# 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)

## Related

- [[wiki/homelab/_index|homelab/]] — full homelab docs
- [[wiki/infrastructure/server-aimpress|server-aimpress]]
- [[wiki/infrastructure/ssh-aliases|ssh-aliases]]
