homelab diagram
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#cfd8dc', 'primaryTextColor': '#eceff1', 'primaryBorderColor': '#cfd8dc', 'lineColor': '#b0bec5', 'tertiaryColor': 'transparent', 'edgeLabelBackground': 'transparent', 'mainBkg': '#121212'}}}%%
flowchart LR
%% ==========================================
%% 1. DEFINITIONS & CLASSES
%% ==========================================
%% App Nodes (Dark Boxes)
classDef app fill:#263238,stroke:#546e7a,stroke-width:2px,color:#eceff1,rx:5,ry:5
%% The "Internet" Circle
classDef internet fill:#fff,stroke:#333,color:#000,stroke-width:2px
linkStyle default stroke:#607d8b,stroke-width:1px,fill:none;
%% ==========================================
%% 2. THE CANVAS
%% ==========================================
subgraph DarkCanvas [ ]
direction LR
style DarkCanvas fill:#121212,stroke:#121212,color:#121212
%% --- SOURCE ---
Internet((Internet)):::internet
%% ==========================================
%% 3. BLUE ZONE: ORACLE CLOUD
%% ==========================================
subgraph OracleCloud [Oracle Cloud - Free Tier]
direction TB
%% Blue Fill with Bright Blue Border
style OracleCloud fill:#0d47a1,stroke:#448aff,stroke-width:4px,color:#fff,rx:10,ry:10
%% --- SERVER: PHOENIX ---
subgraph PhoenixBox [Phoenix - Gateway]
direction TB
%% Charcoal Box
style PhoenixBox fill:#212121,stroke:#607d8b,stroke-width:2px,color:#fff,rx:5,ry:5
P_Traefik[Traefik Proxy]:::app
P_WG[WireGuard Interface]:::app
%% Grey Box: Stack
subgraph P_Infra [Infrastructure]
style P_Infra fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
P_Fail2Ban[Fail2Ban]:::app
P_Agent[Portainer Agent]:::app
P_Kuma[Uptime Kuma]:::app
end
end
%% --- SERVER: DOBBY ---
subgraph DobbyBox [Dobby - Game Node]
direction TB
style DobbyBox fill:#212121,stroke:#607d8b,stroke-width:2px,color:#fff,rx:5,ry:5
%% Grey Box: Stack
subgraph D_Games [Game Stack]
style D_Games fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
D_Wing[Pterodactyl Wing]:::app
D_MC[Minecraft Cluster]:::app
end
D_Agent[Portainer Agent]:::app
end
end
%% ==========================================
%% 4. GREEN ZONE: HOME NETWORK
%% ==========================================
subgraph HomeNet [Home Network - Deltona]
direction TB
%% Green Fill with Bright Green Border
style HomeNet fill:#1b5e20,stroke:#00e676,stroke-width:4px,color:#fff,rx:10,ry:10
Unifi[Unifi Router]:::app
style Unifi fill:#000,stroke:#00e676,stroke-width:2px,color:#fff
%% --- SERVER: FIREBOLT ---
subgraph FireboltBox [Firebolt - Main Server]
direction TB
style FireboltBox fill:#212121,stroke:#607d8b,stroke-width:2px,color:#fff,rx:5,ry:5
F_Traefik[Traefik Internal]:::app
F_WG[WireGuard Interface]:::app
subgraph F_Stacks [Apps & Services]
style F_Stacks fill:none,stroke:none,color:#fff
%% Grey Box: Stack
subgraph F_Infra [Infrastructure]
style F_Infra fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
F_Auth[Authentik]:::app
F_Portainer[Portainer]:::app
F_Homepage[Homepage]:::app
F_Tug[Tugtainer]:::app
F_Dozzle[Dozzle]:::app
end
%% Grey Box: Stack
subgraph F_Media [Media Stack]
style F_Media fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
F_Plex[Plex Media Server]:::app
F_Req[Overseerr / Tautulli]:::app
F_Arr[Sonarr / Radarr / Prowlarr<br/>Huntarr / Doplarr]:::app
F_Down[qBit / Unpackerr / Flare]:::app
end
%% Grey Box: Stack
subgraph F_Admin [Admin Tools]
style F_Admin fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
F_Bit[Vaultwarden]:::app
F_Book[BookStack]:::app
F_Dup[Duplicati]:::app
F_File[FileBrowser]:::app
F_PMA[PhpMyAdmin]:::app
end
%% Grey Box: Stack
subgraph F_GameStack [Game Stack]
style F_GameStack fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
F_Panel[Ptero Panel]:::app
F_Wing[Ptero Wing]:::app
F_DB[Panel DB & Redis]:::app
F_Ark[Ark Survival Evolved]:::app
end
end
end
%% --- SERVER: NORBERT ---
subgraph NorbertBox [Norbert - Storage]
direction TB
style NorbertBox fill:#212121,stroke:#607d8b,stroke-width:2px,color:#fff,rx:5,ry:5
N_WG[WireGuard]:::app
N_Store[Media Storage]:::app
%% Grey Box: Stack
subgraph N_Apps [App Stack]
style N_Apps fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
N_Hass[Home Assistant]:::app
N_LLM[LLMCord AI]:::app
end
%% Grey Box: Stack
subgraph N_Games [Game Node 1]
style N_Games fill:#424242,stroke:#757575,stroke-width:1px,stroke-dasharray: 5 5,color:#eee,rx:5,ry:5
N_Wing[Ptero Wing]:::app
N_MC[MC Test]:::app
end
end
%% --- HARDWARE: RASPBERRY PI ---
subgraph PiHoleBox [Raspberry Pi]
direction TB
style PiHoleBox fill:#212121,stroke:#607d8b,stroke-width:2px,color:#fff,rx:5,ry:5
PI_SVC[DNS Sinkhole]:::app
PI_VPN[PiVPN Ingress]:::app
end
end
end
%% ==========================================
%% 5. TRAFFIC WIRING
%% ==========================================
%% Internet Ingress (GREEN - PUBLIC)
Internet ==>|HTTPS| P_Traefik
Internet ==>|MC Ports| D_Games
Internet ==>|32400 / 51820 / Games| Unifi
linkStyle 0,1,2 stroke:#00e676,stroke-width:3px;
%% Tunnel (ORANGE - WIREGUARD)
P_Traefik --> P_WG
P_WG ==>|WireGuard Tunnel| F_WG
linkStyle 3,4 stroke:#ff9100,stroke-width:4px;
%% LAN (BLUE - INTERNAL)
F_WG --> F_Traefik
linkStyle 5 stroke:#2979ff,stroke-width:2px;
%% LAN Distribution (BLUE)
F_Traefik --> F_Infra & F_Media & F_Admin & F_GameStack
linkStyle 6,7,8,9 stroke:#2979ff,stroke-width:2px;
%% LAN Remote (BLUE)
F_Traefik -.-> N_Apps & PI_SVC
linkStyle 10,11 stroke:#2979ff,stroke-width:2px;
%% Split Route (ORANGE - TUNNEL)
P_WG -.->|Direct Route| N_WG
linkStyle 12 stroke:#ff9100,stroke-width:3px,stroke-dasharray: 5 5;
%% LAN Internal (BLUE)
N_WG -.-> N_Games
linkStyle 13 stroke:#2979ff,stroke-width:2px;
%% PORT FORWARDING (GREEN DASHED - PUBLIC MAPPED)
Unifi -.->|32400| F_Plex
Unifi -.->|Game Ports| F_GameStack
Unifi -.->|Game Ports| N_Games
Unifi -.->|UDP 51820| PI_VPN
linkStyle 14,15,16,17 stroke:#00e676,stroke-width:2px,stroke-dasharray: 5 5;
%% Management (GREY/NEUTRAL)
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 (HTTPS, 32400, Game Ports)
- ■ Orange Lines: WireGuard Tunnel Traffic
- ■ Blue Lines: Internal LAN Traffic
- ■ Blue Zone: Oracle Cloud Infrastructure
- ■ Green Zone: Home Network Infrastructure
- ■ Charcoal Boxes: Servers & Hardware (Phoenix, Firebolt, etc.)
- ■ Grey Boxes: Logical Stacks (Media, Infra, Admin)
- ■ Dark Boxes: Individual Applications
No comments to display
No comments to display