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¶
1. Connect Repo¶
2. Configure Build¶
Railway auto-detects most frameworks. Override with:
3. Set 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 logsfor debugging