# Release packaging quickstart ## Prereqs - Node build already run (pikit-web built) if you want production assets. Dev assets also work but will be larger. - `tar`, `sha256sum`, `rsync` available (default on DietPi/Debian). ## Build a release bundle ```bash ./tools/release/make-release.sh # example ./tools/release/make-release.sh 0.1.0 https://git.44r0n.cc/44r0n7/pi-kit/releases/download/v0.1.0 ``` Outputs (in `out/releases/`): - `pikit-.tar.gz` - `manifest.json` with the SHA256 of the bundle and the download URL. ## Publish 1) Create a release in Gitea for tag `v`. 2) Upload both `pikit-.tar.gz` and `manifest.json` as release assets. 3) Ensure the base download URL in the manifest matches where the bundle is hosted. ## Device configuration (optional override) The API uses `PIKIT_MANIFEST_URL` to fetch `manifest.json`. Default: ``` https://git.44r0n.cc/44r0n7/pi-kit/releases/latest/download/manifest.json ``` Set an override in the environment or a systemd drop-in for `pikit-api.service`: ``` [Service] Environment=PIKIT_MANIFEST_URL=https://git.44r0n.cc/44r0n7/pi-kit/releases/download/v0.1.0/manifest.json ``` ## What’s inside the bundle - `pikit-web/` (built static assets) - `pikit-api.py` - optional helper scripts (e.g., `set_ready.sh`, `start-codex.sh`, `pikit-services.json` if present) ## Notes - The updater verifies the bundle SHA256 from `manifest.json` before installing. - Backups of current web/api are stored in `/var/backups/pikit//` before deployment.