homelab diagram
%%{init: {'theme': 'dark', 'themeVariables': { 'lineColor': '#eceff1', 'textColor': '#eceff1', 'mainBkg': '#263238', 'nodeBorder': '#eceff1' }}}%%
flowchart TD
%% --- Styles ---
classDef cloud fill:#01579b,stroke:#4fc3f7,stroke-width:2px,color:#e1f5fe
classDef home fill:#1b5e20,stroke:#66bb6a,stroke-width:2px,color:#e8f5e9
classDef device fill:#37474f,stroke:#eceff1,stroke-width:2px,rx:5,ry:5,color:#ffffff
classDef service fill:#263238,stroke:#90a4ae,stroke-width:1px,stroke-dasharray: 5 5,color:#b0bec5
%% --- External World ---
Internet((Internet))
style Internet fill:#ffffff,stroke:#333,color:#000
%% --- Oracle Cloud ---
subgraph OracleCloud [Oracle Cloud - Free Tier]
direction TB
subgraph PhoenixBox [Phoenix - Intel VM]
class PhoenixBox device
Phoenix(Phoenix<br/>Ubuntu 24.04<br/>10.0.0.93)
style Phoenix fill:#37474f,stroke:none
subgraph PhoenixSvcs [Services]
P_Traefik[Traefik Proxy<br/>'The Front Door']
P_WG[WG Interface<br/>10.8.0.1]
subgraph PhoenixApps [Local Apps]
P_Kuma[Uptime Kuma]
P_Dash[Traefik Dashboard]
end
end
end
subgraph DobbyBox [Dobby - ARM VM]
class DobbyBox device
Dobby(Dobby<br/>GameNode2<br/>10.0.0.100)
style Dobby fill:#37474f,stroke:none
subgraph DobbySvcs [Services]
D_Wing[Pterodactyl Wing]
D_MC[Minecraft Cluster<br/>PO3 / ATM10 / Bedrock]
end
end
end
%% --- Home Network ---
subgraph HomeNet [Home Network - Deltona<br/>192.168.120.0/22]
direction TB
Unifi[Unifi Router<br/>Gateway]
class Unifi device
subgraph FireboltBox [Firebolt - Ubuntu Server]
class FireboltBox device
Firebolt(Firebolt<br/>GameNode3<br/>192.168.123.4)
style Firebolt fill:#37474f,stroke:none
subgraph FireboltSvcs [Services]
F_Traefik[Traefik<br/>Internal Router]
F_Auth[Authentik]
F_WG[WG Interface<br/>10.8.0.5]
subgraph FireboltApps [Apps]
F_Media[Plex / Arrs / Overseerr]
F_Games[Ark Survival / Enshrouded]
F_Duplicati[Duplicati]
end
end
end
subgraph NorbertBox [Norbert - Unraid 7.x]
class NorbertBox device
Norbert(Norbert<br/>GameNode1<br/>192.168.123.3)
style Norbert fill:#37474f,stroke:none
subgraph NorbertSvcs [Services]
N_Storage[Media Storage]
N_WG[WG Interface<br/>10.8.0.2]
subgraph NorbertApps [Apps]
N_ArkBot[Ark Discord Bot]
N_MCTest[Minecraft Test]
N_Hass[Home Assistant VM]
end
end
end
end
%% --- WEB TRAFFIC FLOW (The Split) ---
Internet == HTTPS ==> P_Traefik
%% Path 1: Local
P_Traefik --> P_Kuma & P_Dash
%% Path 2: TCP Passthrough (Firebolt)
P_Traefik --> P_WG
P_WG ==>|Tunnel<br/>TCP Pass (SNI)| F_WG
F_WG --> F_Traefik
F_Traefik --> F_Auth & F_Media & F_Duplicati
%% Path 3: HTTP Proxy (Norbert)
P_WG -.->|Tunnel<br/>HTTP Proxy| N_WG
N_WG -.-> N_ArkBot
%% --- GAME TRAFFIC FLOW ---
Internet -- MC Ports --> D_MC
Internet -- Game Ports --> Unifi
Unifi -- Port Fwd --> F_Games
Unifi -- Port Fwd --> N_MCTest
%% --- Internal Management ---
FireboltApps -.->|NFS/SMB| N_Storage
%% Styles
class OracleCloud cloud
class HomeNet home
class P_Traefik,F_Traefik,P_WG,F_WG,N_WG service