deploying-to-railway

📁 cpfiffer/central 📅 Feb 13, 2026
9
总安装量
9
周安装量
#31161
全站排名
安装命令
npx skills add https://github.com/cpfiffer/central --skill deploying-to-railway

Agent 安装分布

opencode 9
claude-code 9
github-copilot 9
codex 9
kimi-cli 9
gemini-cli 9

Skill 文档

Deploying to Railway

Guide for deploying Python services to Railway.

Prerequisites

# Install Railway CLI
npm install -g @railway/cli

# Login
railway login

Basic Workflow

1. Link Project

cd /path/to/service
railway link
# Select workspace and project (or create new)

2. Add PostgreSQL (if needed)

railway add
# Select: Database → Postgres

IMPORTANT: Standard Postgres does NOT have pgvector. For vector search:

3. Set Environment Variables

railway variables set KEY="value"

# Reference another service's variable:
railway variables set 'DATABASE_URL=${{Postgres.DATABASE_URL}}'
railway variables set 'DATABASE_URL=${{pgvector.DATABASE_URL}}'

4. Deploy

railway up --detach

5. Get Domain

railway domain
# Returns: https://service-production.up.railway.app

Multi-Service Pattern (API + Worker)

Deploy API Service

railway link  # Link to main service
railway up --detach

Add Worker Service

railway add --service worker
railway service link worker
railway variables set 'DATABASE_URL=${{pgvector.DATABASE_URL}}'
railway variables set OPENAI_API_KEY="$OPENAI_API_KEY"
# Set start command in dashboard or railway.toml
railway up --detach

Gotchas

  1. pgvector not available – Use pgvector template, not standard Postgres
  2. Interactive prompts – Some commands need interactive mode (run manually)
  3. Variable references – Use ${{ServiceName.VARIABLE}} syntax
  4. Dockerfile required – For custom Python services, include Dockerfile
  5. Procfile – Railway can use Procfile for multi-process apps

Useful Commands

railway status          # Current project/service
railway variables       # List environment variables
railway logs            # View service logs
railway service status  # Deployment status
railway redeploy --yes  # Force redeploy

Example Dockerfile

FROM python:3.11-slim

WORKDIR /app

RUN apt-get update && apt-get install -y libpq-dev gcc && rm -rf /var/lib/apt/lists/*

COPY pyproject.toml ./
COPY myapp/ ./myapp/

RUN pip install --no-cache-dir .

CMD ["gunicorn", "--bind", "0.0.0.0:8080", "--workers", "2", "myapp.app:app"]