mirror of
https://github.com/ced4568/ceds-noc.git
synced 2026-08-12 21:04:02 +00:00
docs: complete README rewrite with architecture diagram and system coverage
This commit is contained in:
@@ -1,296 +1,175 @@
|
||||
<h1>Hi, I'm Chase! <br/>
|
||||
Digital Systems | Infrastructure | RF Edge Systems
|
||||
</h1>
|
||||
# Ced's NOC — Live Network Operations Center
|
||||
|
||||
<h3>
|
||||
I build real-world systems that combine data, automation, and infrastructure.
|
||||
From monitoring platforms and dashboards to full infrastructure environments, everything I create is designed to solve practical problems and scale.
|
||||
</h3>
|
||||
> A custom-built, public-facing Network Operations Center dashboard running at [noc.chasedumphord.com](https://noc.chasedumphord.com) — providing real-time visibility into Ced's HomeLab infrastructure, services, and RF edge systems.
|
||||
|
||||
<img align="right" alt="Coding Gorilla" width="400px" style="padding-right:10px;" src="https://gifdb.com/images/thumbnail/monkey-laptop-coding-miys12p5izw3s11s.gif" />
|
||||
|
||||
<ul>
|
||||
<li>🚀 Currently building system monitoring platforms & dashboards</li>
|
||||
<li>🖥️ Running a full homelab (Proxmox HA Cluster, Kubernetes, Docker)</li>
|
||||
<li>⚙️ Focused on infrastructure, automation, and observability</li>
|
||||
<li>🧠 Ask me about K3s clusters, system monitoring, or homelab design</li>
|
||||
<li>📫 Reach me: Chasedumphord@gmail.com</li>
|
||||
</ul>
|
||||
[](https://noc.chasedumphord.com)
|
||||
[](https://chasedumphord.com)
|
||||
[](#)
|
||||
[](https://github.com/ced4568/ceds-observability-stack)
|
||||
|
||||
---
|
||||
|
||||
# 🧠 Ced’s NOC System
|
||||
## What This Is
|
||||
|
||||
👉 **Portfolio Site:** https://chasedumphord.com
|
||||
👉 **Live NOC Dashboard:** https://noc.chasedumphord.com
|
||||
This is the public-facing front door to Ced's HomeLab infrastructure. While the backend observability stack ([ceds-observability-stack](https://github.com/ced4568/ceds-observability-stack)) handles metrics collection and Grafana dashboards, this repo is the custom status page that makes that data publicly accessible — no login required.
|
||||
|
||||
This repository represents a **live Network Operations Center (NOC) system**, not just a static portfolio.
|
||||
|
||||
It showcases:
|
||||
|
||||
* 📊 **Ced’s NOC Dashboard** (real system monitoring)
|
||||
* 🧠 **HomeLab Infrastructure** (HA virtualization, VLANs, services)
|
||||
* ☸️ **K3s Cluster** (distributed compute)
|
||||
* 📡 **APRS iGate (RF Edge System)**
|
||||
It's not a template or a third-party uptime service. It's a purpose-built frontend that pulls live status data and presents it as a professional NOC dashboard. Every card on the page represents a real, running service with real latency and uptime data.
|
||||
|
||||
---
|
||||
|
||||
# 📊 Ced’s NOC Dashboard
|
||||
## Live Dashboard
|
||||
|
||||
A central visibility layer for all systems.
|
||||
[](https://noc.chasedumphord.com)
|
||||
|
||||
This dashboard includes real Grafana, Prometheus, and Blackbox Exporter monitoring for live HomeLab services.
|
||||
The NOC displays real-time status for every layer of the infrastructure stack — from the Proxmox hypervisor down to the APRS RF edge system.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 What it shows:
|
||||
## System Coverage
|
||||
|
||||
* Infrastructure health
|
||||
* Service availability
|
||||
* Network segmentation
|
||||
* RF edge system status
|
||||
### Core Infrastructure
|
||||
|
||||
| Service | Role | Status Source |
|
||||
|---------|------|--------------|
|
||||
| Proxmox VE | Hypervisor — 6-node HA cluster | TCP probe via Blackbox |
|
||||
| TrueNAS | Storage platform | TCP probe via Blackbox |
|
||||
| Nginx Proxy Manager | Reverse proxy | TCP probe via Blackbox |
|
||||
|
||||
### Application Layer
|
||||
|
||||
| Service | Role | Status Source |
|
||||
|---------|------|--------------|
|
||||
| Dashy | Service dashboard | TCP probe via Blackbox |
|
||||
| Jellyfin | Media service | TCP probe via Blackbox |
|
||||
| K3s API | Kubernetes cluster API | TCP probe via Blackbox |
|
||||
|
||||
### Edge / RF Systems
|
||||
|
||||
| Service | Role | Status Source |
|
||||
|---------|------|--------------|
|
||||
| APRS Home iGate | RF-to-internet gateway (KJ5JCO-10) | TCP probe via Blackbox |
|
||||
| APRS-IS | External APRS internet service | TCP probe — noam.aprs2.net:14580 |
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Why it matters:
|
||||
## Architecture
|
||||
|
||||
This demonstrates:
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph Backend["Backend — ceds-observability-stack"]
|
||||
PROM[Prometheus]
|
||||
BB[Blackbox Exporter]
|
||||
SCRIPTS[Python Status Scripts]
|
||||
end
|
||||
|
||||
* System monitoring mindset
|
||||
* Operational visibility
|
||||
* Real-world infrastructure awareness
|
||||
* Ability to translate data into actionable insights
|
||||
subgraph NOC["Frontend — ceds-noc"]
|
||||
PAGE[noc.chasedumphord.com]
|
||||
BADGE[noc-badge.json]
|
||||
STATUS[noc-status.json]
|
||||
end
|
||||
|
||||
subgraph Infrastructure["Live Infrastructure"]
|
||||
PVE[Proxmox VE]
|
||||
TN[TrueNAS]
|
||||
K3S[K3s API]
|
||||
APRS[APRS iGate]
|
||||
SERVICES[Services]
|
||||
end
|
||||
|
||||
Infrastructure --> BB --> PROM
|
||||
PROM --> SCRIPTS
|
||||
SCRIPTS --> BADGE & STATUS
|
||||
BADGE & STATUS --> PAGE
|
||||
```
|
||||
|
||||
**Data flow:**
|
||||
1. Blackbox Exporter probes all services via TCP/HTTP
|
||||
2. Prometheus collects and stores probe results
|
||||
3. Python scripts generate status JSON from Prometheus data
|
||||
4. NOC frontend reads JSON and renders live status cards
|
||||
5. Public visitors see real-time infrastructure status — no login needed
|
||||
|
||||
---
|
||||
|
||||
## 🖼️ Live Dashboard Preview
|
||||
## Repository Structure
|
||||
|
||||
### 📊 Metrics Overview
|
||||
|
||||

|
||||
|
||||
### 🖥️ Systems Overview
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 🔴 Live System Status
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
# 🧠 Featured System — Ced’s NOC (Network Operations Center)
|
||||
|
||||
A real-time monitoring and observability platform built on top of my homelab infrastructure.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 What it demonstrates:
|
||||
|
||||
* Live system monitoring (services, nodes, edge systems)
|
||||
* Infrastructure visibility across VLANs and clusters
|
||||
* Service health tracking (latency, uptime, status)
|
||||
* Real data ingestion (NOT simulated)
|
||||
* Dashboard design for operational awareness
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Monitoring Stack:
|
||||
|
||||
* Grafana (Visualization)
|
||||
* Prometheus (Metrics collection)
|
||||
* Blackbox Exporter (Service uptime & latency checks)
|
||||
* Uptime Kuma (External monitoring layer)
|
||||
|
||||
👉 This is the **core system** that ties everything together.
|
||||
|
||||
---
|
||||
|
||||
# 🧱 Foundation — Ced’s Home Lab (Infrastructure + Monitoring)
|
||||
|
||||
Real-world environment used to simulate production systems and host services.
|
||||
|
||||
This is the backbone of Ced’s NOC — where all systems, services, and monitoring originate.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Core Infrastructure
|
||||
|
||||
* **Proxmox HA Cluster (High Availability Virtualization)**
|
||||
* K3s Kubernetes cluster (Raspberry Pi - 12 nodes)
|
||||
* TrueNAS storage system
|
||||
* Docker / containerized workloads
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Networking Layer
|
||||
|
||||
* VLAN segmentation
|
||||
- Main Network
|
||||
- IoT Network
|
||||
- HomeLab Network (10.10.30.0/24)
|
||||
- Guest Network
|
||||
|
||||
* Nginx Proxy Manager (external access layer)
|
||||
* Cloudflare Tunnels (secure remote access)
|
||||
|
||||
---
|
||||
|
||||
## 📊 Monitoring Stack (LIVE)
|
||||
|
||||
* Grafana (Dashboards)
|
||||
* Prometheus (Metrics)
|
||||
* Blackbox Exporter (Service Monitoring)
|
||||
* Uptime Kuma (External Monitoring)
|
||||
|
||||
👉 The NOC dashboard is built directly on top of this environment.
|
||||
|
||||
---
|
||||
|
||||
# 📡 Edge System — APRS iGate (RF → Internet Gateway)
|
||||
|
||||
A real-world RF system that feeds live data into infrastructure.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ System Components
|
||||
|
||||
* Raspberry Pi + Direwolf APRS TNC
|
||||
* Audio chain tuning (critical for decode accuracy)
|
||||
* APRS-IS integration
|
||||
* Real beacon ingestion from handheld radios
|
||||
|
||||
🔗 **Project:**
|
||||
https://github.com/ced4568/ceds-aprs-igate
|
||||
|
||||
---
|
||||
|
||||
## 🔥 Key Insight
|
||||
|
||||
This system bridges:
|
||||
|
||||
```text
|
||||
RF radio signals → Raspberry Pi / Direwolf → APRS-IS → Digital Infrastructure
|
||||
```
|
||||
ceds-noc/
|
||||
├── assets/
|
||||
│ └── images/ # NOC page assets
|
||||
├── data/
|
||||
│ ├── noc-badge.json # Live status badge data
|
||||
│ └── noc-status.json # Live service status data
|
||||
├── screenshots/
|
||||
│ ├── noc-metrics.png # NOC metrics view
|
||||
│ └── noc-systems.png # NOC systems overview
|
||||
├── scripts/
|
||||
│ ├── generate-noc-badge.py # Generates badge JSON from Prometheus
|
||||
│ └── generate-noc-status.py # Generates status JSON from Prometheus
|
||||
├── index.html # NOC frontend
|
||||
├── script.js # Status page logic
|
||||
└── style.css # NOC styling
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Key Tuning Insight
|
||||
## Status Card Design
|
||||
|
||||
* Target audio level: **~50–60**
|
||||
* Too high → clipping / decode failure
|
||||
* Too low → missed packets
|
||||
Each service card on the NOC displays:
|
||||
|
||||
This was tuned using:
|
||||
- **Service name and role** — what it is and what it does
|
||||
- **Category badge** — HYPERVISOR, STORAGE, CLUSTER, PORTAL, etc.
|
||||
- **Health badge** — HEALTHY or DEGRADED based on probe results
|
||||
- **Internal IP and port** — where the service lives on the HomeLab VLAN
|
||||
- **Status** — Online / Offline
|
||||
- **Latency** — real response time in milliseconds
|
||||
- **Last check timestamp** — when the probe last ran
|
||||
|
||||
* Direwolf audio level output
|
||||
* Real beacon testing from handheld radios
|
||||
This gives anyone viewing the page the same operational picture that the internal Grafana dashboard provides — without requiring access to the internal network.
|
||||
|
||||
---
|
||||
|
||||
# 🧠 Featured Systems
|
||||
## Screenshots
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>📊 Ced’s NOC Dashboard</b><br/>
|
||||
Enterprise-style monitoring platform providing real-time visibility into infrastructure, services, and edge systems.<br/>
|
||||
<b>Highlights:</b> Prometheus metrics, Blackbox monitoring, service health tracking, Grafana dashboards.<br/>
|
||||
</li>
|
||||
### Systems Overview — Live Service Status
|
||||

|
||||
|
||||
<br/>
|
||||
|
||||
<li>
|
||||
<b>🧱 Ced’s Home Lab</b><br/>
|
||||
Full infrastructure environment simulating production systems using virtualization and Kubernetes.<br/>
|
||||
<b>Highlights:</b> Proxmox HA cluster, 12-node K3s cluster, VLAN segmentation, reverse proxy, monitoring stack.<br/>
|
||||
</li>
|
||||
|
||||
<br/>
|
||||
|
||||
<li>
|
||||
<b>📡 APRS iGate (RF Edge System)</b><br/>
|
||||
RF-to-internet gateway ingesting real-world radio data into digital systems.<br/>
|
||||
<b>Highlights:</b> Audio tuning, Direwolf APRS TNC, APRS-IS integration, live beacon ingestion.<br/>
|
||||
</li>
|
||||
</ul>
|
||||
### Metrics Overview
|
||||

|
||||
|
||||
---
|
||||
|
||||
# 🧰 Tech Stack
|
||||
## Related Projects
|
||||
|
||||
## ⚡ Core Technologies
|
||||
| Project | Role |
|
||||
|---------|------|
|
||||
| [ceds-observability-stack](https://github.com/ced4568/ceds-observability-stack) | Backend — Prometheus, Grafana, Alertmanager, all exporters |
|
||||
| [ceds-homelab](https://github.com/ced4568/ceds-homelab) | Infrastructure — Proxmox cluster, TrueNAS, networking |
|
||||
| [ced-k3s-homelab](https://github.com/ced4568/ced-k3s-homelab) | Orchestration — 12-node Raspberry Pi K3s cluster |
|
||||
| [ceds-aprs-igate](https://github.com/ced4568/ceds-aprs-igate) | Edge — Dual-node APRS RF-to-internet gateway |
|
||||
|
||||
<img align="left" alt="TypeScript" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-plain.svg" />
|
||||
<img align="left" alt="Git" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/git/git-original.svg" />
|
||||
<img align="left" alt="Linux" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/linux/linux-original.svg" />
|
||||
<img align="left" alt="HTML" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/html5/html5-plain.svg" />
|
||||
<img align="left" alt="JavaScript" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-plain.svg" />
|
||||
<img align="left" alt="React" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg" />
|
||||
<img align="left" alt="NodeJS" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg" />
|
||||
<img align="left" alt="Python" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/python/python-plain.svg" />
|
||||
<img align="left" alt="Docker" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/docker/docker-original.svg" />
|
||||
<img align="left" alt="Kubernetes" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/kubernetes/kubernetes-plain.svg" />
|
||||
<img align="left" alt="Grafana" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/grafana/grafana-original.svg" />
|
||||
<img align="left" alt="Prometheus" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/prometheus/prometheus-original.svg" />
|
||||
<img align="left" alt="Bash" width="30px" style="padding-right:10px;" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/bash/bash-original.svg" />
|
||||
---
|
||||
|
||||
<br /><br />
|
||||
## Roadmap
|
||||
|
||||
## 🖥️ Infrastructure & Systems
|
||||
- [x] Live service status cards with real probe data
|
||||
- [x] APRS RF edge system monitoring
|
||||
- [x] Public access — no login required
|
||||
- [x] Custom badge and status JSON generation
|
||||
- [ ] Alerting integration — visual alerts on NOC page
|
||||
- [ ] Historical uptime percentage per service
|
||||
- [ ] Mobile-optimized layout
|
||||
- [ ] Auto-refresh with configurable interval
|
||||
- [ ] Public Grafana dashboard embed
|
||||
|
||||
* Proxmox HA Cluster (Virtualization)
|
||||
* K3s Kubernetes (Raspberry Pi Cluster)
|
||||
* Docker / Containerized Services
|
||||
* TrueNAS (Storage)
|
||||
---
|
||||
|
||||
## 📊 Monitoring & Observability
|
||||
## Author
|
||||
|
||||
* Grafana (Dashboards)
|
||||
* Prometheus (Metrics)
|
||||
* Blackbox Exporter (Service Monitoring)
|
||||
* Uptime Kuma (External Monitoring)
|
||||
**Chase Dumphord (Ced)**
|
||||
Digital Systems Engineer · GE Aerospace · Oxford, MS
|
||||
|
||||
## 🌐 Networking & Access
|
||||
|
||||
* Nginx Proxy Manager (Reverse Proxy)
|
||||
* Cloudflare Tunnels (Secure External Access)
|
||||
* VLAN Segmentation (UniFi Network)
|
||||
|
||||
## 📡 Edge & RF Systems
|
||||
|
||||
* Direwolf (APRS TNC)
|
||||
* APRS-IS Integration
|
||||
* Raspberry Pi iGate Systems
|
||||
* Audio Signal Processing / Tuning
|
||||
|
||||
## 💻 Development
|
||||
|
||||
* Python (Automation / Data Collection)
|
||||
* JavaScript (Frontend Dashboard UI)
|
||||
* HTML / CSS (UI Design)
|
||||
* Bash (System Automation)
|
||||
* Git / GitHub (Version Control)
|
||||
|
||||
# 📈 Roadmap
|
||||
|
||||
* [x] Grafana + Prometheus deployed
|
||||
* [x] Real service monitoring (Blackbox)
|
||||
* [ ] Response time dashboards
|
||||
* [ ] Alerting system (Prometheus alerts)
|
||||
* [ ] Full NOC dashboard layout (v2)
|
||||
* [ ] Mobile APRS iGate deployment
|
||||
|
||||
# 👤 Connect With Me
|
||||
|
||||
[LinkedIn](https://www.linkedin.com/in/toochase-dumphord/)
|
||||
|
||||
[GitHub](https://github.com/ced4568)
|
||||
|
||||
## ⚡ Final Note
|
||||
|
||||
This is not a static portfolio — it is a live representation of real infrastructure, monitoring, and edge systems working together.
|
||||
[](https://chasedumphord.com)
|
||||
[](https://www.linkedin.com/in/chase-dumphord/)
|
||||
[](https://github.com/ced4568)
|
||||
[](https://noc.chasedumphord.com)
|
||||
Reference in New Issue
Block a user