Cloud Platform Deployment
Deploy OpenQA to Railway, Render, Fly.io, or other cloud platforms in minutes.
Railway
The fastest way to deploy OpenQA:
bash
1# 1. Install Railway CLI2npm install -g @railway/cli3 4# 2. Login and initialize5railway login6railway init7 8# 3. Deploy9railway up10 11# 4. Set environment variables in Railway dashboard:12# - OPENAI_API_KEY13# - OPENQA_JWT_SECRET14# - SAAS_URL15# - NODE_ENV=production💡 One-Click Deploy
You can also use the "Deploy on Railway" button from the GitHub repository.
Render
Render offers a free tier and automatic deploys:
- Fork the OpenQA repository
- Connect your GitHub to Render
- Create a new Web Service
- Select the forked repository
- Render will auto-detect the
render.yamlblueprint - Add environment variables and deploy
The render.yaml blueprint:
yaml
1services:2 - type: web3 name: openqa4 env: node5 plan: starter6 buildCommand: npm ci && npm run build7 startCommand: node dist/cli/index.js start8 healthCheckPath: /api/health9 envVars:10 - key: NODE_ENV11 value: production12 - key: OPENAI_API_KEY13 sync: false14 - key: OPENQA_JWT_SECRET15 generateValue: true16 - key: SAAS_URL17 sync: falseFly.io
Deploy to Fly.io's global edge network:
bash
1# 1. Install Fly CLI2curl -L https://fly.io/install.sh | sh3 4# 2. Login5flyctl auth login6 7# 3. Launch (creates fly.toml)8flyctl launch9 10# 4. Set secrets11flyctl secrets set OPENAI_API_KEY=sk-xxx12flyctl secrets set OPENQA_JWT_SECRET=$(openssl rand -hex 32)13flyctl secrets set SAAS_URL=https://your-app.com14 15# 5. Deploy16flyctl deployThe fly.toml configuration:
yaml
1app = "openqa"2primary_region = "cdg"3 4[build]5 dockerfile = "Dockerfile.production"6 7[env]8 NODE_ENV = "production"9 WEB_PORT = "4242"10 11[http_service]12 internal_port = 424213 force_https = true14 auto_stop_machines = true15 auto_start_machines = true16 17[[vm]]18 cpu_kind = "shared"19 cpus = 120 memory_mb = 512VPS / Bare Metal
For full control, deploy to a VPS:
bash
1# Automated installer2curl -fsSL https://openqa.orkajs.com/install-production.sh | bash3# Choose option 2 (VPS/Bare Metal)Or manual installation:
bash
1# Install Node.js 202curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -3sudo apt install -y nodejs build-essential git4 5# Create user and install6sudo useradd -r -m openqa7sudo -u openqa git clone https://github.com/Orka-Community/OpenQA.git /opt/openqa8cd /opt/openqa9sudo -u openqa npm ci --only=production10sudo -u openqa npm run build11 12# Configure13sudo -u openqa cp .env.production .env14sudo nano /opt/openqa/.env15 16# Install systemd service17sudo cp openqa.service /etc/systemd/system/18sudo systemctl enable openqa19sudo systemctl start openqaPlatform Comparison
| Platform | Free Tier | Auto-Deploy | SSL | Persistence |
|---|---|---|---|---|
| Railway | $5 credit/mo | ✓ | ✓ | ✓ |
| Render | Yes | ✓ | ✓ | Paid |
| Fly.io | Yes | ✓ | ✓ | ✓ |
| VPS | No | Manual | Manual | ✓ |
