Skip to main content

homelab diagram

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#263238', 'primaryTextColor': '#fff', 'primaryBorderColor': '#78909c', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff', 'mainBkg': '#263238'}}}%%
flowchart TD
    %% --- Color Definitions (High Contrast) ---
    classDef cloud fill:#0d47a1,stroke:#64b5f6,stroke-width:2px,color:#fff
    classDef home fill:#1b5e20,stroke:#81c784,stroke-width:2px,color:#fff
    classDef device fill:#37474f,stroke:#eceff1,stroke-width:2px,rx:5,ry:5,color:#fff
    classDef stack fill:#212121,stroke:#607d8b,stroke-width:1px,stroke-dasharray: 5 5,color:#eceff1==========================================
    %% ---1. InternetHARDCODED EntrySTYLING ---(The Internet((Internet))
    style Internet fill:#fff,stroke:#333,color:#000Fix)
    %% ==========================================
    %% 1.Cloud: Deep Blue background, Bright Blue Border, White Text
    classDef cloud fill:#0d47a1,stroke:#64b5f6,stroke-width:3px,color:#fff
    
    %% Home: Deep Green background, Bright Green Border, White Text
    classDef home fill:#1b5e20,stroke:#66bb6a,stroke-width:3px,color:#fff
    
    %% Device: Dark Grey, White Border, White Text
    classDef device fill:#37474f,stroke:#ffffff,stroke-width:2px,color:#fff
    
    %% Stack: Black/Grey background, Dashed Border, White Text
    classDef stack fill:#212121,stroke:#90a4ae,stroke-width:1px,stroke-dasharray: 5 5,color:#eceff1

    %% ==========================================
    %% 2. TOP LAYER: ORACLE CLOUD (TOP FLOOR)
    %% ==========================================
    subgraph OracleCloud [Oracle Cloud - Free Tier]
        direction TB
        
        %% Phoenix and Dobby Side-by-Side (Small enough to fit)Box
        subgraph PhoenixBox [Phoenix - Intel VM]
            class PhoenixBox device
            direction TB
            P_Traefik[Traefik Proxy]
            
            subgraph PhoenixInfra [Infrastructure]
                class PhoenixInfra stack
                direction TB
                P_WG[WG Interface 10.8.0.1]Interface]
                P_Fail2Ban[Fail2Ban]
                P_Watchtower[Watchtower]
                P_Agent[Portainer Agent]
            end
            
            subgraph PhoenixApps [Local Apps]
               class PhoenixApps stack
               direction TB
               P_Kuma[Uptime Kuma]
               P_Dash[Traefik Dashboard]
            end
        end

        %% Dobby Box
        subgraph DobbyBox [Dobby - ARM VM]
            class DobbyBox device
            direction TB
            
            subgraph DobbySvcs [Services]
                class DobbySvcs stack
                direction TB
                D_Wing[Pterodactyl Wing]
                D_Agent[Portainer Agent]
                D_MC[Minecraft Cluster]
            end
        end
    end

    %% ==========================================
    %% 2.3. BOTTOM LAYER: HOME NETWORK (LOWER FLOORS)
    %% ==========================================
    subgraph HomeNet [Home Network - Deltona]
        direction TB
        Unifi[Unifi Router]
        class Unifi device

        %% --- Floor 1: Firebolt (TheForced MainVertical Server)Column) ---
        subgraph FireboltBox [Firebolt - Ubuntu Server]
            class FireboltBox device
            direction TB
            
            F_Traefik[Traefik Internal]
            F_WG[WG InterfaceInterface]

            10.8.0.5]%% This "Master Stack" box forces everything inside to be a vertical column
            subgraph FireboltColumn [ ]
                direction TB
                style FireboltColumn fill:none,stroke:none

                subgraph FireboltInfra [Infrastructure]
                   class FireboltInfra stack
                   direction TB
                   F_Auth[Authentik IDP]
                   F_MySQL[MySQL DB]
                   F_Homepage[Homepage]
                   F_Portainer[Portainer Server]
                   F_Autoheal[Autoheal]
                end

                subgraph FireboltAdmin [Admin Tools]
                   class FireboltAdmin stack
                   direction TB
                   F_Bitwarden[Vaultwarden]
                   F_Bookstack[BookStack Wiki]
                   F_Duplicati[Duplicati]
                   F_FileBrowser[FileBrowser]
                   F_PMA[phpMyAdmin]
                end

                subgraph FireboltMedia [Media Stack]
                   class FireboltMedia stack
                   direction TB
                   F_Plex[Plex Media Server]
                   F_Overseerr[Overseerr]
                   F_Sonarr[Sonarr]
                   F_Radarr[Radarr]
                   F_Prowlarr[Prowlarr]
                   F_Tautulli[Tautulli]
                   F_Unpackerr[Unpackerr]
                   F_Qbit[qBittorrent - VPN]
                   F_Flaresolverr[FlareSolverr]
                   F_Doplarr[Doplarr]
                end

                subgraph FireboltGames [Games Stack]
                   class FireboltGames stack
                   direction TB
                   F_PteroPanel[Pterodactyl Panel]
                   F_PteroWing[Pterodactyl Wing]
                   F_PteroDB[Panel DB & Redis]
                end
            end
        end

        %% --- Floor 2: Norbert (Storage & Aux) ---
        subgraph NorbertBox [Norbert - Unraid]
            class NorbertBox device
            direction TB
            
            N_WG[WG Interface 10.8.0.2]Interface]
            
            subgraph NorbertInfra [Infra & Apps]
                class NorbertInfra stack
                direction TB
                N_Agent[Portainer Agent]
                N_Hass[Home Assistant VM]
                N_LLM[LLMCord AI]
            end

            subgraph NorbertGames [Game Node]
                class NorbertGames stack
                direction TB
                N_Wing[Pterodactyl Wing]
                N_ArkBot[Ark Discord Bot]
                N_MCTest[Minecraft Test]
            end
            
            N_Storage[Media Storage]
        end

        %% --- Floor 3: PiHole (Utility) ---
        subgraph PiHoleBox [Raspberry Pi]
            class PiHoleBox device
            direction TB
            PI_SVC[DNS Sinkhole]
            PI_VPN[PiVPN Ingress]
        end
    end

    %% ==========================================
    %% ALIGNMENT4. INVISIBLE LINKS (THEForce MAGIC STACKING)Alignment)
    %% ==========================================
    %% 1. Force Oracle ABOVEon TOP of Home
    OracleCloud ~~~ HomeNet
    
    %% 2. Force Firebolt ABOVEon TOP of Norbert ABOVEon TOP of PiHole
    FireboltBox ~~~ NorbertBox ~~~ PiHoleBox
    
    %% 3.Stacks inside Firebolt (Force Internal StacksOrder)
    FireboltInfra ~~~ FireboltAdmin ~~~ FireboltMedia ~~~ FireboltGames

    %% ==========================================
    %% 5. VISIBLE CONNECTIONS
    %% ==========================================
    
    %% Internet to CloudEntry
    Internet == HTTPS ==> P_Traefik
    Internet -- Ports --> DobbySvcs
    Internet -- Ports --> Unifi
    
    %% Cloud to Home (Tunnel)Tunnel
    P_Traefik --> P_WG
    P_WG ==>|Tunnel| F_WG
    F_WG --> F_Traefik
    
    %% Internal Routing (SimplifiedArrows forto cleanStacks lines)to keep diagram clean)
    F_Traefik --> FireboltInfra & FireboltAdmin & FireboltMedia & FireboltGames
    F_Traefik -.->|LAN Proxy| N_Hass & PI_SVC
    
    %% Split Routing
    (GameNode1)
    P_WG -.->|Direct| N_WG
    N_WG -.-> NorbertGames

    %% GamePort Ports
    Internet -- Ports --> DobbySvcs
    Internet -- Ports --> UnifiForwarding
    Unifi -- Port Fwd --> FireboltGames
    Unifi -- Port Fwd --> NorbertGames
    Unifi -- Port Fwd --> PI_VPN

    %% Management
    Links
    F_Portainer -.->|Manage| P_Agent & D_Agent & N_Agent
    FireboltMedia -.->|NFS| N_Storage

    %% StylesAPPLY CLASSES
    class OracleCloud cloud
    class HomeNet home