mirror of
https://github.com/Dvorinka/Dash.git
synced 2026-10-28 07:41:27 +00:00
88a8210bf82542357ee4a8daaabd0617c77d6cdf
Nav and header wired as proof. Full string extraction deferred until a second locale exists; CONTRIBUTING records the convention. 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, no auth.
Features
- Service board — sections, drag-and-drop, multi-URL services, icon upload, four board renderers (Bento, Cards, Index, Console), dark/light themes
- Uptime monitors — HTTP, TCP, ping, DNS, keyword, JSON-path, and push checks on a schedule, with heartbeat history and uptime stats
- Domain watch — WHOIS/RDAP, DNS records, TLS certificate expiry, registrar and provider detection
- System monitoring — lightweight
dash-agentpushes CPU, memory, disk, network, load, temperatures, and Docker container state - Incidents & status pages — manual and automatic incidents, maintenance
windows, public
/status/:slugpages, SVG badges - Alerts — generic webhook notifications (Slack, Discord, ntfy compatible)
- Observability — Prometheus
/api/metrics, JSON export, CSV bulk import, importers for Homepage, Homarr, and Dashy configs
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%




