diff --git a/index.html b/index.html
index 244299a..ffeb2ce 100644
--- a/index.html
+++ b/index.html
@@ -319,23 +319,23 @@
Portfolio NOC
JSON-driven dashboard showing real inventory, online/offline checks,
- service labels, latency, and last-check timestamps.
+ service labels, latency, and last-check timestamps across 28 systems.
+
+
+
+
✅ Live
+
Automated Data Pipeline
+
+ Python script on Biggie (Proxmox) pings 28 systems every 5 minutes,
+ writes structured JSON, and pushes to GitHub automatically via cron.
⚙️ Next
-
Automated Data Updates
-
- Scheduled scripts auto-refresh system status and push dashboard-ready
- JSON on a cron interval — no manual updates.
-
-
-
-
📈 Future
Grafana + Prometheus
Full observability stack for Proxmox, TrueNAS, K3s, Raspberry Pi,
- Uptime Kuma, and APRS edge systems with real-time metrics.
+ Uptime Kuma, and APRS edge systems with real-time metrics ingestion.
diff --git a/script.js b/script.js
index e1eb69a..a907d9a 100644
--- a/script.js
+++ b/script.js
@@ -35,7 +35,12 @@ async function loadNocStatus() {
try {
// Cache-bust to always get fresh data
- const res = await fetch(`https://chasedumphord.com/data/noc-status.json?t=${Date.now()}`);
+ // Use absolute URL when on NOC subdomain, relative when on main portfolio
+ const nocDataUrl = window.location.hostname === 'noc.chasedumphord.com'
+ ? `https://chasedumphord.com/data/noc-status.json?t=${Date.now()}`
+ : `data/noc-status.json?t=${Date.now()}`;
+
+ const res = await fetch(nocDataUrl);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
@@ -229,6 +234,8 @@ async function loadGithubRepos() {
}
}
}
+// Build the alert panel from system data
+function renderAlerts(systems, alertList) {
const scored = systems
.map((sys) => {
const sev = (sys.severity || "").toLowerCase();
@@ -268,4 +275,4 @@ async function loadGithubRepos() {
`;
}).join("");
-}
+}
\ No newline at end of file