~/arifin
GitHub ↗
~/arifin · Indonesia
WorkWritingAbout
GitHub ↗LinkedIn ↗Email
← work
2026·Solo build·oss

Astral

OSS ↗
backgroundMost server monitoring tools are either heavy daemons with external dependencies or basic CLI utilities with no history. Nothing lightweight and self-contained existed in between.
goalShip a single-binary monitoring dashboard with real-time SSE updates and historical charts — no runtime dependencies on the host.
outcomeAstral — a 7.1MB Rust + Svelte binary that launches in 1.53ms, runs on any Linux server, and needs nothing else installed.
RustSvelteSQLiteSSEDockerSingle BinaryMonitoring

I kept hitting the same problem when setting up small servers — I either had to install Prometheus + Grafana (heavy, complex, needs its own infrastructure) or I was stuck SSHing in and running top (fine, but no history, no dashboard). There was nothing in between: lightweight, self-contained, and actually usable as a web interface. So I built it.

The architecture constraint was the interesting part. I wanted a single binary — no Node.js runtime on the host, no Python, nothing pre-installed. That meant Rust for the backend and embedded Svelte for the frontend. The Svelte app is compiled at build time and baked into the Rust binary using include_bytes! macros, loading frontend assets directly from binary memory rather than the filesystem. For real-time updates I chose Server-Sent Events over WebSockets — simpler protocol, less overhead for one-directional server-to-browser data. Historical data goes into SQLite, also embedded, no external database needed.

Security was a design goal from the start, not an afterthought. The tool uses HMAC-SHA256 session tokens with per-login nonces, HttpOnly; SameSite=Strict cookies, Argon2 password hashing, login rate limiting, server-side session revocation, and a full set of security headers. A monitoring tool that exposes system metrics has to take access control seriously.

The benchmark numbers were a pleasant surprise: 7.1MB binary, 1.53ms launch time, 8.88MB peak memory. The result is a dashboard you can scp to any Linux server, run in seconds, and tear down when you're done. No installation ceremony, no leftover processes. Just a binary and a browser.

← all workwriting →
OSS ↗
RustSvelteSQLiteSSEDockerSingle BinaryMonitoring
← all workwriting →