Boards
the differentiatorOne board state. Four skins.
Bento, Cards, Index, and Console renderers share the same drag-drop, popovers, and state. Switching the look is a setting, not a migration. Try it - this demo is live.
Monitors
checks on a scheduleUptime that watches itself
HTTP, TCP, ping, DNS, keyword, JSON-path, and push checks on an in-process scheduler. Heartbeat history, latency graphs, and alert rules per monitor - down means you hear about it, not discover it.
Domains
rdap + whois + tlsEvery domain, accounted for
Expiry countdowns, TLS certificate chains, DNS records attributed to their provider, and CT-log subdomain discovery. Field-level history on every change.
Systems
push-based agentHosts that report in
A tiny dash-agent pushes CPU, memory, disk, network, temperatures, and per-container stats - SMART, ZFS, and GPU when the tooling exists. One binary per host, nothing else.
Status & alerts
public pages, real transportsTell users before they ask
Automatic incidents on monitor down, maintenance windows, public status pages, and SVG badges. Alerts dispatch through webhook, Slack, Discord, Telegram, Gotify, ntfy, or SMTP.
Stack
boring, on purposeIt needs a persistent scheduler, WHOIS on port 43, ICMP, and SMTP egress - none of which exist on serverless. So the deploy story is docker run, and this page is the only part of Dash hosted here.
Install
~1 min$ curl -fsSL https://raw.githubusercontent.com/ Dvorinka/Dash/main/install.sh | sh # installs into ./dash, serves :3000
$ docker run -d -v ./data:/data \
-p 3000:3000 \
ghcr.io/dvorinka/dash:latestEverything is configured from the UI at localhost:3000. All state lives in one directory. Importers for Homepage, Homarr, and Dashy configs are built in.
Run it in one command.
MIT licensed. Self-hosted. Yours.