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

146 lines
4.9 KiB
Markdown

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