// Homelab architecture - managed through Git and published automatically workspace "Homelab Infrastructure" "C4 model of the Proxmox homelab and its deployed services." { model { user = person "Remote User" "Accesses homelab services remotely." cloudflare = softwareSystem "Cloudflare Zero Trust" "Provides WARP private access, DNS, and Cloudflare Tunnel connectivity." homelab = softwareSystem "Homelab Services" "Self-hosted services running in the Proxmox homelab." { vaultwarden = container "Vaultwarden" "Self-hosted password manager." "Vaultwarden / Docker" cloudflared = container "cloudflared" "Maintains the Cloudflare Tunnel between the homelab and Cloudflare." "cloudflared / Docker" caddy = container "Caddy" "Reverse proxy and HTTPS endpoint for homelab services." "Caddy / Docker" } user -> cloudflare "Connects using WARP" cloudflare -> cloudflared "Connects through Cloudflare Tunnel" cloudflared -> vaultwarden "Provides private network access" user -> caddy "Accesses HTTPS services" caddy -> vaultwarden "Reverse proxies HTTPS requests" caddy -> cloudflare "Uses Cloudflare DNS API for DNS-01 certificate validation" deploymentEnvironment "Home" { deploymentNode "Home Network" "Private LAN" "192.168.88.0/24" { deploymentNode "Proxmox pve" "Virtualization host" "Proxmox VE" { tags "Proxmox" properties { "IP Address" "192.168.88.20" "Bridge" "vmbr0" } deploymentNode "LXC 101 - edge-services" "Edge services container" "Debian 12 LXC" { tags "LXC" properties { "IP Address" "192.168.88.30" "vCPU" "2" "RAM" "2 GB" "Disk" "16 GB" } containerInstance vaultwarden containerInstance cloudflared } deploymentNode "LXC 102 - proxy-01" "Reverse proxy container" "Debian 12 LXC" { tags "LXC" properties { "IP Address" "192.168.88.31" "vCPU" "1" "RAM" "1 GB" "Disk" "12 GB" } containerInstance caddy } } } } } views { systemContext homelab "SystemContext" { include * autolayout tb } container homelab "Containers" { include user include cloudflare include vaultwarden include cloudflared include caddy autolayout tb } deployment homelab "Home" { include * autolayout tb } styles { element "Person" { shape person background #08427b color #ffffff } element "Software System" { background #1168bd color #ffffff } element "Container" { background #438dd5 color #ffffff } element "Deployment Node" { background #eeeeee color #111111 } element "Proxmox" { background #7e57c2 color #ffffff } element "LXC" { background #4caf50 color #ffffff } } } }