homelab diagram
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#263238', 'primaryTextColor': '#fff', 'primaryBorderColor': '#78909c', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff', 'mainBkg': '#263238'}}}%%
flowchart TD
%% --- Color Definitions (High Contrast) ---
classDef cloud fill:#0d47a1,stroke:#64b5f6,stroke-width:2px,color:#fff
classDef home fill:#1b5e20,stroke:#81c784,stroke-width:2px,color:#fff
classDef device fill:#37474f,stroke:#eceff1,stroke-width:2px,rx:5,ry:5,color:#fff
classDef stack fill:#212121,stroke:#607d8b,stroke-width:1px,stroke-dasharray: 5 5,color:#eceff1==========================================
%% ---1. InternetHARDCODED EntrySTYLING ---(The Internet((Internet))
style Internet fill:#fff,stroke:#333,color:#000Fix)
%% ==========================================
%% 1.Cloud: Deep Blue background, Bright Blue Border, White Text
classDef cloud fill:#0d47a1,stroke:#64b5f6,stroke-width:3px,color:#fff
%% Home: Deep Green background, Bright Green Border, White Text
classDef home fill:#1b5e20,stroke:#66bb6a,stroke-width:3px,color:#fff
%% Device: Dark Grey, White Border, White Text
classDef device fill:#37474f,stroke:#ffffff,stroke-width:2px,color:#fff
%% Stack: Black/Grey background, Dashed Border, White Text
classDef stack fill:#212121,stroke:#90a4ae,stroke-width:1px,stroke-dasharray: 5 5,color:#eceff1
%% ==========================================
%% 2. TOP LAYER: ORACLE CLOUD (TOP FLOOR)
%% ==========================================
subgraph OracleCloud [Oracle Cloud - Free Tier]
direction TB
%% Phoenix and Dobby Side-by-Side (Small enough to fit)Box
subgraph PhoenixBox [Phoenix - Intel VM]
class PhoenixBox device
direction TB
P_Traefik[Traefik Proxy]
subgraph PhoenixInfra [Infrastructure]
class PhoenixInfra stack
direction TB
P_WG[WG Interface 10.8.0.1]Interface]
P_Fail2Ban[Fail2Ban]
P_Watchtower[Watchtower]
P_Agent[Portainer Agent]
end
subgraph PhoenixApps [Local Apps]
class PhoenixApps stack
direction TB
P_Kuma[Uptime Kuma]
P_Dash[Traefik Dashboard]
end
end
%% Dobby Box
subgraph DobbyBox [Dobby - ARM VM]
class DobbyBox device
direction TB
subgraph DobbySvcs [Services]
class DobbySvcs stack
direction TB
D_Wing[Pterodactyl Wing]
D_Agent[Portainer Agent]
D_MC[Minecraft Cluster]
end
end
end
%% ==========================================
%% 2.3. BOTTOM LAYER: HOME NETWORK (LOWER FLOORS)
%% ==========================================
subgraph HomeNet [Home Network - Deltona]
direction TB
Unifi[Unifi Router]
class Unifi device
%% --- Floor 1: Firebolt (TheForced MainVertical Server)Column) ---
subgraph FireboltBox [Firebolt - Ubuntu Server]
class FireboltBox device
direction TB
F_Traefik[Traefik Internal]
F_WG[WG InterfaceInterface]
10.8.0.5]%% This "Master Stack" box forces everything inside to be a vertical column
subgraph FireboltColumn [ ]
direction TB
style FireboltColumn fill:none,stroke:none
subgraph FireboltInfra [Infrastructure]
class FireboltInfra stack
direction TB
F_Auth[Authentik IDP]
F_MySQL[MySQL DB]
F_Homepage[Homepage]
F_Portainer[Portainer Server]
F_Autoheal[Autoheal]
end
subgraph FireboltAdmin [Admin Tools]
class FireboltAdmin stack
direction TB
F_Bitwarden[Vaultwarden]
F_Bookstack[BookStack Wiki]
F_Duplicati[Duplicati]
F_FileBrowser[FileBrowser]
F_PMA[phpMyAdmin]
end
subgraph FireboltMedia [Media Stack]
class FireboltMedia stack
direction TB
F_Plex[Plex Media Server]
F_Overseerr[Overseerr]
F_Sonarr[Sonarr]
F_Radarr[Radarr]
F_Prowlarr[Prowlarr]
F_Tautulli[Tautulli]
F_Unpackerr[Unpackerr]
F_Qbit[qBittorrent - VPN]
F_Flaresolverr[FlareSolverr]
F_Doplarr[Doplarr]
end
subgraph FireboltGames [Games Stack]
class FireboltGames stack
direction TB
F_PteroPanel[Pterodactyl Panel]
F_PteroWing[Pterodactyl Wing]
F_PteroDB[Panel DB & Redis]
end
end
end
%% --- Floor 2: Norbert (Storage & Aux) ---
subgraph NorbertBox [Norbert - Unraid]
class NorbertBox device
direction TB
N_WG[WG Interface 10.8.0.2]Interface]
subgraph NorbertInfra [Infra & Apps]
class NorbertInfra stack
direction TB
N_Agent[Portainer Agent]
N_Hass[Home Assistant VM]
N_LLM[LLMCord AI]
end
subgraph NorbertGames [Game Node]
class NorbertGames stack
direction TB
N_Wing[Pterodactyl Wing]
N_ArkBot[Ark Discord Bot]
N_MCTest[Minecraft Test]
end
N_Storage[Media Storage]
end
%% --- Floor 3: PiHole (Utility) ---
subgraph PiHoleBox [Raspberry Pi]
class PiHoleBox device
direction TB
PI_SVC[DNS Sinkhole]
PI_VPN[PiVPN Ingress]
end
end
%% ==========================================
%% ALIGNMENT4. INVISIBLE LINKS (THEForce MAGIC STACKING)Alignment)
%% ==========================================
%% 1. Force Oracle ABOVEon TOP of Home
OracleCloud ~~~ HomeNet
%% 2. Force Firebolt ABOVEon TOP of Norbert ABOVEon TOP of PiHole
FireboltBox ~~~ NorbertBox ~~~ PiHoleBox
%% 3.Stacks inside Firebolt (Force Internal StacksOrder)
FireboltInfra ~~~ FireboltAdmin ~~~ FireboltMedia ~~~ FireboltGames
%% ==========================================
%% 5. VISIBLE CONNECTIONS
%% ==========================================
%% Internet to CloudEntry
Internet == HTTPS ==> P_Traefik
Internet -- Ports --> DobbySvcs
Internet -- Ports --> Unifi
%% Cloud to Home (Tunnel)Tunnel
P_Traefik --> P_WG
P_WG ==>|Tunnel| F_WG
F_WG --> F_Traefik
%% Internal Routing (SimplifiedArrows forto cleanStacks lines)to keep diagram clean)
F_Traefik --> FireboltInfra & FireboltAdmin & FireboltMedia & FireboltGames
F_Traefik -.->|LAN Proxy| N_Hass & PI_SVC
%% Split Routing
(GameNode1)
P_WG -.->|Direct| N_WG
N_WG -.-> NorbertGames
%% GamePort Ports
Internet -- Ports --> DobbySvcs
Internet -- Ports --> UnifiForwarding
Unifi -- Port Fwd --> FireboltGames
Unifi -- Port Fwd --> NorbertGames
Unifi -- Port Fwd --> PI_VPN
%% Management
Links
F_Portainer -.->|Manage| P_Agent & D_Agent & N_Agent
FireboltMedia -.->|NFS| N_Storage
%% StylesAPPLY CLASSES
class OracleCloud cloud
class HomeNet home