Deployment
Build, migrate, and run in production.
railway.toml builds with keystone build --no-ui && next build and starts with npm run migrate && next start.
Provision
PostgreSQL, an S3-compatible bucket for listing media, and SMTP.
Configure
DATABASE_URL, SESSION_SECRET (32+ characters), the five S3_* values, NEXT_PUBLIC_APP_URL. Add SMTP_*, STRIPE_*, and PAYMENT_WEBHOOK_SIGNED_TEST_SECRET as needed. A development session secret is rejected in production.
Migrate and start
npm run migrate then npm start.
Webhooks
Point Stripe at /api/payment-webhooks/pp_stripe_stripe.
Outbox
npm run outbox:deliver runs the worker. Register a dispatcher in features/keystone/workers/outboxDispatchers.ts; until then runs report no_dispatcher.
See Getting started for every variable.