mirror of
https://github.com/ced4568/ced-portfolio.git
synced 2026-08-12 22:34:03 +00:00
Update site copy, positioning, stack, and remove IPs from NOC cards
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# Hi, I'm Chase (Ced) Dumphord
|
# Hi, I'm Chase (Ced) Dumphord
|
||||||
### Digital Systems Engineer | Infrastructure | Automation | RF Edge Systems
|
### DevOps Engineer | Platform & Cloud Infrastructure Engineer | Industrial Systems
|
||||||
|
|
||||||
> **Live Portfolio:** https://chasedumphord.com
|
> **Live Portfolio:** https://chasedumphord.com
|
||||||
> **Live NOC Dashboard:** https://noc.chasedumphord.com
|
> **Live NOC Dashboard:** https://noc.chasedumphord.com
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
Digital Systems Engineer with 10+ years of experience across industrial automation, manufacturing systems, and data-driven infrastructure. Currently at GE Aerospace Digital Team specializing in machine data integration, dashboard development, and system-level visibility. Hands-on homelab engineer bridging physical equipment with modern digital platforms. Increasingly integrating AI tooling for system documentation, automated diagnostics, and workflow acceleration.
|
DevOps and Cloud Infrastructure Engineer with 10+ years of experience across industrial automation, manufacturing data systems, field service engineering, and infrastructure operations. Currently part of GE Aerospace's Digital Team building data pipelines, dashboards, and digital inspection systems using MTConnect and OPS Vision. Hands-on infrastructure engineer running an 18-node production environment consisting of a 6-node Proxmox VE cluster and a 12-node K3s Kubernetes cluster with TrueNAS, full observability stack, and VLAN-segmented networking. Built from the ground up and running in production every day. The infrastructure on this page is live. Not a demo.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -16,14 +16,14 @@ Digital Systems Engineer with 10+ years of experience across industrial automati
|
|||||||
|
|
||||||
| Site | URL | Description |
|
| Site | URL | Description |
|
||||||
|------|-----|-------------|
|
|------|-----|-------------|
|
||||||
| Portfolio | https://chasedumphord.com | Personal portfolio projects, stack, resume |
|
| Portfolio | https://chasedumphord.com | Personal portfolio, projects, stack, resume |
|
||||||
| NOC Dashboard | https://noc.chasedumphord.com | Live infrastructure visibility 28 systems |
|
| NOC Dashboard | https://noc.chasedumphord.com | Live infrastructure visibility — 28 systems |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Ced's NOC Live Infrastructure Observability
|
## Ced's NOC — Live Infrastructure Observability
|
||||||
|
|
||||||
Real-time network operations center dashboard monitoring 28 homelab systems across 6 infrastructure layers.
|
Real time network operations center dashboard monitoring 28 homelab systems across 6 infrastructure layers.
|
||||||
|
|
||||||
### How It Works
|
### How It Works
|
||||||
|
|
||||||
@@ -39,13 +39,19 @@ Proxmox Biggie (Cron every 5min)
|
|||||||
|
|
||||||
### Systems Monitored
|
### Systems Monitored
|
||||||
|
|
||||||
- **6-node Proxmox Cluster** BigWorld, Biggie, Snoop, TooShort, Tupac, DrDre
|
- **6-node Proxmox Cluster** — BigWorld, Biggie, Snoop, TooShort, Tupac, DrDre
|
||||||
- **12-node K3s Cluster** 3 control plane (django-1/2/3) + 9 workers (ingress, data, monitoring groups)
|
- **12-node K3s Cluster** — 3 control plane (django-1/2/3) + 9 workers (ingress, data, monitoring groups)
|
||||||
- **TrueNAS** Network attached storage
|
- **TrueNAS** — Network attached storage
|
||||||
- **Nginx Proxy Manager** Reverse proxy layer
|
- **Nginx Proxy Manager** — Reverse proxy layer
|
||||||
- **Prometheus + Grafana + Uptime Kuma** Full observability stack (Prometheus actively scraping)
|
- **Prometheus + Grafana + Uptime Kuma** — Full observability stack with Prometheus actively scraping
|
||||||
- **Dashy + Home Assistant + PrimeStation** Services layer
|
- **Portainer** — Container management and deployment UI
|
||||||
- **APRS iGate x2** RF edge systems (home + mobile)
|
- **Dashy + Home Assistant + PrimeStation** — Services layer
|
||||||
|
- **Hermes Agent** — AI-assisted ops automation agent
|
||||||
|
- **Hetzner VPS** — Cloud-hosted production node
|
||||||
|
- **Tailscale** — Zero-config VPN mesh networking
|
||||||
|
- **Restdesk** — Self-hosted helpdesk and ticketing
|
||||||
|
- **PaperClip Agents** — Document automation and processing agents
|
||||||
|
- **APRS iGate x2** — RF edge systems (home + mobile)
|
||||||
|
|
||||||
### Automation
|
### Automation
|
||||||
|
|
||||||
@@ -62,6 +68,7 @@ Proxmox Biggie (Cron every 5min)
|
|||||||
|-------|---------|-------|
|
|-------|---------|-------|
|
||||||
| Compute | Proxmox VE cluster | 6 nodes |
|
| Compute | Proxmox VE cluster | 6 nodes |
|
||||||
| Orchestration | K3s Kubernetes | 12 nodes |
|
| Orchestration | K3s Kubernetes | 12 nodes |
|
||||||
|
| Total Nodes | Combined infrastructure | 18 nodes |
|
||||||
| Storage | TrueNAS | 1 |
|
| Storage | TrueNAS | 1 |
|
||||||
| Networking | Nginx Proxy Manager, Cloudflare Tunnels, UniFi VLANs | 4 VLANs |
|
| Networking | Nginx Proxy Manager, Cloudflare Tunnels, UniFi VLANs | 4 VLANs |
|
||||||
| Monitoring | Prometheus, Grafana, Uptime Kuma, Custom NOC | 4 services |
|
| Monitoring | Prometheus, Grafana, Uptime Kuma, Custom NOC | 4 services |
|
||||||
@@ -73,50 +80,52 @@ Proxmox Biggie (Cron every 5min)
|
|||||||
|
|
||||||
### Ced's NOC Dashboard
|
### Ced's NOC Dashboard
|
||||||
|
|
||||||
Real-time monitoring system with live system health, latency tracking, severity-based alerts, and layer filtering.
|
Real time monitoring system with live system health, latency tracking, severity based alerts, and layer filtering.
|
||||||
|
|
||||||
- **Live:** https://noc.chasedumphord.com
|
- **Live:** https://noc.chasedumphord.com
|
||||||
- **Source:** https://github.com/ced4568/ceds-noc
|
- **Source:** https://github.com/ced4568/ceds-noc
|
||||||
|
|
||||||
### Ced's HomeLab
|
### Ced's HomeLab
|
||||||
|
|
||||||
Full enterprise-style homelab with Proxmox clustering, K3s orchestration, VLAN segmentation, and full observability stack including Prometheus scraping.
|
Full enterprise style homelab with Proxmox clustering, K3s orchestration, VLAN segmentation, and full observability stack including Prometheus scraping.
|
||||||
|
|
||||||
- **Source:** https://github.com/ced4568/ceds-homelab
|
- **Source:** https://github.com/ced4568/ceds-homelab
|
||||||
|
|
||||||
### APRS iGate (RF Edge System)
|
### APRS iGate (RF Edge System)
|
||||||
|
|
||||||
Dual-node RF-to-internet gateway. Raspberry Pi + Direwolf TNC. Live on aprs.fi.
|
Dual node RF to internet gateway. Raspberry Pi + Direwolf TNC. Live on aprs.fi.
|
||||||
|
|
||||||
- **Source:** https://github.com/ced4568/ceds-aprs-igate
|
- **Source:** https://github.com/ced4568/ceds-aprs-igate
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🧰 Tech Stack
|
## Tech Stack
|
||||||
|
|
||||||
**Infrastructure:** Proxmox VE • K3s • Docker • TrueNAS • Nginx Proxy Manager • Cloudflare Tunnels
|
**Infrastructure:** Proxmox VE • K3s • Docker • TrueNAS • Helm • Terraform • Nginx Proxy Manager • Cloudflare Tunnels
|
||||||
|
|
||||||
**Monitoring:** Prometheus • Grafana • Uptime Kuma • Custom NOC Dashboard
|
**Monitoring:** Prometheus • Grafana • Uptime Kuma • Custom NOC Dashboard
|
||||||
|
|
||||||
**Networking:** UniFi • VLAN Segmentation • Cloudflare DNS
|
**Networking:** UniFi • VLAN Segmentation • Tailscale • Cloudflare DNS
|
||||||
|
|
||||||
|
**GitOps & CI/CD:** GitHub Actions • Docker Compose • Manifest-driven Config
|
||||||
|
|
||||||
**Edge / RF:** Direwolf • APRS-IS • Raspberry Pi • RTL-SDR
|
**Edge / RF:** Direwolf • APRS-IS • Raspberry Pi • RTL-SDR
|
||||||
|
|
||||||
**Development:** Python • Bash • JavaScript • HTML/CSS • Git
|
**Development:** Python • Bash • JavaScript • HTML/CSS • Git
|
||||||
|
|
||||||
**AI & Automation:** Claude (Anthropic) • LLM-assisted Documentation • Prompt Engineering
|
**AI & Automation:** n8n • OpenRouter • Telegram Bots • Claude (Anthropic) • Gemini • Hermes Agent • LLM-assisted Documentation • AI-driven Diagnostics
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Connect
|
## Connect
|
||||||
|
|
||||||
[](https://www.linkedin.com/in/toochase-dumphord/)
|
[](https://www.linkedin.com/in/chase-dumphord/)
|
||||||
[](https://github.com/ced4568)
|
[](https://github.com/ced4568)
|
||||||
[](https://chasedumphord.com)
|
[](https://chasedumphord.com)
|
||||||
[](https://noc.chasedumphord.com)
|
[](https://noc.chasedumphord.com)
|
||||||
|
|
||||||
chasedumphord@gmail.com | 📍 Oxford, MS
|
📧 chasedumphord@gmail.com | Oxford, MS
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
> This is not a static portfolio it is a live representation of working systems.
|
> Built from the ground up and running in production every day. The infrastructure on this page is live. Not a demo.
|
||||||
+107
-92
@@ -13,16 +13,16 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
|
||||||
<title>Chase Dumphord | Digital Systems & Infrastructure</title>
|
<title>Chase Dumphord | DevOps & Cloud Infrastructure Engineer</title>
|
||||||
|
|
||||||
<meta
|
<meta
|
||||||
name="description"
|
name="description"
|
||||||
content="Chase Dumphord digital systems builder focused on infrastructure, Linux, K3s, Proxmox, APRS RF edge systems, and real-world technical problem solving."
|
content="Chase Dumphord DevOps and Cloud Infrastructure Engineer running an 18 node production environment with K3s, Proxmox, Prometheus, Grafana, and APRS RF edge systems out of Oxford, MS."
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- Open Graph for LinkedIn / Discord sharing -->
|
<!-- Open Graph for LinkedIn / Discord sharing -->
|
||||||
<meta property="og:title" content="Chase Dumphord | Digital Systems & Infrastructure" />
|
<meta property="og:title" content="Chase Dumphord | DevOps & Cloud Infrastructure Engineer" />
|
||||||
<meta property="og:description" content="Hands-on systems builder. Proxmox • K3s • APRS • HomeLab. Based in Oxford, MS." />
|
<meta property="og:description" content="DevOps & Cloud Infrastructure Engineer. 18 nodes. 28 services. Always running. Based in Oxford, MS." />
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<meta property="og:url" content="https://chasedumphord.com" />
|
<meta property="og:url" content="https://chasedumphord.com" />
|
||||||
|
|
||||||
@@ -87,14 +87,13 @@
|
|||||||
<div class="hero-text">
|
<div class="hero-text">
|
||||||
<p class="eyebrow">
|
<p class="eyebrow">
|
||||||
<span class="eyebrow-dot"></span>
|
<span class="eyebrow-dot"></span>
|
||||||
Digital Systems • Infrastructure • Networking • Automation • Edge Systems
|
DevOps • Platform Engineering • Cloud Infrastructure • Kubernetes • Observability
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h1>I build systems that <span class="accent-word">connect</span> hardware, networks, and operations.</h1>
|
<h1>I build systems that <span class="accent-word">connect</span> hardware, networks, and operations.</h1>
|
||||||
|
|
||||||
<p class="lead">
|
<p class="lead">
|
||||||
Chase Dumphord infrastructure builder running Proxmox, K3s, TrueNAS, and APRS RF edge systems out of Oxford, MS.
|
Chase Dumphord DevOps and Cloud Infrastructure Engineer running an 18 node production environment out of Oxford, MS. 6 node Proxmox VE cluster, 12 node K3s Kubernetes cluster, full observability stack, and VLAN-segmented networking. I build things that actually run, then document how they work.
|
||||||
I build things that actually work, then document how they work.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="hero-actions">
|
<div class="hero-actions">
|
||||||
@@ -109,11 +108,11 @@
|
|||||||
<li>📍 Oxford, MS</li>
|
<li>📍 Oxford, MS</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/ced4568" target="_blank" rel="noopener noreferrer">
|
<a href="https://github.com/ced4568" target="_blank" rel="noopener noreferrer">
|
||||||
⌥ github/ced4568
|
github/ced4568
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="mailto:[email protected]">✉ [email protected]</a>
|
<a href="mailto:[email protected]">[email protected]</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@@ -161,16 +160,16 @@
|
|||||||
<span class="terminal-title">ced's@homelab ~ $</span>
|
<span class="terminal-title">ced's@homelab ~ $</span>
|
||||||
</div>
|
</div>
|
||||||
<pre><code><span class="t-prompt">ced's@homelab:~$</span> whoami
|
<pre><code><span class="t-prompt">ced's@homelab:~$</span> whoami
|
||||||
<span class="t-val">systems_builder</span>
|
<span class="t-val">devops_engineer</span>
|
||||||
|
|
||||||
<span class="t-prompt">ced's@homelab:~$</span> uptime
|
<span class="t-prompt">ced's@homelab:~$</span> uptime
|
||||||
<span class="t-val">12+ nodes • 10+ services • always_on</span>
|
<span class="t-val">18 nodes • 28 services • always_on</span>
|
||||||
|
|
||||||
<span class="t-prompt">ced's@homelab:~$</span> cat focus.txt
|
<span class="t-prompt">ced's@homelab:~$</span> cat focus.txt
|
||||||
<span class="t-val">infrastructure
|
<span class="t-val">kubernetes
|
||||||
networking
|
devops
|
||||||
automation
|
observability
|
||||||
rf_edge_systems</span>
|
cloud_infrastructure</span>
|
||||||
|
|
||||||
<span class="t-prompt">ced's@homelab:~$</span> systemctl status life
|
<span class="t-prompt">ced's@homelab:~$</span> systemctl status life
|
||||||
<span class="t-val">● building_real_systems.service</span>
|
<span class="t-val">● building_real_systems.service</span>
|
||||||
@@ -193,14 +192,14 @@ rf_edge_systems</span>
|
|||||||
|
|
||||||
<div class="stats-grid">
|
<div class="stats-grid">
|
||||||
<div class="stat-card">
|
<div class="stat-card">
|
||||||
<h3>12+</h3>
|
<h3>18</h3>
|
||||||
<p>Nodes</p>
|
<p>Nodes</p>
|
||||||
<span>K3s cluster • Raspberry Pi</span>
|
<span>6-node Proxmox VE • 12 node K3s</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-card">
|
<div class="stat-card">
|
||||||
<h3>10+</h3>
|
<h3>28+</h3>
|
||||||
<p>Services</p>
|
<p>Services</p>
|
||||||
<span>Self-hosted stack</span>
|
<span>Self-hosted production stack</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-card">
|
<div class="stat-card">
|
||||||
<h3>4</h3>
|
<h3>4</h3>
|
||||||
@@ -272,7 +271,7 @@ rf_edge_systems</span>
|
|||||||
<!-- Fallback shown when data can't load -->
|
<!-- Fallback shown when data can't load -->
|
||||||
<div id="noc-fallback" class="noc-fallback" style="display:none;">
|
<div id="noc-fallback" class="noc-fallback" style="display:none;">
|
||||||
<p class="noc-fallback-msg">
|
<p class="noc-fallback-msg">
|
||||||
📡 NOC feed unavailable from this context — systems run locally.<br/>
|
NOC feed unavailable from this context systems run locally.<br/>
|
||||||
<a href="https://noc.chasedumphord.com" target="_blank" rel="noopener noreferrer">
|
<a href="https://noc.chasedumphord.com" target="_blank" rel="noopener noreferrer">
|
||||||
View the live NOC dashboard →
|
View the live NOC dashboard →
|
||||||
</a>
|
</a>
|
||||||
@@ -286,34 +285,35 @@ rf_edge_systems</span>
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="section-label">// about</p>
|
<p class="section-label">// about</p>
|
||||||
<h2>Hands-on systems builder with a digital infrastructure mindset</h2>
|
<h2>DevOps and Cloud Infrastructure Engineer with 10+ years of real systems ownership</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content-grid">
|
<div class="content-grid">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<p>
|
<p>
|
||||||
I'm a technical professional focused on digital systems, infrastructure, networking,
|
I'm a DevOps and Cloud Infrastructure Engineer focused on reliable delivery, container
|
||||||
automation, and hands-on system integration. I build things that are practical,
|
orchestration, and cloud native infrastructure built for production conditions. I run an
|
||||||
reliable, and well-documented from homelab services and live dashboards to Raspberry Pi
|
18 node environment every day consisting of a 6 node Proxmox VE hypervisor cluster and
|
||||||
deployments, APRS iGates, and complex troubleshooting workflows.
|
a 12 node K3s Kubernetes cluster with Prometheus monitoring, Grafana dashboards, and
|
||||||
|
VLAN-segmented networking. Not a lab. A production system.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
My background blends field engineering, industrial technology, and infrastructure
|
I come from 10+ years in industrial digital systems at GE Aerospace and in the field
|
||||||
problem solving. Increasingly I'm integrating AI tooling using LLMs for system
|
as a Level III engineer on aerospace inspection equipment. I understand what production
|
||||||
documentation, automated diagnostics, and workflow acceleration as part of how
|
failure actually costs. That same operational discipline is what I bring to cloud native
|
||||||
modern infrastructure gets built and maintained.
|
infrastructure. I don't simulate environments. I run them.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3>Core Focus Areas</h3>
|
<h3>Core Focus Areas</h3>
|
||||||
<ul class="clean-list">
|
<ul class="clean-list">
|
||||||
<li>Digital systems and infrastructure engineering</li>
|
<li>Kubernetes orchestration and container infrastructure</li>
|
||||||
<li>Linux systems and service management</li>
|
<li>DevOps automation and CI/CD pipeline workflows</li>
|
||||||
<li>Networking, VLANs, failover, and connectivity troubleshooting</li>
|
<li>Observability with Prometheus, Grafana, and alerting pipelines</li>
|
||||||
<li>Raspberry Pi and edge-device deployments</li>
|
<li>Cloud-native infrastructure design and deployment</li>
|
||||||
|
<li>Networking, VLANs, reverse proxy, and Cloudflare edge configuration</li>
|
||||||
<li>AI-assisted automation, documentation, and diagnostic workflows</li>
|
<li>AI-assisted automation, documentation, and diagnostic workflows</li>
|
||||||
<li>Documentation, process building, and reproducible project design</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -325,8 +325,8 @@ rf_edge_systems</span>
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="section-label">// projects</p>
|
<p class="section-label">// projects</p>
|
||||||
<h2>Infrastructure & Systems Projects</h2>
|
<h2>Infrastructure & Systems Projects</h2>
|
||||||
<p class="section-intro">Built on real systems. Not demos, not tutorials — running infrastructure.</p>
|
<p class="section-intro">Built on real systems. Not demos, not tutorials running infrastructure.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="projects-grid">
|
<div class="projects-grid">
|
||||||
@@ -343,7 +343,7 @@ rf_edge_systems</span>
|
|||||||
<ul class="clean-list">
|
<ul class="clean-list">
|
||||||
<li>Proxmox VE virtualization platform</li>
|
<li>Proxmox VE virtualization platform</li>
|
||||||
<li>VLAN segmentation via UniFi (Main / IoT / HomeLab / Guest)</li>
|
<li>VLAN segmentation via UniFi (Main / IoT / HomeLab / Guest)</li>
|
||||||
<li>Self-hosted services behind Nginx Proxy Manager + Cloudflare Tunnels</li>
|
<li>Self hosted services behind Nginx Proxy Manager + Cloudflare Tunnels</li>
|
||||||
<li>Uptime Kuma + Grafana monitoring stack</li>
|
<li>Uptime Kuma + Grafana monitoring stack</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a href="https://github.com/ced4568/ceds-homelab" target="_blank" rel="noopener noreferrer" class="project-link">
|
<a href="https://github.com/ced4568/ceds-homelab" target="_blank" rel="noopener noreferrer" class="project-link">
|
||||||
@@ -358,12 +358,12 @@ rf_edge_systems</span>
|
|||||||
</div>
|
</div>
|
||||||
<p class="tags">Kubernetes • Containers • Linux • Automation</p>
|
<p class="tags">Kubernetes • Containers • Linux • Automation</p>
|
||||||
<p class="project-impact">
|
<p class="project-impact">
|
||||||
12-node K3s cluster on Raspberry Pi built to simulate distributed infrastructure and container orchestration at scale.
|
12 node K3s cluster on Raspberry Pi running distributed infrastructure and container orchestration in production with dedicated control plane, ingress, data, and monitoring node pools.
|
||||||
</p>
|
</p>
|
||||||
<ul class="clean-list">
|
<ul class="clean-list">
|
||||||
<li>Multi-node cluster setup and management</li>
|
<li>Multi node cluster setup and management</li>
|
||||||
<li>Containerized workload deployment</li>
|
<li>Containerized workload deployment</li>
|
||||||
<li>Infrastructure automation via manifest-driven configuration</li>
|
<li>Infrastructure automation via manifest driven configuration</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a href="https://github.com/ced4568/ced-k3s-homelab" target="_blank" rel="noopener noreferrer" class="project-link">
|
<a href="https://github.com/ced4568/ced-k3s-homelab" target="_blank" rel="noopener noreferrer" class="project-link">
|
||||||
View on GitHub →
|
View on GitHub →
|
||||||
@@ -377,7 +377,7 @@ rf_edge_systems</span>
|
|||||||
</div>
|
</div>
|
||||||
<p class="tags">RF • Linux • Raspberry Pi • APRS-IS • Edge Systems</p>
|
<p class="tags">RF • Linux • Raspberry Pi • APRS-IS • Edge Systems</p>
|
||||||
<p class="project-impact">
|
<p class="project-impact">
|
||||||
Operational dual-node RF-to-internet gateway. Decodes real beacon packets and uplinks live to aprs.fi.
|
Operational dual-node RF to internet gateway. Decodes real beacon packets and uplinks live to aprs.fi.
|
||||||
</p>
|
</p>
|
||||||
<ul class="clean-list">
|
<ul class="clean-list">
|
||||||
<li>Direwolf APRS TNC with tuned audio chain (target: 50–60 level)</li>
|
<li>Direwolf APRS TNC with tuned audio chain (target: 50–60 level)</li>
|
||||||
@@ -401,7 +401,7 @@ rf_edge_systems</span>
|
|||||||
<p class="section-label">// noc roadmap</p>
|
<p class="section-label">// noc roadmap</p>
|
||||||
<h2>Ced's NOC Vision</h2>
|
<h2>Ced's NOC Vision</h2>
|
||||||
<p class="section-intro">
|
<p class="section-intro">
|
||||||
Staged monitoring and systems-visibility platform built on real infrastructure.
|
Staged monitoring and systems visibility platform built on real infrastructure.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -411,23 +411,23 @@ rf_edge_systems</span>
|
|||||||
<h3>Portfolio NOC</h3>
|
<h3>Portfolio NOC</h3>
|
||||||
<p>
|
<p>
|
||||||
JSON-driven dashboard showing real inventory, online/offline checks, service labels,
|
JSON-driven dashboard showing real inventory, online/offline checks, service labels,
|
||||||
latency, and last-check timestamps.
|
latency, and last check timestamps across 18 nodes and 28 services.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="noc-card">
|
||||||
|
<div class="noc-card-badge done">✅ Live</div>
|
||||||
|
<h3>Grafana + Prometheus Observability Stack</h3>
|
||||||
|
<p>
|
||||||
|
Full observability stack running across Proxmox, TrueNAS, K3s nodes, Uptime Kuma,
|
||||||
|
and APRS edge systems with real-time metrics ingestion and live alerting pipelines.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="noc-card">
|
<div class="noc-card">
|
||||||
<div class="noc-card-badge next">⚙️ Next</div>
|
<div class="noc-card-badge next">⚙️ Next</div>
|
||||||
<h3>Automated Data Updates</h3>
|
<h3>Automated Incident Response</h3>
|
||||||
<p>
|
<p>
|
||||||
Scheduled local scripts will auto-refresh system status and push dashboard-ready
|
AI assisted ops automation using n8n, Telegram bots, and OpenRouter integrated with
|
||||||
JSON on a cron interval — no manual updates.
|
Prometheus alerting for automated triage and remediation workflows.
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="noc-card">
|
|
||||||
<div class="noc-card-badge future">📈 Future</div>
|
|
||||||
<h3>Grafana + Prometheus</h3>
|
|
||||||
<p>
|
|
||||||
Full observability stack for Proxmox, TrueNAS, K3s, Raspberry Pi nodes, Uptime Kuma,
|
|
||||||
and APRS edge systems with real-time metrics ingestion.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -442,7 +442,7 @@ rf_edge_systems</span>
|
|||||||
>
|
>
|
||||||
<span class="btn-dot"></span> View Live NOC Dashboard
|
<span class="btn-dot"></span> View Live NOC Dashboard
|
||||||
</a>
|
</a>
|
||||||
<span class="noc-cta-sub">noc.chasedumphord.com — live infrastructure visibility</span>
|
<span class="noc-cta-sub">noc.chasedumphord.com live infrastructure visibility</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -452,7 +452,7 @@ rf_edge_systems</span>
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="section-label">// tech stack</p>
|
<p class="section-label">// tech stack</p>
|
||||||
<h2>Tools & Technologies</h2>
|
<h2>Tools & Technologies</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="stack-groups">
|
<div class="stack-groups">
|
||||||
@@ -464,17 +464,20 @@ rf_edge_systems</span>
|
|||||||
<span class="stack-pill">K3s</span>
|
<span class="stack-pill">K3s</span>
|
||||||
<span class="stack-pill">Docker</span>
|
<span class="stack-pill">Docker</span>
|
||||||
<span class="stack-pill">TrueNAS</span>
|
<span class="stack-pill">TrueNAS</span>
|
||||||
|
<span class="stack-pill">Helm</span>
|
||||||
|
<span class="stack-pill">Terraform</span>
|
||||||
<span class="stack-pill">Nginx Proxy Manager</span>
|
<span class="stack-pill">Nginx Proxy Manager</span>
|
||||||
<span class="stack-pill">Cloudflare Tunnels</span>
|
<span class="stack-pill">Cloudflare Tunnels</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="stack-group">
|
<div class="stack-group">
|
||||||
<h4 class="stack-group-label">Monitoring & Observability</h4>
|
<h4 class="stack-group-label">Monitoring & Observability</h4>
|
||||||
<div class="stack-pills">
|
<div class="stack-pills">
|
||||||
<span class="stack-pill">Grafana</span>
|
<span class="stack-pill">Grafana</span>
|
||||||
<span class="stack-pill">Prometheus</span>
|
<span class="stack-pill">Prometheus</span>
|
||||||
<span class="stack-pill">Uptime Kuma</span>
|
<span class="stack-pill">Uptime Kuma</span>
|
||||||
|
<span class="stack-pill">Alerting Pipelines</span>
|
||||||
<span class="stack-pill">Custom NOC Dashboard</span>
|
<span class="stack-pill">Custom NOC Dashboard</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -484,13 +487,23 @@ rf_edge_systems</span>
|
|||||||
<div class="stack-pills">
|
<div class="stack-pills">
|
||||||
<span class="stack-pill">UniFi</span>
|
<span class="stack-pill">UniFi</span>
|
||||||
<span class="stack-pill">VLAN Segmentation</span>
|
<span class="stack-pill">VLAN Segmentation</span>
|
||||||
<span class="stack-pill">pfSense</span>
|
<span class="stack-pill">Nginx</span>
|
||||||
|
<span class="stack-pill">Traefik</span>
|
||||||
<span class="stack-pill">Cloudflare DNS</span>
|
<span class="stack-pill">Cloudflare DNS</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="stack-group">
|
<div class="stack-group">
|
||||||
<h4 class="stack-group-label">RF & Edge</h4>
|
<h4 class="stack-group-label">GitOps & CI/CD</h4>
|
||||||
|
<div class="stack-pills">
|
||||||
|
<span class="stack-pill">GitHub Actions</span>
|
||||||
|
<span class="stack-pill">Docker Compose</span>
|
||||||
|
<span class="stack-pill">Manifest-driven Config</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="stack-group">
|
||||||
|
<h4 class="stack-group-label">RF & Edge</h4>
|
||||||
<div class="stack-pills">
|
<div class="stack-pills">
|
||||||
<span class="stack-pill">Direwolf</span>
|
<span class="stack-pill">Direwolf</span>
|
||||||
<span class="stack-pill">APRS-IS</span>
|
<span class="stack-pill">APRS-IS</span>
|
||||||
@@ -512,13 +525,16 @@ rf_edge_systems</span>
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="stack-group">
|
<div class="stack-group">
|
||||||
<h4 class="stack-group-label">AI & Automation</h4>
|
<h4 class="stack-group-label">AI & Automation</h4>
|
||||||
<div class="stack-pills">
|
<div class="stack-pills">
|
||||||
|
<span class="stack-pill">n8n</span>
|
||||||
|
<span class="stack-pill">OpenRouter</span>
|
||||||
|
<span class="stack-pill">Telegram Bots</span>
|
||||||
<span class="stack-pill">Claude (Anthropic)</span>
|
<span class="stack-pill">Claude (Anthropic)</span>
|
||||||
<span class="stack-pill">ChatGPT</span>
|
<span class="stack-pill">Gemini</span>
|
||||||
|
<span class="stack-pill">Hermes Agent</span>
|
||||||
<span class="stack-pill">LLM-assisted Documentation</span>
|
<span class="stack-pill">LLM-assisted Documentation</span>
|
||||||
<span class="stack-pill">AI-driven Diagnostics</span>
|
<span class="stack-pill">AI-driven Diagnostics</span>
|
||||||
<span class="stack-pill">Prompt Engineering</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -531,7 +547,7 @@ rf_edge_systems</span>
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="section-heading">
|
<div class="section-heading">
|
||||||
<p class="section-label">// resume snapshot</p>
|
<p class="section-label">// resume snapshot</p>
|
||||||
<h2>Technical experience that bridges field work and digital systems</h2>
|
<h2>10+ years of systems ownership from the factory floor to cloud-native infrastructure</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="resume-grid">
|
<div class="resume-grid">
|
||||||
@@ -539,28 +555,26 @@ rf_edge_systems</span>
|
|||||||
<div class="card resume-card">
|
<div class="card resume-card">
|
||||||
<h3>What I Bring</h3>
|
<h3>What I Bring</h3>
|
||||||
<ul class="clean-list">
|
<ul class="clean-list">
|
||||||
<li>Industrial and field-service technical background hands-on problem solving under real constraints</li>
|
<li>Production Kubernetes infrastructure running 18 nodes across dedicated control plane, ingress, data, and monitoring node pools with live observability</li>
|
||||||
<li>Linux systems administration service management, troubleshooting, automation</li>
|
<li>10+ years of systems ownership in industrial environments where failure has direct production consequences including GE Aerospace digital systems and Level III field service on aerospace equipment</li>
|
||||||
<li>Networking depth VLANs, DNS, reverse proxy, firewall config, failover design</li>
|
<li>End to end cloud-native infrastructure capability covering containers, ingress, secrets, monitoring, backups, and automated recovery with live systems to prove it</li>
|
||||||
<li>Infrastructure-as-documentation mindset — everything I build gets written up</li>
|
<li>Infrastructure-as-documentation mindset where everything built gets written up with runbooks, architecture decisions, and SOPs</li>
|
||||||
<li>Homelab → production thinking I build lab environments that mirror real-world system design</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card resume-card">
|
<div class="card resume-card">
|
||||||
<h3>Target Roles</h3>
|
<h3>Target Roles</h3>
|
||||||
<ul class="clean-list">
|
<ul class="clean-list">
|
||||||
<li>Systems / Infrastructure Engineer</li>
|
<li>DevOps Engineer</li>
|
||||||
<li>NOC Technician / Network Operations</li>
|
<li>Platform Engineer</li>
|
||||||
<li>Linux Systems Administrator</li>
|
<li>Cloud Infrastructure Engineer</li>
|
||||||
<li>Technical Operations / IT Infrastructure</li>
|
<li>Site Reliability Engineer</li>
|
||||||
<li>Edge Systems / Field Technical Roles</li>
|
<li>Infrastructure Architect</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="resume-note">
|
<div class="resume-note">
|
||||||
<p>
|
<p>
|
||||||
Currently positioning around digital systems, infrastructure, and technical operations
|
Open to remote and hybrid roles where real infrastructure ownership and operational depth matter. I come from industrial systems and I bring that same zero downtime discipline to cloud native environments.
|
||||||
especially roles where hands-on problem solving and system integration matter more than certifications.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -569,20 +583,20 @@ rf_edge_systems</span>
|
|||||||
<h3>Currently Learning / Building Toward</h3>
|
<h3>Currently Learning / Building Toward</h3>
|
||||||
<div class="learning-grid">
|
<div class="learning-grid">
|
||||||
<div class="learning-item">
|
<div class="learning-item">
|
||||||
<span class="learning-icon">📈</span>
|
<span class="learning-icon">☸️</span>
|
||||||
<span>Grafana + Prometheus full observability stack</span>
|
<span>Advanced Kubernetes patterns including GitOps with FluxCD, Helm chart authoring, and ArgoCD</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="learning-item">
|
<div class="learning-item">
|
||||||
<span class="learning-icon">☸️</span>
|
<span class="learning-icon">🏗️</span>
|
||||||
<span>Kubernetes production patterns (GitOps, Helm, ArgoCD)</span>
|
<span>Terraform infrastructure as code for cloud provisioning and repeatable environment builds</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="learning-item">
|
<div class="learning-item">
|
||||||
<span class="learning-icon">🔐</span>
|
<span class="learning-icon">🔐</span>
|
||||||
<span>Network security and zero-trust architecture</span>
|
<span>Infrastructure security hardening and zero-trust network architecture</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="learning-item">
|
<div class="learning-item">
|
||||||
<span class="learning-icon">📡</span>
|
<span class="learning-icon">📊</span>
|
||||||
<span>Mobile APRS iGate deployment</span>
|
<span>OpenTelemetry integration and distributed tracing across the K3s cluster</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -598,7 +612,7 @@ rf_edge_systems</span>
|
|||||||
>
|
>
|
||||||
↓ Download Resume (PDF)
|
↓ Download Resume (PDF)
|
||||||
</a>
|
</a>
|
||||||
<span class="resume-download-note">Updated 2025 • PDF format</span>
|
<span class="resume-download-note">Updated 2026 • PDF format</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -612,7 +626,7 @@ rf_edge_systems</span>
|
|||||||
<p class="section-label">// github</p>
|
<p class="section-label">// github</p>
|
||||||
<h2>Pinned Repositories</h2>
|
<h2>Pinned Repositories</h2>
|
||||||
<p class="section-intro">
|
<p class="section-intro">
|
||||||
Active projects on GitHub — source code, configs, and documentation for everything I'm building.
|
Active projects on GitHub source code, configs, and documentation for everything I'm building.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -650,9 +664,10 @@ rf_edge_systems</span>
|
|||||||
<p class="section-label">// personal</p>
|
<p class="section-label">// personal</p>
|
||||||
<h2>Technical, curious, and always building</h2>
|
<h2>Technical, curious, and always building</h2>
|
||||||
<p>
|
<p>
|
||||||
Outside of work I'm into electronics, self-hosting, coding, drones, ham radio, and
|
Outside of work I'm into electronics, self-hosting, coding, drones, and ham radio.
|
||||||
hands-on projects that force me to learn something real. Ball pythons and dogs round
|
I'm a licensed amateur radio operator running a dual-node APRS RF iGate with a
|
||||||
out the home lab. That curiosity carries directly into how I build and document systems.
|
verified uplink on aprs.fi. Kobe the Boston Terrier keeps the home lab grounded.
|
||||||
|
That curiosity carries directly into how I build and document systems.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -678,10 +693,10 @@ rf_edge_systems</span>
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<h3>Open To</h3>
|
<h3>Open To</h3>
|
||||||
<ul class="clean-list">
|
<ul class="clean-list">
|
||||||
<li>Digital systems and infrastructure roles</li>
|
<li>DevOps Engineer and Platform Engineer roles</li>
|
||||||
<li>Networking and technical operations</li>
|
<li>Cloud Infrastructure and SRE positions</li>
|
||||||
<li>Automation and monitoring projects</li>
|
<li>Remote and hybrid opportunities</li>
|
||||||
<li>Hardware + software integration work</li>
|
<li>Consulting and infrastructure projects through Synthos Systems</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -700,4 +715,4 @@ rf_edge_systems</span>
|
|||||||
|
|
||||||
<script src="script.js"></script>
|
<script src="script.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+16
-21
@@ -8,18 +8,18 @@
|
|||||||
|
|
||||||
<meta
|
<meta
|
||||||
name="description"
|
name="description"
|
||||||
content="Ced's NOC — live network operations center dashboard showing real-time infrastructure health, service status, and edge system monitoring."
|
content="Ced's NOC — live network operations center dashboard showing real-time infrastructure health across 18 nodes and 28 services. Proxmox, K3s, TrueNAS, APRS edge systems."
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- Open Graph -->
|
<!-- Open Graph -->
|
||||||
<meta property="og:title" content="Ced's NOC | Live Systems Dashboard" />
|
<meta property="og:title" content="Ced's NOC | Live Systems Dashboard" />
|
||||||
<meta property="og:description" content="Live infrastructure visibility — Proxmox, K3s, TrueNAS, APRS edge systems." />
|
<meta property="og:description" content="Live infrastructure visibility — 18 nodes, 28 services. Proxmox, K3s, TrueNAS, APRS edge systems. Always running." />
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<meta property="og:url" content="https://noc.chasedumphord.com" />
|
<meta property="og:url" content="https://noc.chasedumphord.com" />
|
||||||
<meta property="og:image" content="https://chasedumphord.com/assets/images/noc-dashboard.png" />
|
<meta property="og:image" content="https://chasedumphord.com/assets/images/noc-dashboard.png" />
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
<meta name="twitter:title" content="Ced's NOC | Live Systems Dashboard" />
|
<meta name="twitter:title" content="Ced's NOC | Live Systems Dashboard" />
|
||||||
<meta name="twitter:description" content="Live infrastructure visibility — Proxmox, K3s, TrueNAS, APRS edge systems." />
|
<meta name="twitter:description" content="Live infrastructure visibility — 18 nodes, 28 services. Proxmox, K3s, TrueNAS, APRS edge systems. Always running." />
|
||||||
<meta name="twitter:image" content="https://chasedumphord.com/assets/images/noc-dashboard.png" />
|
<meta name="twitter:image" content="https://chasedumphord.com/assets/images/noc-dashboard.png" />
|
||||||
|
|
||||||
<!-- Favicons (path up one level since we're in /noc/) -->
|
<!-- Favicons (path up one level since we're in /noc/) -->
|
||||||
@@ -223,9 +223,9 @@
|
|||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p class="noc-page-lead">
|
<p class="noc-page-lead">
|
||||||
Real-time visibility into Ced's HomeLab infrastructure Proxmox, K3s,
|
Real time visibility into Ced's HomeLab infrastructure across 18 nodes and 28 services
|
||||||
TrueNAS, APRS RF edge systems, and self-hosted services.
|
Proxmox, K3s, TrueNAS, APRS RF edge systems, and self-hosted services.
|
||||||
Not simulated. Not a demo. Running hardware.
|
Built from the ground up and running in production every day. The infrastructure on this page is live. Not a demo.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul class="noc-page-meta">
|
<ul class="noc-page-meta">
|
||||||
@@ -296,7 +296,7 @@
|
|||||||
<!-- Fallback -->
|
<!-- Fallback -->
|
||||||
<div id="noc-fallback" class="noc-fallback" style="display:none;">
|
<div id="noc-fallback" class="noc-fallback" style="display:none;">
|
||||||
<p class="noc-fallback-msg">
|
<p class="noc-fallback-msg">
|
||||||
📡 NOC feed unavailable from this context systems run locally.<br/>
|
NOC feed unavailable from this context systems run locally.<br/>
|
||||||
Data updates when the local pipeline pushes a fresh noc-status.json.
|
Data updates when the local pipeline pushes a fresh noc-status.json.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -323,23 +323,23 @@
|
|||||||
<h3>Portfolio NOC</h3>
|
<h3>Portfolio NOC</h3>
|
||||||
<p>
|
<p>
|
||||||
JSON-driven dashboard showing real inventory, online/offline checks,
|
JSON-driven dashboard showing real inventory, online/offline checks,
|
||||||
service labels, latency, and last-check timestamps.
|
service labels, latency, and last check timestamps across 18 nodes and 28 services.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="noc-card">
|
<div class="noc-card">
|
||||||
<div class="noc-card-badge next">⚙️ Next</div>
|
<div class="noc-card-badge done">✅ Live</div>
|
||||||
<h3>Automated Data Updates</h3>
|
<h3>Automated Data Updates</h3>
|
||||||
<p>
|
<p>
|
||||||
Scheduled scripts auto-refresh system status and push dashboard-ready
|
Cron-driven scripts running on Biggie auto-refresh system status every 5 minutes
|
||||||
JSON on a cron interval — no manual updates.
|
and push dashboard ready JSON to GitHub Pages with no manual updates required.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="noc-card">
|
<div class="noc-card">
|
||||||
<div class="noc-card-badge done">✅ Live</div>
|
<div class="noc-card-badge done">✅ Live</div>
|
||||||
<h3>Grafana + Prometheus</h3>
|
<h3>Grafana + Prometheus</h3>
|
||||||
<p>
|
<p>
|
||||||
Full observability stack for Proxmox, TrueNAS, K3s, Raspberry Pi,
|
Full observability stack running across Proxmox, TrueNAS, K3s nodes, Uptime Kuma,
|
||||||
Uptime Kuma, and APRS edge systems with real-time metrics.
|
and APRS edge systems with real time metrics ingestion and live alerting pipelines.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -364,20 +364,15 @@
|
|||||||
<!-- NOC page extras — layer filter tabs + uptime pills -->
|
<!-- NOC page extras — layer filter tabs + uptime pills -->
|
||||||
<script>
|
<script>
|
||||||
// ── Layer filter tabs ──────────────────────────────────────────
|
// ── Layer filter tabs ──────────────────────────────────────────
|
||||||
// Populated after NOC data loads. Filters the system grid by layer.
|
|
||||||
let allSystems = [];
|
let allSystems = [];
|
||||||
let activeLayer = "all"; // Track active filter across refreshes
|
let activeLayer = "all";
|
||||||
|
|
||||||
const originalLoad = window.loadNocStatus;
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
// Hook into data after the shared script loads it
|
|
||||||
const observer = new MutationObserver(() => {
|
const observer = new MutationObserver(() => {
|
||||||
const cards = document.querySelectorAll(".noc-system-card");
|
const cards = document.querySelectorAll(".noc-system-card");
|
||||||
if (cards.length > 0) {
|
if (cards.length > 0) {
|
||||||
buildLayerTabs();
|
buildLayerTabs();
|
||||||
buildUptimePills();
|
buildUptimePills();
|
||||||
// Re-apply active filter after data refresh
|
|
||||||
reapplyFilter();
|
reapplyFilter();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -419,7 +414,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function filterByLayer(layer, activeBtn) {
|
function filterByLayer(layer, activeBtn) {
|
||||||
activeLayer = layer; // Persist across refreshes
|
activeLayer = layer;
|
||||||
document.querySelectorAll(".layer-tab").forEach(t => t.classList.remove("active"));
|
document.querySelectorAll(".layer-tab").forEach(t => t.classList.remove("active"));
|
||||||
activeBtn.classList.add("active");
|
activeBtn.classList.add("active");
|
||||||
|
|
||||||
@@ -459,4 +454,4 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user