On-Prem Release Manifests
What the PacketSafari on-prem release manifest contains and how it is generated.
Every on-prem release is defined by a manifest with digest-pinned image references.
Generated from the app repo
Create a release from the app repo with:
cd /Users/otr/code/packetsafari
node scripts/release_packetsafari.mjs
The release helper builds and publishes:
frontendbackendsharkd
The manifest also includes worker, which reuses the backend image digest.
Manifest shape
The installer expects images to be a flat map of Docker image references:
{
"version": "10.0.1",
"gitTag": "v10.0.1",
"gitCommit": "<commit>",
"builtAt": "2026-03-12T12:00:00Z",
"configSchemaVersion": 1,
"requiredEnv": [
"PACKETSAFARI_AUTH_JWT_SECRET_KEY",
"REDIS_PASSWORD",
"PACKETSAFARI_CAPTURE_SHARKD_JWT_SECRET",
"SHARKD_JWT_SECRET",
"PACKETSAFARI_MAIL_SERVER",
"PACKETSAFARI_MAIL_PORT",
"PACKETSAFARI_MAIL_DEFAULT_SENDER",
"PACKETSAFARI_MAIL_USERNAME",
"PACKETSAFARI_MAIL_PASSWORD"
],
"images": {
"frontend": "registry.example.com/packetsafari/frontend@sha256:...",
"backend": "registry.example.com/packetsafari/backend@sha256:...",
"worker": "registry.example.com/packetsafari/backend@sha256:...",
"sharkd": "registry.example.com/packetsafari/sharkd@sha256:..."
}
}
The release helper also writes imageDetails for audit and troubleshooting, but the on-prem compose renderer consumes the plain values in images.
Required fields
For a release to be deployable, the target manifest must include:
versionimages.frontendimages.backendimages.workeror a backend image that can be reused for workerimages.sharkdimages.egress-dnsimages.egress-ironproxyimages.egress-firewall
The deployment status page checks both:
- whether the target manifest is structurally complete
- whether the current deployment has all required environment keys for that target release
If the admin UI shows the target as Blocked, fix the missing env keys or publish a complete manifest before upgrading.
