A lightweight, self-hosted dashboard to monitor and manage your containers, VMs, and services. Runs on 30-70 MB RAM - no agent, no external database, just a single binary.
Manage your entire homelab infrastructure without switching between a dozen tabs.
Start, stop, restart, and update containers. View CPU & RAM stats per container. Supports both CE and EE.
Monitor status and metrics. Start and stop virtual machines and containers directly from the dashboard.
Any entity as a widget with real-time updates and actions via WebSocket. Toggle lights, run scripts, and more.
View DNS query stats, blocked queries, and toggle filtering on or off - all from a single widget.
Active sessions, now playing, and progress tracking for your media servers.
Calendar view, download queue, and status for Sonarr, Radarr, Lidarr, and Prowlarr.
Transmission, qBittorrent, and JDownloader - add, pause, resume, search and sort your downloads.
Reolink cameras with embedded go2rtc. Live RTSP to WebRTC streaming, no extra service needed.
Embed any Grafana panel with a dashboard and panel picker. Seamless integration.
Monitor status, uptime percentage, and latency for all your services at a glance.
Weather forecasts, calendar events, RSS feeds, system stats, and stock tickers - all as widgets.
4 built-in themes, custom CSS editor, accent color picker. Kiosk mode, keyboard shortcuts, and PWA support.
English, French, Spanish, German, Portuguese, Italian, Dutch, Russian, Chinese, Japanese, and Arabic with RTL.
Admin, editor, and viewer roles with invitation system. Optional TOTP two-factor authentication.
Push alerts via Gotify, ntfy, or Apprise. Incoming webhooks with HMAC validation.
A clean, responsive interface that adapts to any screen size.
Downloads - coming soon
Infrastructure - coming soon
Edit mode - coming soon
Settings - coming soon
A lean stack with no bloat - every byte of RAM is accounted for.
| Component | Technology | RAM |
|---|---|---|
| Backend | Go (Chi router) | ~20-30 MB |
| Frontend | Svelte 5 (static, embedded) | 0 MB server-side |
| Streaming | go2rtc (embedded) | ~30-40 MB |
| Database | SQLite (WAL mode) | Included |
| Desktop | Tauri | Native |
┌──────────────────────────────────────────────┐
│ Nidus Container │
│ Go backend + Svelte frontend + SQLite │
│ + embedded go2rtc │
└──────────────────┬───────────────────────────┘
│
┌──────────┬───┼───────┬──────────┐
│ │ │ │ │
Portainer Proxmox Services Reolink
API API (HA, AdGuard, cameras
(CE/EE) Pi-hole, → go2rtc
*arr, etc.) (WebRTC)
Choose your preferred deployment method - all include the full stack.
Recommended for servers
services:
nidus:
image: ghcr.io/tdebuilt/nidus-dashboard:latest
ports:
- "3777:3777"
volumes:
- ./data:/data
restart: unless-stopped
Then run docker compose up -d
No Docker needed - single file with embedded go2rtc
Extract, run chmod +x nidus-*, then ./nidus-*
Native window via Tauri - full stack embedded
Install and launch - no terminal needed
Open http://localhost:3777 - the setup wizard will guide you through configuration.
Built to fill the gap between heavyweight dashboards and bookmark pages.
| Solution | Docker Control | Proxmox | RAM Usage | Widgets | i18n |
|---|---|---|---|---|---|
| Nidus | ✔ Full (via Portainer) | ✔ Yes | 30-70 MB | 19+ | ✔ 11 languages + RTL |
| Homarr | ✔ Yes | ✘ No | ~600 MB+ | 15+ | ✔ ~20 languages |
| Homepage | ✘ Read-only | ✘ Read-only | ~50 MB | 20+ | ✘ No |
| Heimdall | ✘ No | ✘ No | ~80 MB | Bookmarks | ✘ No |
| Dashy | ✘ No | ✘ No | ~100 MB | Status checks | ✔ ~10 languages |
| Portainer | ✔ Full | ✘ No | ~200 MB | Docker only | ✔ ~15 languages |