43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
# 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 <version> <base_download_url>
|
||
# 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-<version>.tar.gz`
|
||
- `manifest.json` with the SHA256 of the bundle and the download URL.
|
||
|
||
## Publish
|
||
1) Create a release in Gitea for tag `v<version>`.
|
||
2) Upload both `pikit-<version>.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` + `pikit_api/` package
|
||
- 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/<timestamp>/` before deployment.
|