Commit Graph
20 Commits
Author SHA1 Message Date
aziis98 8e9469dbda screenshots: updated with new blend modes 2026-08-02 16:41:59 +02:00
aziis98 fc6b25e0da ui: highlight plot point nearest the mouse in 2d 2026-08-02 16:04:49 +02:00
aziis98 57bd041229 ui: aggregate plot thinner lines, light blend darken, 0.25 opacity floor 2026-08-02 15:58:59 +02:00
aziis98 f619c9b106 screenshots: retake with aggregate plot blend modes 2026-08-02 02:20:41 +02:00
aziis98 ce18692ed8 ui: aggregate plot alpha falloff 1/sqrt(n) and theme blend modes
- opacity 1/sqrt(lineCount): isolated machine lines stay visible with many series
- blend overlapping lines with each other (isolation: isolate) using a per-theme
  --blend-overlap: multiply (light) / overlay (dark)
2026-08-02 02:19:48 +02:00
aziis98 c988ddf22f ui: uptime chip, #0004 shadows, tick marks, raw metrics; server: config meta injection
- ui: add uptime% chip (green >=99, red below) after ssh; remove "up" word
- ui: all shadows use #0004 shadow-color; modal shadow-lg derives from it
- ui: status modal draws a datetime tick mark every 20 history entries from the newest
- server: drop max_points/downsampling/bucketing; metrics served raw, plots share a ~24h window
- docs: fix ps --no-headers in top example; document raw metrics API
- server: inject <meta name=title/description> into index.html from config title + per-group host patterns (shared with --check recap)
2026-08-02 02:06:27 +02:00
aziis98 6ade221621 server: build status payload from expanded machines
StatusPayload was re-resolving grouped machines from the raw
cfg.Groups configs, so glob hosts like a3-dott{1..12} showed up as a
single machine with an unresolved pattern host and no probe state.
Iterate the expanded cfg.Machines once, bucketing by group.

Adds TestStatusPayloadExpandsGlobs regression test.
2026-08-02 00:51:28 +02:00
aziis98 726800a366 server: add --check flag to validate config and exit
Loads and expands the config, prints a per-group machine summary, and
exits without starting the server (no db, probes, or ports needed).
README flags table updated.
2026-08-02 00:43:00 +02:00
aziis98 41a01244c4 server: expand {a,b}/{1..10} host patterns in config; fuzz + tests
Hosts accept brace groups expanded at load time: enumeration {1,2,3},
inclusive ranges {2..5,8..10} with '..' syntax, and labels {a3,a4};
several groups multiply in cartesian fashion. Leading zeros are
preserved, each expanded machine gets its host as unique ID/name.

Malformed patterns (unmatched/nested braces, non-integer or descending
ranges, extra dots) and patterns expanding past 10000 machines fail at
startup. Adds table tests plus a FuzzExpandHostPattern target; the
safety cap keeps fuzzing and real configs from blowing up memory.
2026-08-01 11:27:59 +02:00
aziis98 22706aad66 docs: add isolated copy-paste ssh/metric examples to README and example.config.yaml 2026-08-01 04:20:11 +02:00
aziis98 143c8811e6 screenshots: transparent collage background, #0008 card shadows 2026-08-01 04:14:42 +02:00
aziis98 4d71433a6a ui: theme tokens split into light.css/dark.css linked via prefers-color-scheme; dark favicon variant; fix missing dark-mode tokens 2026-08-01 04:12:09 +02:00
aziis98 1f3e058484 screenshots: generate light/dark/collage in one run with mtime caching; collage 1080p 2026-08-01 03:56:44 +02:00
aziis98 a37f0a6752 ui: design-token theming, system/light/dark toggle via prefers-color-scheme media link, mobile layout 2026-08-01 03:56:44 +02:00
aziis98 a32c9ed615 security: FileServer static serving (path traversal fix), 5s refresh cooldown, dockerignore 2026-08-01 03:29:20 +02:00
aziis98 dea6447dd9 server: add --mock mode with generated data; scripts/generate-screenshot for README image 2026-08-01 03:07:52 +02:00
aziis98 031ca5eb0b ui: split app.tsx into modules; switch mono font to JetBrains Mono 2026-08-01 02:50:32 +02:00
aziis98 9d10298d97 compose: note NET_RAW cap for ICMP probe; drop Dockerfile syntax pin 2026-08-01 02:36:48 +02:00
aziis98 c562a816f9 server: env-driven config via dotenv; Dockerfile BuildKit cache mounts; db in data.volume 2026-08-01 02:32:01 +02:00
aziis98 95eab7f584 statuspage: monitor lab/home machines with a small status page
Go backend probes machines over ICMP/TCP, runs a configurable script over
SSH for checks and numeric metrics, and keeps history in SQLite. Preact +
Vite frontend shows machine groups, per-machine metric plots, and
cross-machine metric aggregates.

- server/: status, history, metrics, aggregate, refresh APIs
- src/: Preact + Vite frontend
- Single YAML config; documented example in example.config.yaml
- SQLite data stored under data.volume/ (bind-mounted in Docker)
- Multi-stage alpine Dockerfile with BuildKit cache mounts
- LICENSE: AGPL-3.0
2026-08-01 02:27:47 +02:00