OpenQAOpenQA
Deployment

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 CLI
2npm install -g @railway/cli
3 
4# 2. Login and initialize
5railway login
6railway init
7 
8# 3. Deploy
9railway up
10 
11# 4. Set environment variables in Railway dashboard:
12# - OPENAI_API_KEY
13# - OPENQA_JWT_SECRET
14# - SAAS_URL
15# - 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:

  1. Fork the OpenQA repository
  2. Connect your GitHub to Render
  3. Create a new Web Service
  4. Select the forked repository
  5. Render will auto-detect the render.yaml blueprint
  6. Add environment variables and deploy

The render.yaml blueprint:

yaml
1services:
2 - type: web
3 name: openqa
4 env: node
5 plan: starter
6 buildCommand: npm ci && npm run build
7 startCommand: node dist/cli/index.js start
8 healthCheckPath: /api/health
9 envVars:
10 - key: NODE_ENV
11 value: production
12 - key: OPENAI_API_KEY
13 sync: false
14 - key: OPENQA_JWT_SECRET
15 generateValue: true
16 - key: SAAS_URL
17 sync: false

Fly.io

Deploy to Fly.io's global edge network:

bash
1# 1. Install Fly CLI
2curl -L https://fly.io/install.sh | sh
3 
4# 2. Login
5flyctl auth login
6 
7# 3. Launch (creates fly.toml)
8flyctl launch
9 
10# 4. Set secrets
11flyctl secrets set OPENAI_API_KEY=sk-xxx
12flyctl secrets set OPENQA_JWT_SECRET=$(openssl rand -hex 32)
13flyctl secrets set SAAS_URL=https://your-app.com
14 
15# 5. Deploy
16flyctl deploy

The 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 = 4242
13 force_https = true
14 auto_stop_machines = true
15 auto_start_machines = true
16 
17[[vm]]
18 cpu_kind = "shared"
19 cpus = 1
20 memory_mb = 512

VPS / Bare Metal

For full control, deploy to a VPS:

bash
1# Automated installer
2curl -fsSL https://openqa.orkajs.com/install-production.sh | bash
3# Choose option 2 (VPS/Bare Metal)

Or manual installation:

bash
1# Install Node.js 20
2curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
3sudo apt install -y nodejs build-essential git
4 
5# Create user and install
6sudo useradd -r -m openqa
7sudo -u openqa git clone https://github.com/Orka-Community/OpenQA.git /opt/openqa
8cd /opt/openqa
9sudo -u openqa npm ci --only=production
10sudo -u openqa npm run build
11 
12# Configure
13sudo -u openqa cp .env.production .env
14sudo nano /opt/openqa/.env
15 
16# Install systemd service
17sudo cp openqa.service /etc/systemd/system/
18sudo systemctl enable openqa
19sudo systemctl start openqa

Platform Comparison

PlatformFree TierAuto-DeploySSLPersistence
Railway$5 credit/mo
RenderYesPaid
Fly.ioYes
VPSNoManualManual