homelab diagram
%%{init: {'theme': 'base', 'themeVariables': { 'darkMode': true, 'background': '#1e1e1e', 'mainBkg': '#1e1e1e', 'primaryColor': '#263238', 'primaryTextColor': '#fff', 'primaryBorderColor': '#fff', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff'}}}%%
flowchart LR
%% ==========================================
%% 1. GLOBAL STYLES
%% ==========================================
%% 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
style OracleCloud fill:#0d47a1,stroke:#fff,stroke-width:3px,color:#fff
%% --- PHOENIX ---
subgraph PhoenixBox [Phoenix - Gateway]
direction TB
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
P_Kuma[Uptime Kuma]:::app
end
end
%% --- DOBBY ---
subgraph DobbyBox [Dobby - Game Node]
direction TB
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
style HomeNet fill:#1b5e20,stroke:#fff,stroke-width:3px,color:#fff
%% --- UNIFI ---
Unifi[Unifi Router]:::app
style Unifi fill:#37474f,stroke:#fff,stroke-width:2px,color:#fff
%% --- FIREBOLT ---
subgraph FireboltBox [Firebolt - Main Server]
direction TB
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
F_DB[Panel DB & Redis]:::app
F_Ark[Ark Survival Evolved]:::app
end
end
end
%% --- NORBERT ---
subgraph NorbertBox [Norbert - Storage]
direction TB
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 ---
subgraph PiHoleBox [Raspberry Pi]
direction TB
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
%% ==========================================
%% 0, 1, 2: Internet Ingress
Internet ==>|HTTPS| P_Traefik
Internet ==>|MC Ports| D_Games
Internet ==>|32400 / 51820 / Games| Unifi
linkStyle 0,1,2 stroke:#00e676,stroke-width:3px;
%% 3, 4: Tunnel
P_Traefik --> P_WG
P_WG ==>|WireGuard Tunnel| F_WG
linkStyle 3,4 stroke:#ff9100,stroke-width:4px;
%% 5: LAN (Firebolt Internal)
F_WG --> F_Traefik
linkStyle 5 stroke:#2979ff,stroke-width:2px;
%% 6, 7, 8, 9: LAN (Traefik Distribution)
F_Traefik --> F_Infra & F_Media & F_Admin & F_GameStack
linkStyle 6,7,8,9 stroke:#2979ff,stroke-width:2px;
%% 10, 11: LAN (Traefik Remote)
F_Traefik -.-> N_Apps & PI_SVC
linkStyle 10,11 stroke:#2979ff,stroke-width:2px;
%% 12: Split Route
P_WG -.->|Direct Route| N_WG
linkStyle 12 stroke:#ff9100,stroke-width:3px,stroke-dasharray: 5 5;
%% 13: LAN (Norbert Internal)
N_WG -.-> N_Games
linkStyle 13 stroke:#2979ff,stroke-width:2px;
%% 14, 15, 16, 17: PORT FORWARDING
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;
%% 18+: Management
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