Pi-Kit Dashboard
Lightweight dashboard for DietPi-based Pi-Kit images.
What’s 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 inpikit-web/assets/, Playwright E2E inpikit-web/tests/.- Release tooling:
tools/release/make-release.shbuilds a bundle tarball + manifest for OTA; changelogs live inout/releases/.
Local development
- Frontend:
cd pikit-web && npm install(once),npm run devfor live reload,npm testfor Playwright,npm run buildfor productiondist/. - API:
python pikit-api.pyruns the same routes locally (no auth) as on-device.
Build, package, and publish a release
- Bump
pikit-web/data/version.jsonto the target version (e.g.,0.1.3-dev1), thencd pikit-web && npm run build. - Package:
./tools/release/make-release.sh <version> https://git.44r0n.cc/44r0n7/pi-kit/releases/download/v<version>
Outputs inout/releases/:pikit-<version>.tar.gzandmanifest.json(with SHA256 + changelog URL). - Create a Gitea release/tag
v<version>and upload:pikit-<version>.tar.gzmanifest.jsonCHANGELOG-<version>.txt(add a short changelog inout/releases/)
- Update repo manifests (public raw defaults used by devices): edit
manifests/manifest-stable.jsonandmanifests/manifest-dev.jsonwithversion,bundle,changelog,_release_date,sha256from the new bundle, then commit/push.- Default OTA URLs (no token needed):
- Stable:
https://git.44r0n.cc/44r0n7/pi-kit/raw/branch/main/manifests/manifest-stable.json - Dev:
https://git.44r0n.cc/44r0n7/pi-kit/raw/branch/main/manifests/manifest-dev.json
- Stable:
- Default OTA URLs (no token needed):
Deploy to a Pi-Kit box
- Copy
pikit-api.pyand thepikit_api/directory to the device (e.g.,/usr/local/bin/) and restartpikit-api.service. - Sync
pikit-web/dist/(preferred) to/var/www/pikit-web/, then restartdietpi-dashboard-frontend.service. - OTA defaults (no per-device token required):
PIKIT_MANIFEST_URLpoints to the stable manifest above; enabling “Allow dev builds” in the UI makes the updater consult the dev manifest URL. Override via systemd drop-in if you need to pin to a specific manifest.
Notes
- Service paths are normalized (leading slash) and URLs include optional subpaths.
- Firewall changes surface clear errors when
ufwis missing so the UI can report failures. - Factory reset sets
rootanddietpipasswords topikit. - Default UI:
http://pikit.local/(mDNS) unless HTTPS is enabled.
Description
v0.1.2
Latest
Languages
JavaScript
39.3%
Python
25.5%
CSS
15.5%
HTML
14.8%
Shell
4.9%