homelab diagram
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#263238'#37474f', 'primaryTextColor': '#fff', 'primaryBorderColor': '#78909c'#fff', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff', 'mainBkg': '#263238'}}}%%
flowchart TD
%% ==========================================
%% 1. HARDCODEDROBUST STYLING (The Fix)
%% ==========================================
%% Cloud: Deep Blue background, Bright Blue Border, White Text
classDef cloud fill:#0d47a1,stroke:#64b5f6,#fff,stroke-width:3px,2px,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,#fff,stroke-width:2px,color:#fff
%%classDef Stack:server Black/Grey background, Dashed Border, White Textfill:#37474f,stroke:#90a4ae,stroke-width:2px,color:#fff
classDef stack fill:#212121,#263238,stroke:#90a4ae,#b0bec5,stroke-width:1px,stroke-dasharray: 5 5,color:#eceff1
%% ==========================================
%% 2. TOP LAYER: ORACLE CLOUD
%% ==========================================
subgraph OracleCloud [Oracle Cloud - Free Tier]Cloud]
direction TB
%% Phoenix
Box
subgraph PhoenixBox [Phoenix - Intel VM]
class PhoenixBox device
direction TBserver
P_Traefik[Traefik Proxy]
subgraphP_Stack[<b>Infrastructure</b><br/>WireGuard PhoenixInfra [Infrastructure]
class PhoenixInfra stack
direction TB
P_WG[WG Interface]
P_Fail2Ban[Fail2Ban]
P_Watchtower[Watchtower]
P_Agent[Interface<br/>Fail2Ban<br/>Watchtower<br/>Portainer Agent]
end
subgraph PhoenixApps [Local Apps]
class PhoenixApps stack
direction TB
P_Kuma[Agent<br/>----<br/><b>Apps</b><br/>Uptime Kuma]
P_Dash[Kuma<br/>Traefik Dashboard]
endclass P_Stack stack
end
%% Dobby
Box
subgraph DobbyBox [Dobby - ARM VM]
class DobbyBox deviceserver
directionD_Stack[<b>Game TBNode subgraph2</b><br/>Pterodactyl DobbySvcsWing<br/>Portainer [Services]Agent<br/>----<br/><b>Minecraft Cluster</b><br/>PO3 / ATM10 / Bedrock]
class DobbySvcsD_Stack stack
direction TB
D_Wing[Pterodactyl Wing]
D_Agent[Portainer Agent]
D_MC[Minecraft Cluster]
end
end
end
%% ==========================================
%% 3. BOTTOM LAYER: HOME
NETWORK
%% ==========================================
subgraph HomeNet [Home Network - Deltona]Network]
direction TB
Unifi[Unifi Router]
class Unifi deviceserver
%% --FIREBOLT (The Heavy Lifter - FireboltNow (Forceda Vertical Column) ---List)
subgraph FireboltBox [Firebolt - Ubuntu Server]
class FireboltBox deviceserver
direction TB
F_Traefik[F_Net[Traefik Internal]Internal F_WG[WG/ Interface]WireGuard]
%%F_Infra[<b>Infrastructure</b><br/>Authentik ThisIDP<br/>MySQL "MasterDB<br/>Homepage<br/>Portainer Stack" box forces everything inside to be a vertical column
subgraph FireboltColumn [ ]
direction TB
style FireboltColumn fill:none,stroke:none
subgraph FireboltInfra [Infrastructure]Server<br/>Autoheal]
class FireboltInfraF_Infra stack
direction TB
F_Auth[Authentik IDP]
F_MySQL[MySQL DB]
F_Homepage[Homepage]
F_Portainer[Portainer Server]
F_Autoheal[Autoheal]
end
subgraph FireboltAdmin [F_Admin[<b>Admin Tools]Tools</b><br/>Vaultwarden<br/>BookStack Wiki<br/>Duplicati<br/>FileBrowser<br/>phpMyAdmin]
class FireboltAdminF_Admin stack
direction TB
F_Bitwarden[Vaultwarden]
F_Bookstack[BookStack Wiki]
F_Duplicati[Duplicati]
F_FileBrowser[FileBrowser]
F_PMA[phpMyAdmin]
end
subgraph FireboltMedia [F_Media[<b>Media Stack]
class FireboltMedia stack
direction TB
F_Plex[Stack</b><br/>Plex Media Server]Server<br/>Overseerr F_Overseerr[Overseerr]/ F_Sonarr[Sonarr]Tautulli<br/>Sonarr F_Radarr[Radarr]/ F_Prowlarr[Prowlarr]Radarr F_Tautulli[Tautulli]/ F_Unpackerr[Unpackerr]
F_Qbit[Prowlarr<br/>qBittorrent -/ VPN]Unpackerr F_Flaresolverr[FlareSolverr]/ F_Doplarr[Flare<br/>Doplarr]
end
subgraph FireboltGames [Games Stack]
class FireboltGamesF_Media stack
directionF_Games[<b>Game TB
F_PteroPanel[Stack</b><br/>Pterodactyl Panel]
F_PteroWing[Panel<br/>Pterodactyl Wing]
F_PteroDB[Wing<br/>Panel DB & Redis]
endclass endF_Games stack
end
%% --- Norbert ---NORBERT
subgraph NorbertBox [Norbert - Unraid]
class NorbertBox deviceserver
direction TB
N_WG[WGN_Net[WireGuard Interface]
subgraph NorbertInfra [InfraN_Stack[<b>Apps & Apps]
class NorbertInfra stack
direction TB
N_Agent[Portainer Agent]
N_Hass[Infra</b><br/>Home Assistant VM]
N_LLM[VM<br/>LLMCord AI]AI<br/>Portainer end
subgraph NorbertGames [Agent<br/>----<br/><b>Game Node]Node class NorbertGames stack
direction TB
N_Wing[1</b><br/>Pterodactyl Wing]
N_ArkBot[Wing<br/>Ark Discord Bot]
N_MCTest[Bot<br/>Minecraft Test]
endclass N_Stack stack
N_Storage[Media Storage]
end
%% --- PiHole ---PIHOLE
subgraph PiHoleBox [Raspberry Pi]
class PiHoleBox deviceserver
direction TB
PI_SVC[PI_Stack[<b>Services</b><br/>DNS Sinkhole]
PI_VPN[Sinkhole<br/>PiVPN Ingress]
class PI_Stack stack
end
end
%% ==========================================
%% 4. INVISIBLEALIGNMENT & LINKS (Force Alignment)
%% ==========================================
%% OracleForce onVertical TOP of HomeOrder
OracleCloud ~~~ HomeNet
%% Firebolt on TOP of Norbert on TOP of PiHole
FireboltBox ~~~ NorbertBox ~~~ PiHoleBox
%% Stacks insideForce Firebolt (ForceInternal Order)Order
FireboltInfraF_Net ~~~--> FireboltAdminF_Infra ~~~--> FireboltMediaF_Admin ~~~--> FireboltGamesF_Media --> F_Games
%% ==========================================Traffic
%% 5. VISIBLE CONNECTIONS
%% ==========================================
%% Internet Entry
InternetInternet((Internet)) == HTTPS ==> P_Traefik
style Internet fill:#fff,stroke:#333,color:#000
P_Traefik --> P_Stack
P_Traefik ==>|Tunnel| F_Net
F_Net --> F_Infra & F_Admin & F_Media & F_Games
F_Net -.-> N_Stack & PI_Stack
%% Split Route
P_Stack -.-> N_Net
N_Net -.-> N_Stack
%% Ports
Internet -- Ports --> DobbySvcsD_Stack
Internet -- Ports --> Unifi
%%Unifi Tunnel-- P_TraefikPort Fwd --> P_WG
P_WG ==>|Tunnel| F_WG
F_WG --> F_Traefik
%% Internal Routing (Arrows to Stacks to keep diagram clean)
F_Traefik --> FireboltInfra & FireboltAdmin & FireboltMedia & FireboltGames
F_Traefik -.->|LAN Proxy| N_Hass & PI_SVC
%% Split Routing
P_WG -.->|Direct| N_WG
N_WG -.-> NorbertGames
%% Port ForwardingF_Games
Unifi -- Port Fwd --> FireboltGamesN_Stack
Unifi -- Port Fwd --> NorbertGames
Unifi -- Port Fwd --> PI_VPNPI_Stack
%% Management
F_PortainerF_Infra -.->|Manage| P_AgentP_Stack & D_AgentD_Stack & N_AgentN_Stack
FireboltMediaF_Media -.->|NFS| N_Storage
%% APPLY CLASSESCLASS
class OracleCloud cloud
class HomeNet home