From 9f6cac10036b290627fd2004738e1c969d5c52f0 Mon Sep 17 00:00:00 2001 From: Blake Ridgway Date: Sat, 21 Mar 2026 18:00:32 -0500 Subject: [PATCH] Initial commit --- README.md | 55 +++++++++++++++++++++++++++++++++++++ todo.md | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 README.md create mode 100644 todo.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e2aad17 --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# arcline-status + +Static status page generator. Reads a YAML config and produces a single-file HTML status page — no database, no SaaS, no external dependencies. + +Designed to be self-hosted at `status.arclineit.com` and regenerated on a cron/systemd timer. + +## Status + +Planned. Not yet started. + +## Stack + +- Go — single static binary +- Config: YAML +- Output: static HTML with all CSS inlined (no asset dependencies) + +## Usage + +```sh +arcline-status build --config status.yaml --out ./public +arcline-status build --config status.yaml --out ./public --watch +arcline-status serve --config status.yaml --port 8080 +arcline-status validate --config status.yaml +``` + +## Config + +```yaml +site: + title: "Arcline Status" + domain: "status.arclineit.com" + +components: + - name: "Shared Hosting" + status: operational # operational | degraded | outage | maintenance + +incidents: + - title: "Brief network disruption" + status: resolved + severity: minor + started: "2026-02-28T14:00:00Z" + resolved: "2026-02-28T15:30:00Z" + updates: + - time: "2026-02-28T14:00:00Z" + body: "Investigating." + - time: "2026-02-28T15:30:00Z" + body: "Resolved. Root cause: upstream BGP flap." +``` + +## Output pages + +- `index.html` — current status, active incidents, upcoming maintenance +- `history.html` — past incidents (90-day window) + +See [todo.md](todo.md) for the full task list. diff --git a/todo.md b/todo.md new file mode 100644 index 0000000..66a1aed --- /dev/null +++ b/todo.md @@ -0,0 +1,82 @@ +# 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) +```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