OpenCall

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.

Railway new project menu with GitHub Repository highlighted

GitHub repository list to pick from

Add Postgres (see Database).

Database picker menu with PostgreSQL highlighted

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 push

The 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.

On this page