Production deploy (Railway)
Where to run the app.
The app needs a host that runs a persistent Node process. Serverless platforms (Vercel and similar) do not work: chat, presence and call notices are delivered over Server-Sent Events with in-memory pub/sub, which requires a single long-lived process.
Just want to try it out?
To bring up a test instance with no cost and no domain of your own, go to Demo deploy (Render) β Render + Neon + LiveKit Cloud.
Railway
The Hobby plan (US$5/month, which becomes usage credit) covers an app + Postgres for a small to mid-sized community, usually landing between US$5-25/month.
Create an account at railway.com and connect GitHub (see GitHub repository if you do not have the fork yet).
New Project β Deploy from GitHub repo β select your OpenCall fork.


Add Postgres (see Database).

In the app service's Variables tab, paste every variable from Environment variables.
Settings β Networking β generate a domain (*.up.railway.app) or
connect one of your own.
Go back to the Discord Developer Portal and register the Redirect URI with that final domain.
Create the tables:
railway run pnpm prisma db pushThe build uses the repo's Dockerfile automatically on every push.
Alternative: the same VPS as the LiveKit self-host
If you already have a VPS from LiveKit self-host, the Caddy the installer configured can serve a second domain for Next.js on the same machine. In that setup you handle the process manager (pm2/systemd) and the deploys yourself β there is no automatic build on git push.
Reference cost
Next: Final check.