Deploy to Railway
Why Railway?
- •Zero config deployments
- •Automatic HTTPS
- •Built-in databases
- •Environment management
- •Preview environments
Quick Start
bash
# Install CLI npm install -g @railway/cli # Login railway login # Initialize project railway init # Deploy railway up
Configuration
railway.json
json
{
"build": {
"builder": "NIXPACKS"
},
"deploy": {
"startCommand": "npm start",
"healthcheckPath": "/health",
"restartPolicyType": "ON_FAILURE"
}
}
Environment Variables
bash
# Set variable railway variables set DATABASE_URL=postgres://... # Set from file railway variables set < .env.production
Database Setup
bash
# Add PostgreSQL railway add --database postgres # Get connection URL railway variables get DATABASE_URL
Deployment Workflow
1. Connect Repo
bash
railway link
2. Configure Build
Railway auto-detects most frameworks. Override with:
bash
# Nixpacks (default) railway up # Dockerfile railway up --dockerfile
3. Set Domain
bash
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 logsfor debugging
Common Commands
bash
# View logs railway logs # Open dashboard railway open # Run command in environment railway run npm run migrate # List services railway status