mirror of
https://github.com/Dvorinka/Dash.git
synced 2026-10-28 07:41:27 +00:00
54b5497121eb1f2cd902a15d970dedb20139cd16
- CHANGELOG 2.0.0 entry covering all Phase 5 waves - configuration.md: transports, per-monitor alert rules, auth, boards, appearance/language, PWA - announcement.md: updated for shipped features and opt-in auth - AGENTS.md: "no auth" line was stale - ROADMAP: tick shipped M1–M3 planning checkboxes Authored By: TDvorak <[email protected]> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Dash
A self-hosted homelab dashboard. CasaOS-grade ease of use, Vercel-grade design. Single container, UI-managed, no YAML. Optional auth.
Features
- Service board — multiple boards, sections, drag-and-drop, multi-URL services, icon upload, four renderers (Bento, Cards, Index, Console), dark/light themes, custom accent/wallpaper/CSS
- Uptime monitors — HTTP, TCP, ping, DNS, keyword, JSON-path, and push checks on a schedule, heartbeat history, uptime graphs, per-monitor alert rules
- Domain watch — WHOIS/RDAP, DNS records, TLS certificate expiry, registrar and provider detection, CT-log subdomain discovery
- System monitoring — lightweight
dash-agentpushes CPU, memory, disk, network, load, temperatures, per-container stats, and SMART/ZFS/GPU when available - Incidents & status pages — manual and automatic incidents, maintenance
windows, public
/status/:slugpages, SVG badges - Alerts — webhook, Slack, Discord, Telegram, Gotify, ntfy, and SMTP transports
- Observability — Prometheus
/api/metrics, JSON export, CSV bulk import, importers for Homepage, Homarr, and Dashy configs - Optional auth — local username/password with bcrypt + session cookies, off by default; public status pages stay open either way
- i18n + PWA — English and Czech UI, installable manifest/service worker
Run
docker run -d -v ./data:/data -p 3000:3000 ghcr.io/dvorinka/dash:latest
or with compose:
services:
dash:
image: ghcr.io/dvorinka/dash:latest
ports:
- "3000:3000"
volumes:
- ./data:/data
restart: unless-stopped
Then open http://localhost:3000. Everything is configured from the UI.
System agent
Monitor a Linux host: create a system in the UI, copy the token, then:
dash-agent -url http://dash:3000 -token <token>
One static binary, no dependencies. See docs/installation.md for systemd and Docker setups.
Screenshots
![]() |
![]() |
![]() |
![]() |
Docs
Develop
Requires Go 1.24+ and Node 20+.
npm install # workspaces: frontend + api-client
npm run generate # regenerate TS client from openapi.yaml
npm run dev # vite dev on :5173, proxies /api to :8080
In another shell:
cd apps/backend
DASH_DEV=1 go run ./cmd/dash # API on :8080 (DASH_DEV skips embedded UI)
Stack
Go + Gin + SQLite (single static binary, embeds the frontend) · React 18 + Vite + TS strict + Tailwind + shadcn/ui + dnd-kit · OpenAPI-generated client.
License
Languages
TypeScript
49.1%
Go
37.1%
HTML
12.2%
CSS
0.8%
Shell
0.4%
Other
0.4%




