homelab diagram
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#263238', 'primaryTextColor': '#fff', 'primaryBorderColor': '#fff', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff', 'mainBkg': '#1e1e1e'}}}%%
flowchart LR
%% ==========================================
%% 1. GLOBAL STYLES (Apps & Lines)
%% ==========================================
%% Apps (Smallest Boxes)
classDef app fill:#263238,stroke:#90a4ae,stroke-width:1px,color:#fff
%% Line Defaults
linkStyle default stroke:#607d8b,stroke-width:1px;
%% ==========================================
%% 2. THE SOURCE
%% ==========================================
Internet((Internet))
style Internet fill:#fff,stroke:#333,color:#000
%% ==========================================
%% 3. ORACLE CLOUD (Blue Zone)
%% ==========================================
subgraph OracleCloud [Oracle Cloud - Free Tier]
direction TB
%% ZONE COLOR: Deep Blue
style OracleCloud fill:#0d47a1,stroke:#fff,stroke-width:3px,color:#fff
%% --- PHOENIX (Neutral Card) ---
subgraph PhoenixBox [Phoenix - Gateway]
direction TB
%% CARD COLOR: Dark Charcoal (Hard Coded)
style PhoenixBox fill:#37474f,stroke:#fff,stroke-width:2px,color:#fff
P_Traefik[Traefik Proxy]:::app
P_WG[WireGuard Interface]:::app
subgraph P_Infra [Infrastructure]
style P_Infra fill:#546e7a,stroke:#cfd8dc,stroke-width:1px,stroke-dasharray: 5 5,color:#fff
P_Fail2Ban[Fail2Ban]:::app
P_Agent[Portainer Agent]:::app
end
end
%% --- DOBBY (Neutral Card) ---
subgraph DobbyBox [Dobby - Game Node]
direction TB
%% CARD COLOR: Dark Charcoal (Hard Coded)
style DobbyBox fill:#37474f,stroke:#fff,stroke-width:2px,color:#fff
subgraph D_Games [Game Stack]
style D_Games fill:#546e7a,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 (Green Zone)
%% ==========================================
subgraph HomeNet [Home Network - Deltona]
direction TB
%% ZONE COLOR: Deep Green
style HomeNet fill:#1b5e20,stroke:#fff,stroke-width:3px,color:#fff
%% --- UNIFI (Neutral Card) ---
Unifi[Unifi Router]:::app
style Unifi fill:#37474f,stroke:#fff,stroke-width:2px,color:#fff
%% --- FIREBOLT (Neutral Card) ---
subgraph FireboltBox [Firebolt - Main Server]
direction TB
%% CARD COLOR: Dark Charcoal (Hard Coded)
style FireboltBox fill:#37474f,stroke:#fff,stroke-width:2px,color:#fff
F_Traefik[Traefik Internal]:::app
F_WG[WireGuard Interface]:::app
%% Layout Container
subgraph F_Stacks [Apps & Services]
style F_Stacks fill:none,stroke:none,color:#fff
subgraph F_Infra [Infrastructure]
style F_Infra fill:#546e7a,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]
style F_Media fill:#546e7a,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]
style F_Admin fill:#546e7a,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]
style F_GameStack fill:#546e7a,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 (Neutral Card) ---
subgraph NorbertBox [Norbert - Storage]
direction TB
%% CARD COLOR: Dark Charcoal (Hard Coded)
style NorbertBox fill:#37474f,stroke:#fff,stroke-width:2px,color:#fff
N_WG[WireGuard]:::app
N_Store[Media Storage]:::app
subgraph N_Apps [App Stack]
style N_Apps fill:#546e7a,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]
style N_Games fill:#546e7a,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 (Neutral Card) ---
subgraph PiHoleBox [Raspberry Pi]
direction TB
%% CARD COLOR: Dark Charcoal (Hard Coded)
style PiHoleBox fill:#37474f,stroke:#fff,stroke-width:2px,color:#fff
PI_SVC[DNS Sinkhole]:::app
PI_VPN[PiVPN Ingress]:::app
end
end
%% ==========================================
%% 5. TRAFFIC WIRING
%% ==========================================
%% Internet Ingress (Green)
Internet ==>|HTTPS| P_Traefik
Internet ==>|Ports| D_Games
Internet ==>|Ports| Unifi
linkStyle 0,1,2 stroke:#00e676,stroke-width:3px;
%% Tunnel (Orange)
P_Traefik --> P_WG
P_WG ==>|WireGuard Tunnel| F_WG
linkStyle 3,4 stroke:#ff9100,stroke-width:4px;
%% 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;
%% Split Route (Orange)
P_WG -.->|Direct Route| N_WG
linkStyle 12 stroke:#ff9100,stroke-width:3px,stroke-dasharray: 5 5;
%% LAN Traffic (Blue)
N_WG -.-> N_Games
linkStyle 13 stroke:#2979ff,stroke-width:2px;
%% 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;
%% Management (Grey)
F_Portainer -.-> P_Agent & D_Agent
F_Down -.->|NFS| N_Store
F_Panel -.-> D_Wing & N_Wing & F_Wing
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).