Deploy to Railway
Use the root Dockerfile: dynamic campaigns need Node and production dependencies alongside the Go executable.
- Provision PostgreSQL and set
DATABASE_URLon the web and worker services. - Set the variables from Configuration on both services.
- On web, run
/app/app migratebefore deployment, use/upfor the healthcheck, and setQUEUE_IN_SERVE=false. - On worker, start
/app/app queue:workwithout a public domain. - Add
email.hexascore.appto the web service and create the CNAME and ownership TXT records requested by Railway.
email.vukem.dev serves the Next.js documentation from site/. The dashboard uses https://email.hexascore.app as APP_URL and https://email.hexascore.app/auth/google/callback as its OAuth callback. The Hexascore public subscription page is https://email.hexascore.app/subscribe. Other projects can use their own domains.
Do not use SQLite in production without a persistent volume. Migrations must finish before the new web and worker versions receive traffic.