homelab diagram
%%{init: {'theme': 'dark'base', 'themeVariables': { 'darkMode': true, 'background': '#1e1e1e', 'primaryColor': '#263238', 'primaryTextColor': '#fff', 'primaryBorderColor': '#fff', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff', 'mainBkg': '#1e1e1e'}}}%%
flowchart LR
%% ==========================================
%% 1. GLOBAL NODE STYLES (CustomThe Palette)Apps)
%% ==========================================
%% Locations (The Big Containers)
classDef cloud fill:#0d47a1,stroke:#fff,stroke-width:3px,color:#fff
classDef home fill:#1b5e20,stroke:#fff,stroke-width:3px,color:#fff
%% Servers (Hardware/VMs) - Color Coded by Location
classDef serverBlue fill:#1565c0,stroke:#fff,stroke-width:2px,color:#fff
classDef serverGreen fill:#2e7d32,stroke:#fff,stroke-width:2px,color:#fff
%% Stacks (Logical Groupings) - Grey
classDef stack fill:#546e7a,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
%% Apps (Individualwill Containers) -be Dark Charcoal with Light Grey borders
classDef app fill:#263238,stroke:#90a4ae,stroke-width:1px,color:#fff
%% Default Line StyleStyles
linkStyle default stroke:#607d8b,stroke-width:1px;
%% ==========================================
%% 2. THE SOURCE
%% ==========================================
Internet((Internet))
style Internet fill:#fff,stroke:#333,color:#000
%% ==========================================
%% 3. ORACLE CLOUD (TopOuter Lane)Box: Deep Blue)
%% ==========================================
subgraph OracleCloud [Oracle Cloud - Free Tier]
direction TB
style OracleCloud fill:#0d47a1,stroke:#fff,stroke-width:3px,color:#fff
%% Phoenix--- &PHOENIX Dobby(Server: getMedium 'serverBlue'Blue) ---
subgraph PhoenixBox [Phoenix - Gateway]
direction TB
classstyle PhoenixBox serverBluefill:#1565c0,stroke:#fff,stroke-width:2px,color:#fff
P_Traefik[Traefik Proxy]:::app
P_WG[WireGuard Interface]:::app
%% Stack: Grey
subgraph P_Infra [Infrastructure]
classstyle P_Infra stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
P_Fail2Ban[Fail2Ban]:::app
P_Agent[Portainer Agent]:::app
end
end
%% --- DOBBY (Server: Medium Blue) ---
subgraph DobbyBox [Dobby - Game Node]
direction TB
classstyle DobbyBox serverBluefill:#1565c0,stroke:#fff,stroke-width:2px,color:#fff
%% Stack: Grey
subgraph D_Games [Game Stack]
classstyle D_Games stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
D_Wing[Pterodactyl Wing]:::app
D_MC[Minecraft Cluster]:::app
end
D_Agent[Portainer Agent]:::app
end
end
%% ==========================================
%% 4. HOME NETWORK (BottomOuter Lane)Box: Deep Green)
%% ==========================================
subgraph HomeNet [Home Network - Deltona]
direction TB
%%style Unifi,HomeNet Firebolt, Norbert, PiHole get 'serverGreen'fill:#1b5e20,stroke:#fff,stroke-width:3px,color:#fff
Unifi[Unifi Router]:::serverGreenapp
%% Manually styling Unifi to look like a server since it's a standalone node
style Unifi fill:#2e7d32,stroke:#fff,stroke-width:2px,color:#fff
%% --- FIREBOLT (Server: Medium Green) ---
subgraph FireboltBox [Firebolt - Main Server]
direction TB
classstyle FireboltBox serverGreenfill:#2e7d32,stroke:#fff,stroke-width:2px,color:#fff
F_Traefik[Traefik Internal]:::app
F_WG[WireGuard Interface]:::app
%% StacksInvisible container for layout
subgraph F_Stacks [Apps & Services]
style F_Stacks fill:none,stroke:nonenone,color:#fff
%% Stacks: Grey
subgraph F_Infra [Infrastructure]
classstyle F_Infra stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
F_Auth[Authentik]:::app
F_Portainer[Portainer]:::app
F_Homepage[Homepage]:::app
end
subgraph F_Media [Media Stack]
classstyle F_Media stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
F_Plex[Plex]:::app
F_Arr[Sonarr/Radarr]:::app
F_Down[qBit/VPN]:::app
end
subgraph F_Admin [Admin Tools]
classstyle F_Admin stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
F_Bit[Vaultwarden]:::app
F_Book[BookStack]:::app
F_Dup[Duplicati]:::app
end
subgraph F_GameStack [Game Stack]
classstyle F_GameStack stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
F_Panel[Ptero Panel]:::app
F_Wing[Ptero Wing]:::app
end
end
end
%% --- NORBERT (Server: Medium Green) ---
subgraph NorbertBox [Norbert - Storage]
direction TB
classstyle NorbertBox serverGreenfill:#2e7d32,stroke:#fff,stroke-width:2px,color:#fff
N_WG[WireGuard]:::app
N_Store[Media Storage]:::app
subgraph N_Apps [App Stack]
classstyle N_Apps stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
N_Hass[Home Assistant]:::app
N_LLM[LLMCord AI]:::app
end
subgraph N_Games [Game Node 1]
classstyle N_Games stackfill:#455a64,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
N_Wing[Ptero Wing]:::app
N_Ark[Ark / MC Test]:::app
end
end
%% --- PIHOLE (Server: Medium Green) ---
subgraph PiHoleBox [Raspberry Pi]
direction TB
classstyle PiHoleBox serverGreenfill:#2e7d32,stroke:#fff,stroke-width:2px,color:#fff
PI_SVC[DNS Sinkhole]:::app
PI_VPN[PiVPN Ingress]:::app
end
end
%% ==========================================
%% 5. TRAFFIC WIRING (Explicit Colors)
%% ==========================================
%% 0,GREEN: 1,Internet 2: PUBLIC INTERNET (Green)Ingress
Internet ==>|HTTPS| P_Traefik
Internet ==>|Ports| D_Games
Internet ==>|Ports| Unifi
linkStyle 0,1,2 stroke:#00e676,stroke-width:3px;
%% 3,ORANGE: 4:The TUNNEL (Orange)Tunnel
P_Traefik --> P_WG
P_WG ==>|WireGuard Tunnel| F_WG
linkStyle 3,4 stroke:#ff9100,stroke-width:4px;
%% 5,BLUE: 6, 7, 8, 9, 10, 11:Internal LAN TRAFFIC (Blue)
F_WG --> F_Traefik
F_Traefik --> F_Infra & F_Media & F_Admin & F_GameStack
F_Traefik -.-> N_Apps & PI_SVC
linkStyle 5,6,7,8,9,10,11 stroke:#2979ff,stroke-width:2px;
%% 12:ORANGE: SPLITSplit TUNNEL (Orange)Route
P_WG -.->|Direct Route| N_WG
linkStyle 12 stroke:#ff9100,stroke-width:3px,stroke-dasharray: 5 5;
%% 13:BLUE: Internal LAN TRAFFIC (Blue)
N_WG -.-> N_Games
linkStyle 13 stroke:#2979ff,stroke-width:2px;
%% 14, 15, 16, 17: PORT FORWARDINGGREEN (GreenDotted): Dotted)Port Forwarding
Unifi -.->|32400| F_Plex
Unifi -.->|Game Ports| F_GameStack
Unifi -.->|Game Ports| N_Games
Unifi -.->|51820| PI_VPN
linkStyle 14,15,16,17 stroke:#00e676,stroke-width:2px,stroke-dasharray: 5 5;
%% 18+:GREY: MANAGEMENT (Grey Default)Management
F_Portainer -.-> P_Agent & D_Agent
F_Down -.->|NFS| N_Store
F_Panel -.-> D_Wing & N_Wing & F_Wing
%% Apply Classes
class OracleCloud cloud
class HomeNet home
Color Legend
- ■ Green Lines (Public Internet): Traffic entering from the outside world.
- ■ Orange Lines (The Tunnel): Encrypted WireGuard traffic.
- ■ Blue Lines (Internal LAN): Local traffic routed by Traefik.
- ■ Blue Boxes: Servers located in Oracle Cloud (Phoenix, Dobby).
- ■ Green Boxes: Servers located in Home Network (Firebolt, Norbert, Pi).