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 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]
                P_Kuma[Uptime Kuma]
            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 ---
    Internet == HTTPS ==> P_Traefik
    P_Traefik --> P_WG
    P_WG ==>|Encr. Tunnel<br/>10.8.0.x| F_WG
    F_WG --> F_Traefik
    F_Traefik --> F_Auth & F_Media & F_Duplicati

    %% --- GAME TRAFFIC FLOW ---
    %% Cloud Games (Direct)
    Internet -- MC Ports --> D_MC
    
    %% Home Games (Port Forwarding)
    Internet -- Game Ports --> Unifi
    Unifi -- Port Fwd --> F_Games
    Unifi -- Port Fwd --> N_MCTest

    %% --- Internal Management ---
    P_WG -.->|Tunnel| N_WG
    FireboltApps -.->|NFS/SMB| N_Storage

    %% Styles
    class OracleCloud cloud
    class HomeNet home
    class P_Traefik,F_Traefik,P_WG,F_WG,N_WG service