homelab diagram
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#37474f', 'primaryTextColor': '#fff', 'primaryBorderColor': '#fff', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff', 'mainBkg': '#263238'}}}%%
flowchart TD
%% ==========================================
%% 1. ROBUST STYLING
%% ==========================================
classDef cloud fill:#0d47a1,stroke:#fff,stroke-width:2px,color:#fff
classDef home fill:#1b5e20,stroke:#fff,stroke-width:2px,color:#fff
classDef server fill:#37474f,stroke:#90a4ae,stroke-width:2px,color:#fff
classDef stack fill:#263238,stroke:#b0bec5,stroke-width:1px,stroke-dasharray: 5 5,color:#eceff1
%% ==========================================
%% 2. TOP LAYER: CLOUD
%% ==========================================
subgraph OracleCloud [Oracle Cloud]
direction TB
%% Phoenix
subgraph PhoenixBox [Phoenix VM]
class PhoenixBox server
P_Traefik[Traefik Proxy]
P_Stack[<b>Infrastructure</b><br/>WireGuard Interface<br/>Fail2Ban<br/>Watchtower<br/>Portainer Agent<br/>----<br/><b>Apps</b><br/>Uptime Kuma<br/>Traefik Dashboard]
class P_Stack stack
end
%% Dobby
subgraph DobbyBox [Dobby VM]
class DobbyBox server
D_Stack[<b>Game Node 2</b><br/>Pterodactyl Wing<br/>Portainer Agent<br/>----<br/><b>Minecraft Cluster</b><br/>PO3 / ATM10 / Bedrock]
class D_Stack stack
end
end
%% ==========================================
%% 3. BOTTOM LAYER: HOME
%% ==========================================
subgraph HomeNet [Home Network]
direction TB
Unifi[Unifi Router]
class Unifi server
%% FIREBOLT (The Heavy Lifter - Now a Vertical List)
subgraph FireboltBox [Firebolt Server]
class FireboltBox server
F_Net[Traefik Internal / WireGuard]
F_Infra[<b>Infrastructure</b><br/>Authentik IDP<br/>MySQL DB<br/>Homepage<br/>Portainer Server<br/>Autoheal]
class F_Infra stack
F_Admin[<b>Admin Tools</b><br/>Vaultwarden<br/>BookStack Wiki<br/>Duplicati<br/>FileBrowser<br/>phpMyAdmin]
class F_Admin stack
F_Media[<b>Media Stack</b><br/>Plex Media Server<br/>Overseerr / Tautulli<br/>Sonarr / Radarr / Prowlarr<br/>qBittorrent / Unpackerr / Flare<br/>Doplarr]
class F_Media stack
F_Games[<b>Game Stack</b><br/>Pterodactyl Panel<br/>Pterodactyl Wing<br/>Panel DB & Redis]
class F_Games stack
end
%% NORBERT
subgraph NorbertBox [Norbert Unraid]
class NorbertBox server
N_Net[WireGuard Interface]
N_Stack[<b>Apps & Infra</b><br/>Home Assistant VM<br/>LLMCord AI<br/>Portainer Agent<br/>----<br/><b>Game Node 1</b><br/>Pterodactyl Wing<br/>Ark Discord Bot<br/>Minecraft Test]
class N_Stack stack
N_Storage[Media Storage]
end
%% PIHOLE
subgraph PiHoleBox [Raspberry Pi]
class PiHoleBox server
PI_Stack[<b>Services</b><br/>DNS Sinkhole<br/>PiVPN Ingress]
class PI_Stack stack
end
end
%% ==========================================
%% 4. ALIGNMENT & LINKS
%% ==========================================
%% Force Vertical Order
OracleCloud ~~~ HomeNet
FireboltBox ~~~ NorbertBox ~~~ PiHoleBox
%% Force Firebolt Internal Order
F_Net --> F_Infra --> F_Admin --> F_Media --> F_Games
%% Traffic
Internet((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 --> D_Stack
Internet -- Ports --> Unifi
Unifi -- Port Fwd --> F_Games
Unifi -- Port Fwd --> N_Stack
Unifi -- Port Fwd --> PI_Stack
%% Management
F_Infra -.->|Manage| P_Stack & D_Stack & N_Stack
F_Media -.->|NFS| N_Storage
%% APPLY CLASS
class OracleCloud cloud
class HomeNet home