Skip to main content

homelab diagram

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#37474f', 'primaryTextColor': '#fff', 'primaryBorderColor': '#fff', 'lineColor': '#b0bec5', 'tertiaryColor': '#fff', 'mainBkg': '#263238'}}}%%
flowchart TD
    %% ==========================================
    %% 1. ROBUST STYLING
    %% ==========================================
    classDef cloud fill:#0d47a1,stroke:#fff,stroke-width:2px,color:#fff
    classDef home fill:#1b5e20,stroke:#fff,stroke-width:2px,color:#fff
    classDef server fill:#37474f,stroke:#90a4ae,stroke-width:2px,color:#fff
    classDef stack fill:#263238,stroke:#b0bec5,stroke-width:1px,stroke-dasharray: 5 5,color:#eceff1

    %% ==========================================
    %% 2. TOP LAYER: CLOUD
    %% ==========================================
    subgraph OracleCloud [Oracle Cloud]
        direction TB
        
        %% Phoenix
        subgraph PhoenixBox [Phoenix VM]
            class PhoenixBox server
            P_Traefik[Traefik Proxy]
            
            P_Stack[<b>Infrastructure</b><br/>WireGuard Interface<br/>Fail2Ban<br/>Watchtower<br/>Portainer Agent<br/>----<br/><b>Apps</b><br/>Uptime Kuma<br/>Traefik Dashboard]
            class P_Stack stack
        end

        %% Dobby
        subgraph DobbyBox [Dobby VM]
            class DobbyBox server
            D_Stack[<b>Game Node 2</b><br/>Pterodactyl Wing<br/>Portainer Agent<br/>----<br/><b>Minecraft Cluster</b><br/>PO3 / ATM10 / Bedrock]
            class D_Stack stack
        end
    end

    %% ==========================================
    %% 3. BOTTOM LAYER: HOME
    %% ==========================================
    subgraph HomeNet [Home Network]
        direction TB
        Unifi[Unifi Router]
        class Unifi server

        %% FIREBOLT (The Heavy Lifter - Now a Vertical List)
        subgraph FireboltBox [Firebolt Server]
            class FireboltBox server
            
            F_Net[Traefik Internal / WireGuard]
            
            F_Infra[<b>Infrastructure</b><br/>Authentik IDP<br/>MySQL DB<br/>Homepage<br/>Portainer Server<br/>Autoheal]
            class F_Infra stack
            
            F_Admin[<b>Admin Tools</b><br/>Vaultwarden<br/>BookStack Wiki<br/>Duplicati<br/>FileBrowser<br/>phpMyAdmin]
            class F_Admin stack
            
            F_Media[<b>Media Stack</b><br/>Plex Media Server<br/>Overseerr / Tautulli<br/>Sonarr / Radarr / Prowlarr<br/>qBittorrent / Unpackerr / Flare<br/>Doplarr]
            class F_Media stack
            
            F_Games[<b>Game Stack</b><br/>Pterodactyl Panel<br/>Pterodactyl Wing<br/>Panel DB & Redis]
            class F_Games stack
        end

        %% NORBERT
        subgraph NorbertBox [Norbert Unraid]
            class NorbertBox server
            N_Net[WireGuard Interface]
            
            N_Stack[<b>Apps & Infra</b><br/>Home Assistant VM<br/>LLMCord AI<br/>Portainer Agent<br/>----<br/><b>Game Node 1</b><br/>Pterodactyl Wing<br/>Ark Discord Bot<br/>Minecraft Test]
            class N_Stack stack
            
            N_Storage[Media Storage]
        end

        %% PIHOLE
        subgraph PiHoleBox [Raspberry Pi]
            class PiHoleBox server
            PI_Stack[<b>Services</b><br/>DNS Sinkhole<br/>PiVPN Ingress]
            class PI_Stack stack
        end
    end

    %% ==========================================
    %% 4. ALIGNMENT & LINKS
    %% ==========================================
    
    %% Force Vertical Order
    OracleCloud ~~~ HomeNet
    FireboltBox ~~~ NorbertBox ~~~ PiHoleBox
    
    %% Force Firebolt Internal Order
    F_Net --> F_Infra --> F_Admin --> F_Media --> F_Games

    %% Traffic
    Internet((Internet)) == HTTPS ==> P_Traefik
    style Internet fill:#fff,stroke:#333,color:#000

    P_Traefik --> P_Stack
    P_Traefik ==>|Tunnel| F_Net
    
    F_Net --> F_Infra & F_Admin & F_Media & F_Games
    F_Net -.-> N_Stack & PI_Stack
    
    %% Split Route
    P_Stack -.-> N_Net
    N_Net -.-> N_Stack

    %% Ports
    Internet -- Ports --> D_Stack
    Internet -- Ports --> Unifi
    Unifi -- Port Fwd --> F_Games
    Unifi -- Port Fwd --> N_Stack
    Unifi -- Port Fwd --> PI_Stack

    %% Management
    F_Infra -.->|Manage| P_Stack & D_Stack & N_Stack
    F_Media -.->|NFS| N_Storage

    %% APPLY CLASS
    class OracleCloud cloud
    class HomeNet home