Files
ceds-homelab/README.md
T

11 KiB

Ced's HomeLab — Live Infrastructure & Observability Platform

A production-style homelab running real infrastructure, real workloads, and a live NOC dashboard — built by a Digital Systems Engineer at GE Aerospace who needed a place to practice what he preaches.

Live NOC Portfolio Nodes VLANs


Why I Built This

I work on the Digital Team at GE Aerospace building data pipelines and dashboards for industrial systems.

But Ced's NOC didn't start there.

It started about five years ago with an old Dell tower I found in the trash, a few cheap upgrades, and way too much curiosity. I didn't even know what a homelab was. I just knew I wanted to see if I could make it do something useful. That server became BigWorld — the primary node that still anchors this cluster today.

What started as a media server and a couple of small VMs went down a rabbit hole and never came back. Five years later it's a 6-node Proxmox cluster, a 12-node Raspberry Pi K3s cluster, a VLAN-segmented network, and a full observability stack running 24/7.

What my work at GE did was change why I build the way I do now. When you're working with industrial systems where downtime has real consequences, you stop treating monitoring as optional. You build it first.

The homelab reflects that. If I can't see it, I don't trust it.


Architecture Overview

graph TB
    subgraph Internet
        CF[Cloudflare Edge]
    end

    subgraph Access["Access Layer"]
        TUNNEL[Cloudflare Tunnel]
        NPM[Nginx Proxy Manager]
    end

    subgraph Network["Network — UniFi UDR"]
        MAIN[Main VLAN 10.10.10.0/24]
        IOT[IoT VLAN 10.10.20.0/24]
        LAB[HomeLab VLAN 10.10.30.0/24]
        GUEST[Guest VLAN 10.10.99.0/24]
    end

    subgraph Desktop["Primary Workstation"]
        PS[PrimeStation]
    end

    subgraph Proxmox["Compute — Proxmox Cluster (6 Nodes)"]
        BW[BigWorld — Primary]
        BG[Biggie]
        SN[Snoop]
        TS[TooShort]
        TP[Tupac]
        DD[DrDre]
    end

    subgraph K3s["Orchestration — K3s Cluster (12 Nodes)"]
        subgraph CP["Control Plane"]
            CP1[k3s-django-1]
            CP2[k3s-django-2]
            CP3[k3s-django-3]
        end
        subgraph INGRESS["Workers — Ingress"]
            W1[k3s-node-1]
            W2[k3s-node-2]
            W3[k3s-node-3]
        end
        subgraph DATA["Workers — Data"]
            W4[k3s-node-4]
            W5[k3s-node-5]
            W6[k3s-node-6]
        end
        subgraph MON["Workers — Monitoring"]
            W7[k3s-node-7]
            W8[k3s-node-8]
            W9[k3s-node-9]
        end
    end

    subgraph Storage["Storage — TrueNAS"]
        TN[TrueNAS]
    end

    subgraph NOC["Observability — Ced's NOC"]
        PROM[Prometheus]
        GRAF[Grafana]
        KUMA[Uptime Kuma]
        DASHY[Dashy]
    end

    subgraph Home["Home Automation"]
        HA[Home Assistant]
    end

    CF --> TUNNEL --> NPM
    NPM --> LAB
    LAB --> BW
    BW --- BG & SN & TS & TP & DD
    BW --> TN
    TN -->|NFS| BW
    CP1 --- CP2 & CP3
    CP1 --> W1 & W2 & W3
    CP1 --> W4 & W5 & W6
    CP1 --> W7 & W8 & W9
    W7 & W8 & W9 --> PROM
    PROM --> GRAF
    KUMA --> GRAF
    PS --> LAB
    HA --> IOT

Node Inventory

Proxmox Cluster — 6 Nodes

Node Role
BigWorld Primary Proxmox node — cluster anchor, original lab server
Biggie Compute node
Snoop Compute node
TooShort Compute node
Tupac Compute node
DrDre Compute node

K3s Cluster — 12 Nodes

Node Role
k3s-django-1 Control Plane
k3s-django-2 Control Plane
k3s-django-3 Control Plane
k3s-node-1 Worker — Ingress
k3s-node-2 Worker — Ingress
k3s-node-3 Worker — Ingress
k3s-node-4 Worker — Data
k3s-node-5 Worker — Data
k3s-node-6 Worker — Data
k3s-node-7 Worker — Monitoring
k3s-node-8 Worker — Monitoring
k3s-node-9 Worker — Monitoring

Services

Service Role
TrueNAS ZFS storage — NFS for Proxmox, SMB for media
Prometheus Metrics collection and storage
Grafana Dashboards and visualization
Uptime Kuma Service-level uptime monitoring and alerting
Nginx Proxy Manager Reverse proxy for all internal services
Dashy Internal service dashboard
Home Assistant IoT automation — isolated on IoT VLAN
PrimeStation Primary workstation — HomeLab VLAN

Infrastructure Layers

Infrastructure Layer — Proxmox Cluster

