Skip to guide
Deployment/Configure
Self-hosting reference

Workers & scheduled jobs

Keep document ingestion running, then enable Inngest for the background workflows that use it.

The worker is required for ingestion

The app accepts document work into a durable database outbox. The worker consumes it. Inngest is not required for that ingestion path, but stopping the worker leaves accepted work waiting.

Run app and worker with the same database, storage, provider configuration, and encryption keys. The worker exposes /healthz for liveness and /readyz for a bounded database readiness check.

Local Inngest

The base Docker stack runs an Inngest dev server registered against http://worker:8020/api/inngest. For host development, run the worker first and launch the CLI below. Configure INNGEST_DEV for the dev server's reachable origin.

Separate development terminal
pnpm --filter @launchstack/web inngest:dev

The serve endpoint belongs to the worker on port 8020, not the Next.js app on port 3000.

Production Inngest

The production overlay clears INNGEST_DEV and removes the dev server from the default stack. For workflows using Inngest, configure an event key and signing key, then register the worker's publicly reachable serve URL with your Inngest environment.

.env
INNGEST_EVENT_KEY=replace-with-your-event-key
INNGEST_SIGNING_KEY=replace-with-your-signing-key

The supplied Caddy route serves the worker at https://your-domain/api/inngest. Keep the signing key consistent with the registered Inngest environment.

Deployment Guide — Self-Host Launchstack | Launchstack