# Pi-Kit Dashboard Lightweight dashboard for DietPi-based Pi-Kit images. Two pieces live in this repo: - `pikit-api.py`: tiny Python HTTP API (status, services, auto updates, factory reset). Runs on localhost:4000 and writes to `/etc/pikit/services.json`. - `pikit-web/`: static Vite site served by nginx from `/var/www/pikit-web`. Sources live in `pikit-web/assets/`; Playwright E2E tests in `pikit-web/tests/`. ## Local development - Dashboard: `cd pikit-web && npm install` (first run), then `npm run dev` for Vite, `npm test` for Playwright, `npm run build` for production bundle. - API: `python pikit-api.py` to run locally (listens on 127.0.0.1:4000). ## Deploying to a Pi-Kit box 1. Copy `pikit-api.py` to the device (e.g., `/usr/local/bin/`) and restart the service unit that wraps it. 2. Sync `pikit-web/index.html` and `pikit-web/assets/*` (or the built `pikit-web/dist/*`) to `/var/www/pikit-web/`. 3. The API surfaces clear errors if firewall tooling (`ufw`) is missing when ports are opened/closed. 4. Factory reset sets `root` and `dietpi` passwords to `pikit`. ## Notes - Service paths are normalized (leading slash) and URLs include optional subpaths. - Firewall changes raise explicit errors when `ufw` is unavailable so the UI can surface what failed. - Access the device UI at `http://pikit.local/` (mDNS).