Open-source, self-hosted dashboard builder for Home Assistant.
Drag-and-drop editing, Docker Compose (or Node) for the app, optional HACS integration for a sidebar panel and health sensors — no account, no cloud, no login.
| Piece | What it does |
|---|---|
| CasaBoard app | Self-hosted editor + live dashboards (Docker recommended) |
| HACS integration | Sidebar panel (iframe), online/page sensors, casaboard.refresh service |
Your layouts and Home Assistant credentials stay on your machine. Nothing phones home.
- A running Home Assistant instance (2024.6+ for the HACS integration)
- Docker + Docker Compose (for the recommended install)
- Optional: HACS to install the sidebar integration
git clone https://github.com/element-software/CasaBoard.git
cd CasaBoard
docker compose up -dOpen http://localhost:3000 (or http://<host-ip>:3000).
On first launch you connect to Home Assistant (URL + long-lived access token, or HA sign-in). After that, create a page and build in the drag-and-drop editor.
Dashboard data lives in ./data (bind-mounted into the container) — back that directory up.
Full walkthrough: casaboard.dev/docs
The integration does not replace the CasaBoard app — it bridges a running instance into Home Assistant.
- HACS → Integrations → ⋮ → Custom repositories
- Repository:
https://github.com/element-software/CasaBoard - Category: Integration
- Download CasaBoard, then restart Home Assistant
Or: Settings → Devices & services → Add integration → CasaBoard
Enter the base URL of your CasaBoard app, for example:
http://homeassistant.local:3000http://casaboard:3000(same Docker network as HA)http://192.168.x.x:3000
| Entity / feature | Meaning |
|---|---|
| Sidebar CasaBoard panel | Opens the app in an iframe (title/icon configurable in options) |
binary_sensor.casaboard_online |
CasaBoard /api/health is reachable |
sensor.casaboard_pages |
Total pages |
sensor.casaboard_ha_connection |
connected / disconnected (stored HA credentials in the app) |
casaboard.refresh |
Service to re-poll health (optional entry_id) |
Copy custom_components/casaboard into <config>/custom_components/casaboard, restart Home Assistant, then add the integration from the UI.
If you only want an iframe and no custom component:
# configuration.yaml
panel_iframe:
casaboard:
title: CasaBoard
icon: mdi:view-dashboard
url: http://homeassistant.local:3000Open any page in the CasaBoard app at /dashboard/<slug> (for example http://<host>:3000/dashboard/upstairs). Wall tablets and bookmarks should point at that URL.
| Variable | Default (Docker) | Purpose |
|---|---|---|
DATA_DIR |
/data |
JSON store (pages, sidebars, themes, HA connection) |
PORT |
3000 |
HTTP port |
No analytics or tracking in the app or the marketing site. No cookie consent banner — there is nothing to consent to. Your Home Assistant credentials and dashboard JSON never leave the server you run.
- Docs: casaboard.dev/docs
- Issues: GitHub Issues
- Email: support@casaboard.dev
Requirements: Node 18+, npm 10+. From the repo root:
npm install
npm run dev- App: http://localhost:3000
- Public site: http://localhost:3001
npm run build # all apps/packages
npm run lint
npm run check-types| Path | Role |
|---|---|
apps/app |
Dashboard builder (Next.js) — what the Docker image runs |
apps/public |
Documentation / marketing site (casaboard.dev) |
packages/ui |
Shared UI (HeroUI, icons, Puck editor) |
packages/lib |
Actions, services, flat-JSON persistence |
packages/ha |
Home Assistant websocket helpers (@casaboard/ha) |
custom_components/casaboard |
HACS integration (panel + sensors); brand assets in brand/ |
Integration-focused notes: hacs-panel/README.md.
MIT © CasaBoard
