Pi-Kit Dashboard

Lightweight dashboard for DietPi-based Pi-Kit images.

Whats here

  • pikit_api/ + pikit-api.py: Python HTTP API (status, services CRUD, auto-updates, diagnostics, factory reset), served on 127.0.0.1:4000.
  • pikit-web/: Vite static site served by nginx at /var/www/pikit-web/; source in pikit-web/assets/, Playwright E2E in pikit-web/tests/.
  • Release tooling: tools/release/make-release.sh builds a bundle tarball + manifest for OTA; changelogs live in out/releases/.

Local development

  • Frontend: cd pikit-web && npm install (once), npm run dev for live reload, npm test for Playwright, npm run build for production dist/.
  • API: python pikit-api.py runs the same routes locally (no auth) as on-device.

Deploy to a Pi-Kit box

  1. Copy pikit-api.py and the pikit_api/ directory to the device (e.g., /usr/local/bin/) and restart pikit-api.service.
  2. Sync pikit-web/dist/ (preferred) to /var/www/pikit-web/, then restart dietpi-dashboard-frontend.service.
  3. Using release bundles: ./tools/release/make-release.sh <version> <base_url>, upload the tarball + manifest, and point PIKIT_MANIFEST_URL (systemd drop-in) to that manifest URL for OTA.

Notes

  • Service paths are normalized (leading slash) and URLs include optional subpaths.
  • Firewall changes surface clear errors when ufw is missing so the UI can report failures.
  • Factory reset sets root and dietpi passwords to pikit.
  • Default UI: http://pikit.local/ (mDNS) unless HTTPS is enabled.
Description
No description provided
Readme 1.1 MiB
v0.1.2 Latest
2025-12-13 22:04:32 +00:00
Languages
JavaScript 39.3%
Python 25.5%
CSS 15.5%
HTML 14.8%
Shell 4.9%