Skip to main content

Overview

Railway is a cloud platform that deploys from a GitHub repo or Docker image. Polpo runs as a single service with a persistent volume for state.

Deploy from GitHub

  1. Fork the repo Fork lumea-labs/polpo to your GitHub account.
  2. Create a new project on Railway Go to railway.com/new and select Deploy from GitHub repo. Pick your fork.
  3. Set environment variables In the service settings, add:
    ANTHROPIC_API_KEY=sk-ant-...
    
    Add any other provider keys you need. Run polpo setup to configure your model.
  4. Add a persistent volume In the service settings, click + New Volume:
    • Mount path: /workspace
    • Size: 1 GB (adjust as needed)
  5. Configure the start command Railway auto-detects the Dockerfile. If it doesn’t, set the start command manually:
    node dist/cli/index.js serve --host 0.0.0.0 --port $PORT --dir /workspace
    
    Railway injects $PORT automatically.
  6. Deploy Railway builds and deploys. You get a public URL like https://polpo-production-xxxx.up.railway.app.

Deploy from Docker image

Alternatively, deploy the pre-built image:
  1. Create a new Railway service from Docker Image
  2. Enter ghcr.io/lumea-labs/polpo:latest
  3. Set environment variables and volume as above
  4. Override the start command to use Railway’s $PORT:
    node dist/cli/index.js serve --host 0.0.0.0 --port $PORT --dir /workspace
    

Initialize the workspace

After the first deploy, create the project config:
# Via the Railway CLI
railway run polpo init --dir /workspace
Or use the API to create your first plan.

Notes

  • Railway’s free tier has limited hours. For persistent orchestration, use a paid plan.
  • The persistent volume survives deploys and restarts.
  • Railway supports custom domains via the Settings tab.