Lumen
v0.6.4 shipped · multi-arch (amd64 + arm64)

Homelab monitoring without the bloat.

Proxmox-native, HTTPS-only, HDD-friendly. Single Go binary for hub and agent. Comfortable on a Raspberry Pi, ready for a 200-host fleet.

MIT-licensed · No telemetry · No phone-home · Built in the open

See it running

A fleet view that fits on one screen. Deep host charts a click away. The same UI on your phone, dark or light.

Lumen dashboard — 8 hosts with CPU/RAM/disk sparklines, summary stats
Dashboard — fleet at a glance, hottest CPU/RAM/disk surfaced first
Lumen host detail — uPlot charts for CPU per-core, RAM, swap, disk, disk I/O, network, load, temperature, containers
Host detail — drag, resize, hide. 10 curated charts. Per-user layouts.
Lumen alerts — threshold rules and notification channels
Alerts — threshold rules, 5 channel types, per-rule routing.
Lumen settings — hosts list with token rotation
Settings — host tokens, runtime knobs, retention, API keys.
Lumen dashboard in light theme
Light theme — same data, daytime friendly.
Lumen mobile dashboard — installable PWA
Mobile web (PWA) — no native app to install, no app-store review.

Built for homelabs, not enterprises

Every feature serves one of three north-star wedges. No design-by-committee, no enterprise creep.

HTTPS-only push transport

Agents push outbound via HTTPS/WebSocket. Works behind any NAT, Cloudflare Tunnel, or Tailscale Funnel. No SSH keys, no inbound ports.

HDD-friendly storage

Batched 60s flush ring + WAL-tuned SQLite cuts fsync pressure ~100× at fleet scale. Won't grind a Pi's SD card to dust.

Mobile-ready PWA

Installable to your phone homescreen. App shell paints instantly on cold start. Realtime metrics via WebSocket, even on cellular.

One docker compose away

Spin up the hub in under a minute. Mint a host token from the UI, drop the generated per-agent compose file on the target machine, run docker compose up -d. Done.

  • Multi-arch: linux/amd64 + linux/arm64 images on ghcr.io
  • Works on Proxmox host, Pi 4/5, Ampere/Graviton VPS, NAS chips
  • Distroless image · ~25 MB compressed · <30 MB RAM idle
$ install hub
# Clone the repo
git clone https://github.com/quanla93/lumen
cd lumen

# Bring up the hub
docker compose -f deploy/docker/docker-compose.yml up -d

# Open the UI
open http://localhost:8090

What's in the box

Everything you need to operate a homelab fleet. Nothing you'd skip on the way out.

Realtime + history

WebSocket fan-out for live updates; SQLite-backed history with downsampled queries up to 7 days.

Per-host dashboard builder

Drag, resize, add, and hide charts on any host. Per-user, per-host layouts. Curated 10-chart catalog.

Alerts & notifications

Threshold rules, offline detection. ntfy, Discord, webhook, Telegram, Email (SMTP). Per-rule routing, flap cooldown, per-host silence.

Public Read API

/api/v1/* Bearer-key authenticated endpoints. Scopes, host-glob filter, per-key rate limit. Grafana datasource recipe in docs.

Personalization on the hub

Theme, language, units, reduce-motion, density. Per-user saved views. All synced across browsers.

Bilingual UI + docs

English and Vietnamese ship in both the web app and Starlight docs. Translation guide for adding more locales.

Docker collector

Live container CPU / RAM / state from the Engine API. Stdlib unix-socket client — no docker/docker SDK bloat.

Offline-tolerant agent

bbolt-backed durable queue replays on reconnect. Survives hub restarts, network blips, and 24h+ outages.

Auth without the headache

First-admin register flow. JWT (HS256, 30d). Argon2id password hashing. Per-host bearer tokens you can rotate.

Where Lumen is heading

Pre-1.0; breaking changes allowed in minor releases. v1.0 freezes the public API and ships a plugin SDK.

Shipped — v0.6.x
  • • MVP: hub, agent, realtime + history
  • • Alert engine end-to-end (5 channel types)
  • • Public Read API (v0.5.0)
  • • Personalization + dashboard builder (v0.6.0)
  • • Multi-arch images (v0.6.4)
Next — v0.7+
  • • Self-hosted SSO (OIDC first)
  • • Public status page (read-only share)
  • • Web Push notifications (VAPID)
  • • Parquet cold tier (gated on demand)
  • • First-run onboarding polish
Future — v1.0
  • • API freeze (/api/v1/*)
  • • Plugin SDK
  • • Beszel migration tool
  • • Proxmox-native (guests-as-hosts)
  • • Community security audit