Skip to main content

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 servicestack fill:#263238,stroke:#90a4ae,#546e7a,stroke-width:1px,stroke-dasharray: 5 5,color:#b0bec5

    %% --- External World ---
    Internet((Internet))
    style Internet fill:#ffffff,stroke:#333,color:#000

    %% ---==========================================
    Oracle%% CloudORACLE ---CLOUD (Top Layer)
    %% ==========================================
    subgraph OracleCloud [Oracle Cloud - Free Tier]
        direction TB
        
        %% --- Phoenix ---
        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]
                direction TB
            
            subgraph PhoenixInfra [Infrastructure]
                directionclass TBPhoenixInfra stack
                P_Traefik[Traefik Proxy<br/>'The Front Door']Proxy]
                P_WG[WG Interface<br/> 10.8.0.1]
                P_Fail2Ban[Fail2Ban<br/>Net: Host]Fail2Ban]
                P_Watchtower[Watchtower]
                P_Agent[Portainer Agent]
            end
            
            subgraph PhoenixApps [Local Apps]
               directionclass TBPhoenixApps stack
               P_Kuma[Uptime Kuma]
               P_Dash[Traefik Dashboard]
            end
        end

        end%% --- Dobby ---
        subgraph DobbyBox [Dobby - ARM VM]
            class DobbyBox device
            Dobby(Dobby<br/>GameNode2<br/>10.0.0.100)direction style Dobby fill:#37474f,stroke:noneTB
            
            subgraph DobbySvcs [Services]
                directionclass TBDobbySvcs stack
                D_Wing[Pterodactyl Wing]
                D_Agent[Portainer Agent]
                D_MC[Minecraft Cluster<br/>PO3 / ATM10 / Bedrock]Cluster]
            end
        end
    end

    %% ---==========================================
    Home%% NetworkHOME ---NETWORK (Bottom Layer)
    %% ==========================================
    subgraph HomeNet [Home Network - Deltona<br/>192.168.120.0/22]Deltona]
        direction TB
        Unifi[Unifi Router<br/>Gateway]Router]
        class Unifi device

        %% --- Firebolt (The Heavy Lifter) ---
        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]
                direction TB
            
            F_Traefik[Traefik<br/>Internal Router]Internal]
            F_WG[WG Interface<br/> 10.8.0.5]

            %% Stack:Note: InfrastructureI removed the intermediate 'Services' box to save space
            
            subgraph FireboltInfra [Infrastructure]
               class FireboltInfra stack
               direction TB
               F_Auth[Authentik IDP]
               F_MySQL[MySQL DB]
               F_Homepage[Homepage Dashboard]
                   F_Watchtower[Watchtower]
                   F_Autoheal[Autoheal]Homepage]
               F_Portainer[Portainer Server]
            end

                %% Stack: Admin Tools

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

                %% Stack: Media (Plex)

            subgraph FireboltMedia [Media Stack]
               class FireboltMedia stack
               direction TB
               %% Grouping slightly to save vertical space
               F_Plex[Plex Media Server]
               F_Sonarr[Sonarr]F_Arr[Sonarr F_Radarr[Radarr]/ F_Prowlarr[Radarr / Prowlarr]
               F_Overseerr[Overseerr]
               F_Tautulli[Tautulli]
               F_Unpackerr[Unpackerr]F_Download[qBit F_Qbit[qBittorrent/ -Unpackerr VPN]/ F_Flaresolverr[FlareSolverr]
                   F_Doplarr[Doplarr]Flare]
            end

                %% Stack: Games

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

        end%% --- Norbert ---
        subgraph NorbertBox [Norbert - Unraid 7.x]Unraid]
            class NorbertBox device
            Norbert(Norbert<br/>GameNode1<br/>192.168.123.3)
            style Norbert fill:#37474f,stroke:none
            
            subgraph NorbertSvcs [Services]
                direction TB
                N_Storage[Media Storage]
            
            N_WG[WG Interface<br/> 10.8.0.2]
            
            subgraph NorbertInfra [Infrastructure]Infra direction& TBApps]
                class NorbertInfra stack
                N_Agent[Portainer Agent]
                    N_LLM[LLMCord AI Bot]
                N_Hass[Home Assistant VM]
                N_LLM[LLMCord AI]
            end

            subgraph NorbertGames [PterodactylGame Node]
                directionclass TBNorbertGames stack
                N_Wing[Pterodactyl Wing]
                N_ArkBot[Ark Discord Bot]
                N_MCTest[Minecraft Test]
            end
            
            N_Storage[Media Storage]
        end

        end%% --- PiHole ---
        subgraph PiHoleBox [Raspberry Pi]
            class PiHoleBox device
            PiHole(PiHole<br/>192.168.123.107)direction style PiHole fill:#37474f,stroke:none
            
            subgraph PiApps [Services]TB
            PI_SVC[DNS Sinkhole]
            PI_VPN[PiVPN Ingress]
        end
    end

    end%% ==========================================
    %% ---ALIGNMENT FORCE& VERTICALCONNECTIONS
    STACKING%% ---==========================================
    
    %% Force Firebolt Vertical Stack (Crucial for width control)
    F_Traefik ~~~ FireboltInfra ~~~ FireboltAdmin ~~~ FireboltMedia ~~~ FireboltGames
    
    PhoenixInfra ~~~ PhoenixApps
    NorbertInfra ~~~ NorbertGames

    %% ---Traffic WEB TRAFFIC FLOW ---Flows
    Internet == HTTPS ==> P_Traefik
    
    %% Path 1: Local
    P_Traefik --> P_Kuma & P_Dash
    P_Traefik -.->|Log Read| P_Fail2Ban

    %% Path 2: TCP Passthrough (The Main Pipe)Tunnel
    P_Traefik --> P_WG
    P_WG ==>|Tunnel<br/>TCP Pass - SNI|Tunnel| F_WG
    F_WG --> F_Traefik
    
    %% Path 3: Firebolt Internal Routing (LANSimplified Proxy)arrows to groups instead of individual apps to reduce clutter)
    F_Traefik --> F_AuthFireboltInfra & F_HomepageFireboltAdmin & F_Portainer
    F_Traefik --> F_BitwardenFireboltMedia & F_Bookstack & F_Duplicati & F_FileBrowser & F_PMA
    F_Traefik --> F_Plex & F_Sonarr & F_Radarr & F_Prowlarr & F_Overseerr & F_Tautulli & F_Qbit
    F_Traefik --> F_PteroPanel & F_PteroWingFireboltGames
    F_Traefik -.->|LAN Proxy| N_Hass F_Traefik -.->|LAN Proxy|& PI_SVC
    
    %% Path 4: Phoenix DirectSplit Routing (GameNode1 Exclusive)
    P_WG -.->|Tunnel<br/>Direct HTTP|Direct| N_WG
    N_WG -.-> N_WingNorbertGames

    %% ---Game MANAGEMENT & GAME FLOW ---Ports
    Internet -- MC Ports --> D_MCDobbySvcs
    Internet -- Game Ports --> Unifi
    Unifi -- Port Fwd --> F_PteroWingFireboltGames
    Unifi -- Port Fwd --> N_MCTestNorbertGames
    Unifi -- Port Fwd --> PI_VPN

    %% Internal Management
    FireboltMedia -.->|NFS/SMB| N_Storage
    F_PteroPanel -.->|API Control| F_PteroWing & N_Wing & D_Wing
    
    %% Portainer Management Fleet
    F_Portainer -.->|Manage| P_Agent & D_Agent & N_Agent
    %%FireboltMedia Styles-.->|NFS| class OracleCloud cloud
    class HomeNet home
    class P_Traefik,F_Traefik,P_WG,F_WG,N_WG serviceN_Storage