Homelab Documentation
Complete documentation for the home lab running on Proxmox VE. Everything needed to understand, maintain, rebuild, or extend the setup.
Quick Links
- Proxmox Setup - Virtualization host and container basics
- Network Topology - IP ranges, DNS, routing
- Storage Configuration - ZFS and data persistence
- Service Inventory - All services at a glance
At a Glance
Host: Proxmox VE on dedicated hardware
Network: 192.168.144.0/23, gateway .1, DNS .20 (Pi-hole)
Storage: ZFS with /lxcdata/ for persistent data
Services: 11 LXC containers + 2 VMs
Architecture Overview
graph TB P[Proxmox Host<br/>192.168.144.10] --> L1[LXC Services<br/>Docker] P --> L2[LXC Services<br/>Docker] P --> V[VM Services<br/>Native] style P fill:#e1f5fe style L1 fill:#fff3e0 style L2 fill:#fff3e0 style V fill:#f3e5f5
Access Pattern:
- External: Cloudflare Tunnel → Internal service
- Internal: Lanproxy (Caddy) → Internal service
- Direct: Local IP + port
Service Categories
Web & CMS
- Grav - Flat-file CMS (opa.janvv.nl, www.janvv.nl)
- WordPress - jokegoudriaan.nl
- WordPress - kledingruil
- WordPress - pgh.janvv.nl
Applications
- Planka - Project management / Kanban (tasks.janvv.nl)
- Immich - Photo management (photos.janvv.nl)
- Home Assistant - Home automation (assistant.janvv.nl)
- Syncthing - File synchronization (sync.janvv.nl)
Automation & AI
- n8n - Workflow automation (n8n.janvv.nl)
- AI Services - Ollama + Open WebUI
Media
- Jellyfin - Media server (kijkdoos.janvv.nl)
Infrastructure Services
- MariaDB - Shared database for WordPress sites
- Lanproxy - Caddy reverse proxy for internal HTTPS
- Cloudflared - Cloudflare tunnel for external access
How-To Guides
Getting Started:
- Deploy a New Service - Add a service from scratch
- Access Containers - SSH and pct command patterns
Maintenance:
- Update a Service - Pull images and restart
- Backup & Restore - Data and database procedures
Troubleshooting:
- Troubleshoot Service Issues - Common problems and solutions
- Complete Restore from Scratch - Disaster recovery
External URLs
| Service | URL | Notes |
|---|---|---|
| Planka | https://tasks.janvv.nl | Project management |
| n8n | https://n8n.janvv.nl | Workflow automation |
| Grav | https://opa.janvv.nl | Main website |
| Jellyfin | https://kijkdoos.janvv.nl | Media streaming |
| WordPress jokegoudriaan | https://jokegoudriaan.nl | Client site |
| WordPress kledingruil | https://kledingruil.jokegoudriaan.nl | Client site |
| WordPress pgh | https://pgh.janvv.nl | Personal site |
| Immich | https://photos.janvv.nl | Photo backup |
| Home Assistant | https://assistant.janvv.nl | Home automation |
| Syncthing | https://sync.janvv.nl | File sync |
| Pi-hole | https://pihole.janvv.nl | DNS/ad blocking |
| Proxmox | https://proxmox.janvv.nl | Virtualization host |
Repository
The Docker Compose configurations are in ~/dev/homelab-docker/. Each service has its own directory with:
docker-compose.yml- Service definitioninstall.sh- Deployment scriptREADME.md- Service-specific notes.env.example- Environment variable template
Tag Reference
LXC containers are tagged by purpose:
- Automation - Workflow automation (n8n)
- App - Application services (Planka, Syncthing)
- Web - Web servers (Grav, WordPress)
- AI - AI/ML services (Ollama, Open WebUI)
- Media - Media streaming (Jellyfin)
- Network - Networking (Cloudflared, Lanproxy)
- Database - Databases (MariaDB)
- Template - Base templates for cloning