mirror of
https://github.com/ced4568/ceds-noc.git
synced 2026-08-13 05:14:03 +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/>
|
# Ced's NOC — Live Network Operations Center
|
||||||
Digital Systems | Infrastructure | RF Edge Systems
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<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.
|
||||||
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>
|
|
||||||
|
|
||||||
<img align="right" alt="Coding Gorilla" width="400px" style="padding-right:10px;" src="https://gifdb.com/images/thumbnail/monkey-laptop-coding-miys12p5izw3s11s.gif" />
|
[](https://noc.chasedumphord.com)
|
||||||
|
[](https://chasedumphord.com)
|
||||||
<ul>
|
[](#)
|
||||||
<li>🚀 Currently building system monitoring platforms & dashboards</li>
|
[](https://github.com/ced4568/ceds-observability-stack)
|
||||||
<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>
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 🧠 Ced’s NOC System
|
## What This Is
|
||||||
|
|
||||||
👉 **Portfolio Site:** https://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.
|
||||||
👉 **Live NOC Dashboard:** https://noc.chasedumphord.com
|
|
||||||
|
|
||||||
This repository represents a **live Network Operations Center (NOC) system**, not just a static portfolio.
|
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.
|
||||||
|
|
||||||
It showcases:
|
|
||||||
|
|
||||||
* 📊 **Ced’s NOC Dashboard** (real system monitoring)
|
|
||||||
* 🧠 **HomeLab Infrastructure** (HA virtualization, VLANs, services)
|
|
||||||
* ☸️ **K3s Cluster** (distributed compute)
|
|
||||||
* 📡 **APRS iGate (RF Edge System)**
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 📊 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
|
### Core Infrastructure
|
||||||
* Service availability
|
|
||||||
* Network segmentation
|
| Service | Role | Status Source |
|
||||||
* RF edge system status
|
|---------|------|--------------|
|
||||||
|
| 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
|
subgraph NOC["Frontend — ceds-noc"]
|
||||||
* Operational visibility
|
PAGE[noc.chasedumphord.com]
|
||||||
* Real-world infrastructure awareness
|
BADGE[noc-badge.json]
|
||||||
* Ability to translate data into actionable insights
|
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
|
```
|
||||||
|
ceds-noc/
|
||||||

|
├── assets/
|
||||||
|
│ └── images/ # NOC page assets
|
||||||
### 🖥️ Systems Overview
|
├── 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
|
||||||
## 🔴 Live System Status
|
├── 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
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# 🧠 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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🎯 Key Tuning Insight
|
## Status Card Design
|
||||||
|
|
||||||
* Target audio level: **~50–60**
|
Each service card on the NOC displays:
|
||||||
* Too high → clipping / decode failure
|
|
||||||
* Too low → missed packets
|
|
||||||
|
|
||||||
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
|
This gives anyone viewing the page the same operational picture that the internal Grafana dashboard provides — without requiring access to the internal network.
|
||||||
* Real beacon testing from handheld radios
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 🧠 Featured Systems
|
## Screenshots
|
||||||
|
|
||||||
<ul>
|
### Systems Overview — Live Service Status
|
||||||
<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>
|
|
||||||
|
|
||||||
<br/>
|
### Metrics Overview
|
||||||
|

|
||||||
<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>
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 🧰 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)
|
**Chase Dumphord (Ced)**
|
||||||
* Prometheus (Metrics)
|
Digital Systems Engineer · GE Aerospace · Oxford, MS
|
||||||
* Blackbox Exporter (Service Monitoring)
|
|
||||||
* Uptime Kuma (External Monitoring)
|
|
||||||
|
|
||||||
## 🌐 Networking & Access
|
[](https://chasedumphord.com)
|
||||||
|
[](https://www.linkedin.com/in/chase-dumphord/)
|
||||||
* Nginx Proxy Manager (Reverse Proxy)
|
[](https://github.com/ced4568)
|
||||||
* Cloudflare Tunnels (Secure External Access)
|
[](https://noc.chasedumphord.com)
|
||||||
* 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.
|
|
||||||
Reference in New Issue
Block a user