Requirements
What to have at hand before provisioning.
Only doing a demo?
The list below is the production path. For a free test instance the accounts are different (Render, Neon, LiveKit Cloud): see Demo deploy (Render).
Accounts to create
- GitHub β free, for your own fork of the OpenCall repository. Railway and Render pull the code from there and redeploy on every push (see GitHub repository)
- Discord β an account of your own, to create the OAuth App
- A Next.js host β Railway (recommended), the same VPS as the LiveKit self-host, or any host that runs a persistent Node process. Serverless platforms do not work (see Production deploy (Railway))
- Postgres β the Railway addon covers it if you are already on Railway; otherwise any managed Postgres (Neon has a permanent free plan, no card)
- LiveKit β a LiveKit Cloud account, or a VPS to self-host on
- Cloudflare β for the R2 bucket that stores chat images. Optional: without it the app runs, just without image attachments. R2 asks for a payment method to enable even on the free tier, where it charges US$ 0 (see Attachment storage β on the demo path, Neon Object Storage replaces it with no card)
Also have at hand
- A domain, if you are self-hosting LiveKit (it needs TLS) or want your own domain for the app
opensslon your machine, to generateNEXTAUTH_SECRET
Before you start
Some steps in this documentation are typed into a terminal β a window where you type commands instead of clicking. You do not need to know it well; every command can be copied as-is.
- macOS: press
Cmd + Space, typeTerminaland press Enter. - Windows: press the Start button, type
PowerShelland open Windows PowerShell.
Every command block has a macOS and a Windows tab. Pick your system once and the pages keep that choice for the rest of the commands.
You also need Node.js installed (it is what provides the npm command).
Check whether you already have it:
node --versionIf it prints a version (e.g. v22.14.0), you are set. If it says the command
was not found, install it from nodejs.org and open the
terminal again.
Next step
The complete list of variables is in Environment variables.