Deploy to Railway
Why Railway?
-
Zero config deployments
-
Automatic HTTPS
-
Built-in databases
-
Environment management
-
Preview environments
Quick Start
Install CLI
npm install -g @railway/cli
Login
railway login
Initialize project
railway init
Deploy
railway up
Configuration
railway.json
{ "build": { "builder": "NIXPACKS" }, "deploy": { "startCommand": "npm start", "healthcheckPath": "/health", "restartPolicyType": "ON_FAILURE" } }
Environment Variables
Set variable
railway variables set DATABASE_URL=postgres://...
Set from file
railway variables set < .env.production
Database Setup
Add PostgreSQL
railway add --database postgres
Get connection URL
railway variables get DATABASE_URL
Deployment Workflow
- Connect Repo
railway link
- Configure Build
Railway auto-detects most frameworks. Override with:
Nixpacks (default)
railway up
Dockerfile
railway up --dockerfile
- Set Domain
railway domain
Best Practices
-
Use Preview Environments: Test PRs before merge
-
Separate Databases: Different DB per environment
-
Use Variables: Never hardcode secrets
-
Health Checks: Enable for reliability
-
Logs: Use railway logs for debugging
Common Commands
View logs
railway logs
Open dashboard
railway open
Run command in environment
railway run npm run migrate
List services
railway status