Homelab Configuration
System 01 // Network Topology
graph TD
classDef wan fill:#1a0505,stroke:#ef4444;
classDef router fill:#1e1b05,stroke:#f59e0b;
classDef security fill:#050d1a,stroke:#3b82f6;
classDef server fill:#051a0d,stroke:#10b981;
subgraph WAN ["INTERNET INGRESS"]
A1["Airtel (Locked)"]:::wan
A2["Broadband 2"]:::wan
A3["SIM Link"]:::wan
end
WAN --> LB["TL-R605 Load Balancer"]:::router
subgraph GATE ["SECURITY GATEKEEPER"]
PFS["pfSense Firewall"]:::security
SXG["Sophos XG"]:::security
subgraph DNS ["DNS CLUSTER"]
AG1["AGH Instance 1"]:::security
AG2["AGH Instance 2"]:::security
AG3["AGH Instance 3"]:::security
QUIC["DNS-over-QUIC"]:::security
AG1 & AG2 & AG3 --> QUIC
end
end
LB --> PFS & SXG
PFS & SXG --> DNS
subgraph INFRA ["HYPERVISOR NODES"]
PROX["Proxmox VE"]:::server
PI["Pi Zero"]:::server
VPS["Cloud VPS"]:::server
end
DNS --> INFRA
subgraph QUBES ["QUBES OS CHAIN"]
SN["sys-net"] --> MF["mirage-fw"] --> ST["sys-tailscale"] --> SF["sys-firewall"] --> QB["User Qubes"]
end
INFRA --> QUBES
System 02 // VPS Container Stack
graph LR
classDef proxy fill:#1e1b05,stroke:#f59e0b;
classDef app fill:#051a0d,stroke:#10b981;
classDef knowledge fill:#1a0a2a,stroke:#a855f7;
classDef game fill:#2a0a1a,stroke:#ef4444;
INET["Public Web"] --> NPM["Nginx Proxy Manager"]:::proxy
subgraph KNOWLEDGE ["KNOWLEDGE BASE"]
TRIL["Trilium Notes"]:::knowledge
SIY["Siyuan Notes"]:::knowledge
HOM["Homepage Dashboard"]:::knowledge
end
subgraph WEB ["WEB CMS"]
WP1["WordPress 01"]:::app
WP2["WordPress 02"]:::app
DB1[("MariaDB 1")]:::app
DB2[("MariaDB 2")]:::app
WP1 --- DB1
WP2 --- DB2
end
subgraph VDI ["WORKSPACES"]
KASM["Kasm Workspaces"]:::app
FIRE["Firefox VDI"]:::app
end
subgraph OPS ["GAMING & OPS"]
ASF["Steam Farm"]:::game
SCMD["SteamCMD"]:::game
PORT["Portainer CE"]:::proxy
WATCH["Watchtower"]:::proxy
ADG["AdGuard Home"]:::proxy
end
NPM --> KNOWLEDGE
NPM --> WEB
NPM --> VDI
NPM --> OPS