83 lines
2.7 KiB
Markdown
83 lines
2.7 KiB
Markdown
# 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
|