- A Bun application ready for deployment
- A Railway account
- A GitHub account (for dashboard deployments) or the Railway CLI
Method 1: Deploy via CLI
1
Install the Railway CLI
2
Log in
3
Initialize a new project
Run this from your project directory:
4
Add a database (optional)
If your app uses PostgreSQL, add it before deploying:
Skip this step if your application does not need a database.
5
Deploy and expose a public domain
Method 2: Deploy via Dashboard
1
Create a new project
- Go to the Railway Dashboard.
- Click + New → GitHub repo.
- Authorize Railway and select your repository.
2
Add a database (optional)
- In the project canvas, click + New → Database → Add PostgreSQL.
- Select your app service (not the database).
- Go to the Variables tab.
- Click + New Variable → Add Reference and select
DATABASE_URLfrom the Postgres service.
Skip this step if your application does not need a database.
3
Generate a public domain
- Select your app service.
- Go to the Settings tab.
- Under Networking, click Generate Domain.
Configuration
By default, Railway uses Nixpacks to auto-detect and build your Bun project with zero configuration. For better Bun support and guaranteed compatibility with the latest Bun versions, use Railpack instead. Create arailway.json in your project root:
railway.json
Custom start command
To override the default start command, set it in the Railway dashboard under Settings → Deploy → Start command, or add it torailway.json:
railway.json
Environment variables
Set environment variables in the Railway dashboard under your service’s Variables tab. They are injected intoprocess.env at runtime: