You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parent map: #973. Self-hosted Cloud is a 1.0 audience: web + worker + Inngest + Redis + Postgres + own GitHub apps (decided). Decide: the shipped compose file (one image, two commands, or two images); whether migrations run on boot or by an explicit command; how the image is tagged per release and where the tag is derived from; the documented env contract and its home (README vs a generated reference); the worker readiness contract for compose users; what a self-hoster must create on GitHub (OAuth app + GitHub App) and how that's walked through (/wizard candidate).
Agreed with Nick on 2026-09-23: all five proposed defaults accepted.
One release image, two runtime commands. Publish ghcr.io/getployz/ployz-cloud and ship production Docker Compose for separate web and worker containers plus Inngest, Redis, and Postgres. Web and worker use the same image, with npm start and npm run start:worker respectively. Compose here packages Cloud; it does not restore Compose authoring in Core.
Explicit migrations. The operator runs the image's one-shot migration command (npm run db:migrate) once before starting/upgrading web and worker. Neither runtime process migrates independently on boot. The released image includes the migration runner and SQL.
Release-derived image tags. Use the exact release Git tag as the image tag, and pin the released Compose configuration to that version. Cloud has no independent version number. The first stable/beta tag spelling remains owned by Version number and tag semantics for the first stable release.
Worker readiness and shutdown. Keep /ready: HTTP 200 while the Inngest Connect connection is ACTIVE, HTTP 503 otherwise. Configure the worker's Compose healthcheck against it and retain a 30-minute stop_grace_period. This is connection readiness, not a database/schema/GitHub check or proof an end-to-end deployment will succeed.
Handwritten operator documentation.dashboard/README.md is the self-host setup and environment-contract home; .env.example supplies the matching input template. No generated reference or setup wizard is required for v1. Document required database/app URL/auth and encryption secrets, GitHub OAuth and App credentials, Inngest keys and self-host API/gateway wiring. Follow the already-resolved billing decision: Self-hosted Cloud omits all Polar configuration. Relay, Hosted DNS, installer and release binaries remain shared Ployz infrastructure.
GitHub walkthrough implementation notes
The README walks the operator through creating their own OAuth App for sign-in and GitHub App for repository access, with copy/paste callback/webhook URLs, permissions, events, and credential destinations. Configure and start Cloud, sign in with GitHub, then install the GitHub App using that linked GitHub user: current installation-webhook processing requires a linked account.
Handoff
Ship the Self-hosted Cloud release image implements this contract. This resolution settles packaging; it does not claim the production Compose/image release path is already delivered.
Manifest-assisted GitHub App registration during minimal onboarding is a post-v1 candidate, raised separately after agreement. It does not change the v1 README-based setup decision; its scope is not yet agreed.
Activity
nick-potts commentedon Sep 23, 2026
Resolution
Agreed with Nick on 2026-09-23: all five proposed defaults accepted.
ghcr.io/getployz/ployz-cloudand ship production Docker Compose for separate web and worker containers plus Inngest, Redis, and Postgres. Web and worker use the same image, withnpm startandnpm run start:workerrespectively. Compose here packages Cloud; it does not restore Compose authoring in Core.npm run db:migrate) once before starting/upgrading web and worker. Neither runtime process migrates independently on boot. The released image includes the migration runner and SQL./ready: HTTP 200 while the Inngest Connect connection is ACTIVE, HTTP 503 otherwise. Configure the worker's Compose healthcheck against it and retain a 30-minutestop_grace_period. This is connection readiness, not a database/schema/GitHub check or proof an end-to-end deployment will succeed.dashboard/README.mdis the self-host setup and environment-contract home;.env.examplesupplies the matching input template. No generated reference or setup wizard is required for v1. Document required database/app URL/auth and encryption secrets, GitHub OAuth and App credentials, Inngest keys and self-host API/gateway wiring. Follow the already-resolved billing decision: Self-hosted Cloud omits all Polar configuration. Relay, Hosted DNS, installer and release binaries remain shared Ployz infrastructure.GitHub walkthrough implementation notes
The README walks the operator through creating their own OAuth App for sign-in and GitHub App for repository access, with copy/paste callback/webhook URLs, permissions, events, and credential destinations. Configure and start Cloud, sign in with GitHub, then install the GitHub App using that linked GitHub user: current installation-webhook processing requires a linked account.
Handoff
Ship the Self-hosted Cloud release image implements this contract. This resolution settles packaging; it does not claim the production Compose/image release path is already delivered.
Manifest-assisted GitHub App registration during minimal onboarding is a post-v1 candidate, raised separately after agreement. It does not change the v1 README-based setup decision; its scope is not yet agreed.