2.7 KiB
2.7 KiB
arcline-status — Static Status Page Generator
A Go binary that reads a YAML config and generates a static HTML status page. No database, no SaaS, no external dependencies. Customers self-host at status.yourdomain.com.
Stack
- Language: Go
- Output: static HTML (single file or directory)
- Config: YAML
- Optional: cron job or systemd timer for auto-regeneration
Config format (status.yaml)
site:
title: "Arcline Status"
domain: "status.arclineit.com"
logo: "[arcline]"
components:
- name: "Shared Hosting"
status: operational # operational | degraded | outage | maintenance
- name: "VPS Hosting"
status: operational
- name: "Control Panel"
status: operational
- name: "DNS / Nameservers"
status: operational
- name: "SSL Provisioning"
status: operational
- name: "Network"
status: operational
incidents:
- id: 1
title: "Brief network disruption"
status: resolved # investigating | identified | monitoring | resolved
severity: minor # minor | major | critical
started: "2026-02-28T14:00:00Z"
resolved: "2026-02-28T15:30:00Z"
updates:
- time: "2026-02-28T14:00:00Z"
body: "Investigating reports of connectivity issues."
- time: "2026-02-28T15:30:00Z"
body: "Issue resolved. Root cause: upstream BGP flap."
maintenance:
- title: "NVMe storage upgrade"
status: scheduled
starts: "2026-03-10T02:00:00Z"
ends: "2026-03-10T04:00:00Z"
body: "Brief VPS downtime expected during storage migration."
Output
index.html— current status (all components, active incidents, upcoming maintenance)history.html— past incidents (90-day window)- Arcline terminal aesthetic (matches brand CSS)
- Embeds all CSS/JS inline — truly single-file, no asset dependencies
CLI interface
arcline-status build --config status.yaml --out ./public
arcline-status build --config status.yaml --out ./public --watch # rebuild on config change
arcline-status serve --config status.yaml --port 8080 # dev server
arcline-status validate --config status.yaml # lint config
Tasks
- Project scaffold
- YAML config parser + validator
- HTML template (Go text/template, embed Arcline CSS inline)
- Component status renderer (operational/degraded/outage/maintenance badges)
- Active incident renderer
- Maintenance banner renderer
- History page (filter resolved incidents)
- --watch mode (fsnotify)
- Dev serve mode (net/http)
- validate subcommand
- Single-file output (inline all CSS)
- README with self-hosting guide (nginx config snippet)
- Example status.yaml
- Cross-compile Makefile