Six-node Proxmox VE cluster anchored by BigWorld — the original server that started this whole lab. TrueNAS provides centralized ZFS storage with NFS exports for VM disk images and SMB shares for media workloads.

📁 Configs: proxmox/ · truenas/ · home-assistant/


Orchestration Layer — K3s on Raspberry Pi

A 12-node K3s cluster running on Raspberry Pi hardware with workers segmented by role — mirroring real Kubernetes production patterns at lab scale. Three dedicated control plane nodes ensure high availability. Worker groups are purpose-built for ingress routing, data workloads, and monitoring collection.

📌 Full cluster documentation: ced-k3s-homelab →


Network & VLAN Architecture

All traffic runs through a UniFi Dream Router with hard VLAN segmentation. The HomeLab VLAN is fully isolated from daily-use devices — the same network segmentation principle I apply to industrial OT/IT environments at work.

VLAN Subnet Purpose
Main 10.10.10.0/24 Daily-use devices, workstations
IoT 10.10.20.0/24 Smart home devices, consoles, TVs
HomeLab 10.10.30.0/24 All servers, K3s nodes, storage, services
Guest 10.10.99.0/24 Guest Wi-Fi — no internal access

Traffic flow for external access:

Internet → Cloudflare Edge → Tunnel → Nginx Proxy Manager → Internal Service

Zero open ports. No port forwarding. All external access goes through Cloudflare Tunnel.

📁 Configs: cloudflare/ · npm/ · docs/Add_New_Service_Guide.md


Observability — Ced's NOC

The centerpiece of this lab. A live Network Operations Center dashboard giving real-time visibility into every layer of the infrastructure.

Tool Role
Prometheus Metrics collection and storage
Grafana Dashboards and visualization
Node Exporter Per-host system metrics (CPU, RAM, disk, network)
Blackbox Exporter External endpoint and service probing
Uptime Kuma Service-level uptime monitoring and alerting

What's monitored:

  • Proxmox host performance and VM resource usage
  • K3s cluster node health and pod status
  • Per-service uptime with configurable alert thresholds
  • Network latency across VLANs
  • TrueNAS pool health and disk utilization

📺 View Live NOC Dashboard → 📁 Configs: monitoring/


Screenshots

Proxmox — Hypervisor Overview

Proxmox Overview

Proxmox — Active Workloads

Proxmox Workloads

K3s — Cluster Nodes & Pods

K3s Nodes

Nginx Proxy Manager — Reverse Proxy Routes

NPM

Uptime Kuma — Service Monitoring

Uptime Kuma

Grafana — Infrastructure Dashboard

Grafana


Repository Structure

ceds-homelab/
├── cloudflare/         # Tunnel configs and DNS setup
├── docs/               # Architecture diagrams, guides, roadmap
│   ├── Add_New_Service_Guide.md
│   ├── Ced_Homelab_Diagrams.md
│   └── roadmap.md
├── home-assistant/     # HA configuration and automation
├── k3s/                # K3s manifests and configs
├── monitoring/         # Prometheus, Grafana, Uptime Kuma configs
├── npm/                # Nginx Proxy Manager configs
├── proxmox/            # Proxmox VM/LXC templates and notes
├── screenshots/        # Infrastructure screenshots for docs
├── soc-lab/            # Security operations lab project
└── truenas/            # TrueNAS pool and dataset configs

Roadmap

  • Proxmox 6-node cluster (BigWorld, Biggie, Snoop, TooShort, Tupac, DrDre)
  • 12-node K3s cluster on Raspberry Pi with role-based worker groups
  • VLAN segmentation via UniFi (Main, IoT, HomeLab, Guest)
  • Cloudflare Tunnel + Nginx Proxy Manager — zero open ports
  • Prometheus + Grafana observability stack
  • Uptime Kuma service monitoring
  • Live NOC dashboard (noc.chasedumphord.com)
  • TrueNAS ZFS storage with NFS exports
  • Home Assistant on isolated IoT VLAN
  • GitOps with ArgoCD for K3s deployments
  • Helm chart library for self-hosted services
  • Cloudflare Zero Trust access policies
  • Internal container registry
  • Automated alerting with Grafana OnCall
  • Full Prometheus alerting rules library

Security Practices

This repository contains no secrets, tokens, API keys, or passwords.

  • All sensitive values are stored locally or passed via environment variables
  • Template/example files use placeholder values only (.example suffix)
  • External access is zero-trust via Cloudflare Tunnel — no exposed ports
  • VLANs enforce hard network segmentation between device classes
  • Internal IPs are intentionally omitted from public documentation

Project Description
ced-k3s-homelab Full documentation for the 12-node Raspberry Pi K3s cluster
ceds-aprs-igate Dual-node APRS RF-to-internet iGate (KJ5JCO)
ced-portfolio Source for chasedumphord.com

Author

Chase Dumphord (Ced) Digital Systems Engineer · GE Aerospace · Oxford, MS

Building systems that connect industrial hardware to actionable data.

Portfolio LinkedIn GitHub Live NOC