Source Code
Railway
Deploy and manage applications on Railway.app - a modern cloud platform with zero-config deployments.
Authentication
# Login (opens browser)
railway login
# Login with token (CI/CD)
railway login --token <TOKEN>
# Check login status
railway whoami
# Logout
railway logout
Project Management
Link & Initialize
# Link current directory to existing project
railway link
# Link to specific project
railway link --project <PROJECT_ID>
# Create new project
railway init
# Unlink project
railway unlink
View Projects
# List all projects
railway list
# Open project in browser
railway open
# Show project status
railway status
Deployment
Deploy
# Deploy current directory
railway up
# Deploy without watching logs
railway up --detach
# Deploy specific service
railway up --service <SERVICE_NAME>
# Deploy to specific environment
railway up --environment production
# Redeploy latest version
railway redeploy
# Redeploy specific service
railway redeploy --service <SERVICE_NAME>
Deploy from Template
# Deploy a template
railway deploy --template <TEMPLATE_NAME>
# With variables
railway deploy --template postgres --variable POSTGRES_USER=myuser
Services
# List services in project
railway service
# Create new service
railway service create
# Delete service
railway service delete <SERVICE_NAME>
Environment Variables
# List all variables
railway variables
# Set variable
railway variables set KEY=value
# Set multiple variables
railway variables set KEY1=value1 KEY2=value2
# Delete variable
railway variables delete KEY
# View specific variable
railway variables get KEY
Logs
# View logs (live)
railway logs
# View logs for specific service
railway logs --service <SERVICE_NAME>
# View recent logs (not live)
railway logs --no-follow
# View logs with timestamps
railway logs --timestamps
Run Commands
# Run command with Railway env vars
railway run <command>
# Examples
railway run npm start
railway run python manage.py migrate
railway run prisma db push
# SSH into running service
railway ssh
# SSH into specific service
railway ssh --service <SERVICE_NAME>
Domains
# List domains
railway domain
# Add custom domain
railway domain add <DOMAIN>
# Remove domain
railway domain delete <DOMAIN>
Databases
Railway supports one-click database provisioning:
# Add PostgreSQL
railway add --plugin postgresql
# Add MySQL
railway add --plugin mysql
# Add Redis
railway add --plugin redis
# Add MongoDB
railway add --plugin mongodb
Database connection strings are automatically added to environment variables.
Environments
# List environments
railway environment
# Switch environment
railway environment <ENV_NAME>
# Create environment
railway environment create <ENV_NAME>
# Delete environment
railway environment delete <ENV_NAME>
Volumes
# List volumes
railway volume
# Create volume
railway volume create --mount /data
# Delete volume
railway volume delete <VOLUME_ID>
Common Workflows
Deploy a New Project
# 1. Initialize in your project directory
cd my-app
railway init
# 2. Add a database if needed
railway add --plugin postgresql
# 3. Set environment variables
railway variables set NODE_ENV=production
# 4. Deploy
railway up
Connect to Production Database
# Run local command with production env vars
railway run psql $DATABASE_URL
# Or use SSH
railway ssh
# Then inside container:
psql $DATABASE_URL
View Deployment Status
# Check status
railway status
# View logs
railway logs
# Open dashboard
railway open
Rollback Deployment
# View deployments in dashboard
railway open
# Redeploy previous version (via dashboard)
# Or redeploy current code
railway redeploy
CI/CD Integration
For GitHub Actions or other CI:
# .github/workflows/deploy.yml
name: Deploy to Railway
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Railway CLI
run: npm i -g @railway/cli
- name: Deploy
run: railway up --detach
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}