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
%% Standalone Services
subgraph Standalone ["Standalone Services"]
LXC_Vault["LXC 102: Vaultwarden"]
LXC_Jelly["LXC 107: Jellyfin"]
VM_OMV["VM 106: OMV"]
end
%% Main Docker Stacks
subgraph Docker_Stacks ["Docker Stacks (on LXC 101)"]
Stack_NPM["Nginx Proxy Mgr"]
Stack_Media["Media Stack"]
Stack_Solar["Solar Agent"]
Stack_Sure["Sure App"]
Stack_Speed["Speedtest"]
end
%% Connections
LXC_Docker --> Docker_Stacks
LXC_Z2M --> LXC_MQTT
LXC_MQTT --> VM_HA
end
Router --> Proxmox_Node
All 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. |
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 |
|---|---|---|
| Media | Bazarr, Plex, Flaresolverr, Gluetun, Huntarr, Jellyseerr, Lidarr, Prowlarr, Qbittorrent, Radarr, Bookshelf fork of Readarr, Sonarr | /docker/media-stack |
| Nginx Proxy Manager | Nginx , Maria DB | /docker/nginx-proxy-manager |
| Solar Agent | Cloudflared , n8n, Ollama, Qdrant, Postgres | /docker/solar-agent |
| 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)
│ ├── media-stack/ # Arrs, Jellyseerr, Qbittorrent, Gluetun
│ │ └── docker-compose.yaml
│ ├── nginx-proxy-manager/ # NPM and MariaDB
│ │ └── docker-compose.yaml
│ ├── solar-agent/ # Cloudflared, n8n, Ollama, Qdrant
│ │ └── 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
- LXC/VM (System): Backed up Weekly to the NAS HDD.
- A replication copy is sent to a work laptop to ensure off-site redundancy.
- Docker (Data): Backed up Daily to two separate local storages attached to the Proxmox host.
- Proxmox Host: Manual monthly updates.
- LXC Containers:
apt update && apt upgrademonthly. - Docker Containers: Managed via Portainer
This repository is for documentation purposes.