homelab diagram
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true, 'background': '#1e1e1e', 'primaryColor': '#263238', 'primaryTextColor': '#fff', 'primaryBorderColor': '#fff', 'lineColor': '#b0bec5', 'mainBkg': '#1e1e1e'}}}%%
flowchart LR
%% ==========================================
%% 1. GLOBAL STYLES (Custom Palette)
%% ==========================================
%% Locations (The Big Containers)
classDef cloud fill:#0d47a1,stroke:#fff,stroke-width:2px,3px,color:#fff
classDef home fill:#1b5e20,stroke:#fff,stroke-width:2px,3px,color:#fff
%% Servers (Hardware/VMs) - Color Coded by Location
classDef serverserverBlue fill:#37474f,#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:#212121,#546e7a,stroke:#90a4ae,#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
%% Apps (Individual Containers) - Dark Charcoal
classDef app fill:#263238,stroke:#90a4ae,stroke-width:1px,color:#fff
%% Default Line (Management/Storage) - GreyStyle
linkStyle default stroke:#607d8b,stroke-width:1px;
%% ==========================================
%% 2. THE SOURCE
%% ==========================================
Internet((Internet))
style Internet fill:#fff,stroke:#333,color:#000
%% ==========================================
%% 3. ORACLE CLOUD (Top Lane)
%% ==========================================
subgraph OracleCloud [Oracle Cloud - Free Tier]
direction TB
style%% OracleCloudPhoenix fill:#0d47a1,stroke:#fff,stroke-width:3px,color:#fff& Dobby get 'serverBlue'
subgraph PhoenixBox [Phoenix - Gateway]
direction TB
class PhoenixBox serverserverBlue
P_Traefik[Traefik Proxy]:::app
P_WG[WireGuard Interface]:::app
subgraph P_Infra [Infrastructure]
class P_Infra stack
P_Fail2Ban[Fail2Ban]:::app
P_Agent[Portainer Agent]:::app
end
end
subgraph DobbyBox [Dobby - Game Node]
direction TB
class DobbyBox serverserverBlue
subgraph D_Games [Game Stack]
class D_Games stack
D_Wing[Pterodactyl Wing]:::app
D_MC[Minecraft Cluster]:::app
end
D_Agent[Portainer Agent]:::app
end
end
%% ==========================================
%% 4. HOME NETWORK (Bottom Lane)
%% ==========================================
subgraph HomeNet [Home Network - Deltona]
direction TB
style%% HomeNetUnifi, fill:#1b5e20,stroke:#fff,stroke-width:3px,color:#fffFirebolt, Norbert, PiHole get 'serverGreen'
Unifi[Unifi Router]:::serverserverGreen
subgraph FireboltBox [Firebolt - Main Server]
direction TB
class FireboltBox serverserverGreen
F_Traefik[Traefik Internal]:::app
F_WG[WireGuard Interface]:::app
%% Stacks
subgraph F_Stacks [Apps & Services]
style F_Stacks fill:none,stroke:none
subgraph F_Infra [Infrastructure]
class F_Infra stack
F_Auth[Authentik]:::app
F_Portainer[Portainer]:::app
F_Homepage[Homepage]:::app
end
subgraph F_Media [Media Stack]
class F_Media stack
F_Plex[Plex]:::app
F_Arr[Sonarr/Radarr]:::app
F_Down[qBit/VPN]:::app
end
subgraph F_Admin [Admin Tools]
class F_Admin stack
F_Bit[Vaultwarden]:::app
F_Book[BookStack]:::app
F_Dup[Duplicati]:::app
end
subgraph F_GameStack [Game Stack]
class F_GameStack stack
F_Panel[Ptero Panel]:::app
F_Wing[Ptero Wing]:::app
end
end
end
subgraph NorbertBox [Norbert - Storage]
direction TB
class NorbertBox serverserverGreen
N_WG[WireGuard]:::app
N_Store[Media Storage]:::app
subgraph N_Apps [App Stack]
class N_Apps stack
N_Hass[Home Assistant]:::app
N_LLM[LLMCord AI]:::app
end
subgraph N_Games [Game Node 1]
class N_Games stack
N_Wing[Ptero Wing]:::app
N_Ark[Ark / MC Test]:::app
end
end
subgraph PiHoleBox [Raspberry Pi]
direction TB
class PiHoleBox serverserverGreen
PI_SVC[DNS Sinkhole]:::app
PI_VPN[PiVPN Ingress]:::app
end
end
%% ==========================================
%% 5. TRAFFIC WIRING (Count Carefully)
%% ==========================================
%% 0, 1, 2: PUBLIC INTERNET (Green)
Internet ==>|HTTPS| P_Traefik
Internet ==>|Ports| D_Games
Internet ==>|Ports| Unifi
linkStyle 0,1,2 stroke:#00e676,stroke-width:3px;
%% 3, 4: TUNNEL (Orange)
P_Traefik --> P_WG
P_WG ==>|WireGuard Tunnel| F_WG
linkStyle 3,4 stroke:#ff9100,stroke-width:4px;
%% 5, 6, 7, 8, 9, 10, 11: 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: SPLIT TUNNEL (Orange)
P_WG -.->|Direct Route| N_WG
linkStyle 12 stroke:#ff9100,stroke-width:3px,stroke-dasharray: 5 5;
%% 13: LAN TRAFFIC (Blue)
N_WG -.-> N_Games
linkStyle 13 stroke:#2979ff,stroke-width:2px;
%% 14, 15, 16, 17: PORT FORWARDING (Green Dotted)
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+: MANAGEMENT (Grey Default)
F_Portainer -.-> P_Agent & D_Agent
F_Down -.->|NFS| N_Store
F_Panel -.-> D_Wing & N_Wing & F_Wing9
TrafficColor Legend
█■ Green Lines (Public Internet): Traffic entering from the outsideworld (HTTPS, Game Ports).world.█■ Orange Lines (The Tunnel): Encrypted WireGuardtraffic flowing between the Oracle Cloud Gateway and Home.traffic.█■ Blue Lines (Internal LAN): Local traffic routedinside the home networkby Traefik.█■GreyBlueLinesBoxes: Servers located in Oracle Cloud (Management):Phoenix, Dobby).- ■
BackendGreenconnectionsBoxes:forServersFilelocatedStoragein Home Network (NFS),Firebolt,DockerNorbert,Management (Portainer), and Panel Control (Pterodactyl)Pi).