Welcome to the documentation for my personal homelab. This repository serves as a configuration backup and an architectural reference.
The core infrastructure is built on Proxmox VE. To maintain a clean and reproducible setup, I utilize LXC containers for most services to keep overhead low.
Core Architecture:
- Hypervisor: Proxmox VE.
- Provisioning: LXCs are created using the Proxmox VE Helper-Scripts.
- Application Layer: A specific "Docker Host" LXC runs Portainer, which manages various application stacks.
| Device | Model | CPU | RAM | Storage | Kernel / OS |
|---|---|---|---|---|---|
| Proxmox Host | HP 290 G1 SFF | Intel Core i3-8100 @ 3.60GHz (4 Cores) | 32GB (DDR4) | 94GB (Boot/Root) + 4TB Samsung 990 PRO SSD + 5TB Seagate One Touch HDD + 12TB Seagate Exos HDD | Linux 6.14.8-2-pve |
| Router | GL.iNet Flint 2 (GL-MT6000) | MediaTek MT7986 (Filogic 830) Quad-core @ 2.0GHz | 1GB DDR4 | 8GB eMMC | OpenWrt 23.05 (Kernel 5.15) |
Note: System currently running PVE Manager 9.0.3.
- Router: Starlink ISP + GL-iNET Flint 2 router
- DNS: handled by AdGuard Home on router
- Reverse Proxy: Nginx Proxy Manager (local access) / Clouflare Tunnel (remote access)
- VPN: Surfshark / Tailscale (remote access too)
graph TD
Internet["Internet: Starlink"] --> Router["Router: Flint 2<br/>(AdGuard Home + Surfshark VPN)"]
subgraph Proxmox_Node ["Proxmox VE Host"]
direction TB
%% Core Infrastructure
subgraph Core_Infra ["Core Infrastructure"]
direction LR
LXC_Docker["LXC 101: Main Docker Host"]
VM_HA["VM 100: Home Assistant"]
LXC_MQTT["LXC 104: MQTT"]
LXC_Z2M["LXC 103: Zigbee2MQTT"]
end
%% Secondary Docker Host (Ubuntu VM)
subgraph VM_Ubuntu ["VM 105: Ubuntu Server"]
direction TB
Container_QuikDB[("QuikDB Node")]
Container_Consensus[("Hyperbridge Consensus")]
Container_Messaging[("Hyperbridge Messaging")]
end
%% NEW: Coolify Host
subgraph VM_Coolify ["VM 108: Ubuntu Playground"]
direction TB
App_Coolify[("Coolify")]
end
%% Standalone Services
subgraph Standalone ["Standalone Services"]
LXC_Vault["LXC 102: Vaultwarden"]
LXC_Jelly["LXC 107: Jellyfin"]
VM_OMV["VM 106: OMV"]
LXC_Clawdbot["LXC 109: OpenClaw"]
end
%% Main Docker Stacks
subgraph Docker_Stacks ["Docker Stacks (on LXC 101)"]
Stack_AI["AI Stack"]
Stack_Media["Media Stack"]
Stack_NPM["Nginx Proxy Mgr"]
Stack_Solar["n8n Stack"]
Stack_Observability["Observability Stack"]
Stack_Speed["Speedtest"]
Stack_Sure["Sure App"]
end
%% Connections
LXC_Docker --> Docker_Stacks
LXC_Z2M --> LXC_MQTT
LXC_MQTT --> VM_HA
end
Router --> Proxmox_Node
Most LXCs below were provisioned using the Proxmox VE Helper-Scripts.
| ID | Name | Type | Helper Script Used | Notes |
|---|---|---|---|---|
| 100 | homeassistant |
VM | Home Assistant OS | Open source home automation that puts local control and privacy first. |
| 101 | docker |
LXC | Docker | Docker is a containerization platform that provides easy way to containerize your applications. |
| 102 | vaultwarden |
LXC | Vaultwarden | Vaultwarden is a powerful and flexible alternative password manager to Bitwarden that is particularly suitable for users who want to manage their data themselves |
| 103 | zigbee2mqtt |
LXC | Zigbee2MQTT | Zigbee2MQTT bridges events and allows you to control your Zigbee devices via MQTT. |
| 104 | mqtt |
LXC | MQTT | MQTT is an OASIS standard messaging protocol for the Internet of Things (IoT)Protocol |
| 105 | ubuntu server |
VM | Ubuntu Server OS ISO | Host for Hyperbridge Relayers & QuickDB. |
| 106 | openmediavault |
VM | openmediavault ISO | openmediavault is the next generation network attached storage (NAS) solution based on Debian Linux. |
| 107 | jellyfin |
LXC | Jellyfin | Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. |
| 108 | ubuntu playground |
VM | Ubuntu Server OS ISO | Host for Coolify and testing things. |
| 109 | openclaw |
LXC | OpenClaw script | OpenClaw is an OS gateway for AI agents across WhatsApp, Telegram, Discord, iMessage, and more. |
These services run inside the Docker Host (LXC 101). Configurations for these can be found in the /docker directory of this repo.
| Stack Name | Services Included | Config Location |
|---|---|---|
| AI | LiteLLM, Ollama, Qdrant | /docker/ai-stack |
| Media | Audiobookshelf, Bazarr, Bookshelf, Dispatcharr, Flaresolverr, Gluetun, Seerr, Lidarr,Plex, Prowlarr, Radarr, Sonarr, Qbittorrent | /docker/media-stack |
| n8n | Cloudflared, n8n, Postgres, Redis | /docker/n8n-stack |
| Nginx Proxy Manager | Maria DB , Nginx | |
| Observavility | Alloy, Grafana, Kuma, Loki, Prometheus | /docker/observability-stack |
| Speedtest Tracker | Speedtest Tracker | /docker/speedtest |
| Sure App | Sure app, Redis, Postgres, Postgres local backup | /docker/sure-app |
These services run manually on the Ubuntu Server.
| Service | Image | Config Location |
|---|---|---|
| Messaging Relayer | polytopelabs/tesseract:latest |
/proxmox/ubuntu-vm-105 |
| Consensus Relayer | polytopelabs/tesseract-consensus:latest |
/proxmox/ubuntu-vm-105 |
| QuikDB Node | bash script |
documentation |
βββ docker/ # Docker Compose files (LXC 101 Stacks)
β βββ ai-stack/ # ollama, LiteLLM, Qdrant
β β βββ docker-compose.yaml
| βββ media-stack/ # Arrs, Jellyseerr, Qbittorrent, Gluetun
β β βββ docker-compose.yaml
β βββ nginx-proxy-manager/ # NPM and MariaDB
β β βββ docker-compose.yaml
β βββ n8n-stack/ # Cloudflared, n8n
β β βββ docker-compose.yaml
β βββ observability-stack/ # Alloy, Grafana, Kuma, Loki, Prometheus
β β βββ docker-compose.yaml
β βββ speedtest/ # Speedtest Tracker
β β βββ docker-compose.yaml
β βββ sure-app/ # Sure App, Redis, Postgres
β βββ docker-compose.yaml
βββ proxmox/ # Host & Non-Docker Configs
β βββ home-assistant/ # HA configurations (YAMLs, backups)
β β βββ automations.yaml
β β βββ configuration.yaml
β β βββ dashboards.yaml
β β βββ modbus.yaml
β β βββ template.yaml
β βββ ubuntu-vm-105/
β βββ hyperbridge-relayer/
β βββ consensus-config.toml # Config for Consensus Relayer
β βββ messaging-config.toml # Config for Messaging Relayer
βββ scripts/
βββ backup-all.sh # Encrypt and backup docker stacks with data to Cloudflare R2
βββ proxmox-backup.ps1 # Move backups on Proxmox host HDD to work laptop
βββ update-lxcs.sh # Update the LXC containers using the helper scripts
βββ update-proxmox.sh # Update Proxmox host
- LXC/VM (System): Backed up Weekly to two HDDs attached to the home server.
- A replication copy is sent to a work laptop's SSD to ensure redundancy.
- Docker (Data): Backed up Daily to Cloudflare R2 using a custom backup script that encrypts data before upload.
- Proxmox Host: Custom script runs monthly updates.
- LXC Containers: Custom script runs monthly updates.
- Docker Containers: Managed via Portainer.
This repository is for documentation purposes.