Overview
SuperBox deployment has two independent steps:
- Cloudflare Worker - deployed with
wrangler deploy (edge, globally distributed)
- Go API - deployed as a Docker container (self-hosted or any container platform)
Deploy the Cloudflare Worker
Install dependencies
cd cloudflare
npm install
Deploy
Expected output:Deployed superbox-executor (X.XX sec)
https://superbox-executor.<your-subdomain>.workers.dev
The Worker is deployed globally - no region selection needed. Durable Objects
are created on-demand at the edge.
Deploy the Go API
Docker build
# Multi-stage build (already in backend/Dockerfile)
FROM golang:1.26-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o server ./cmd/server
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /app/server .
COPY src/ ./src/
RUN pip install -e ".[server]"
CMD ["./server"]
Build and run:
cd backend
docker build -t superbox-api .
docker run -d \
-p 8000:8000 \
--env-file .env \
superbox-api
Environment variables
CLOUDFLARE_ACCOUNT_ID=...
CLOUDFLARE_R2_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
CLOUDFLARE_R2_ACCESS_KEY_ID=...
CLOUDFLARE_R2_SECRET_ACCESS_KEY=...
CLOUDFLARE_R2_BUCKET_NAME=superbox-mcp-registry
CLOUDFLARE_WORKER_URL=https://superbox-executor.<your-subdomain>.workers.dev
FIREBASE_PROJECT_ID=...
FIREBASE_PRIVATE_KEY=...
FIREBASE_CLIENT_EMAIL=...
SONAR_TOKEN=...
SONAR_ORGANIZATION=...
GITGUARDIAN_API_KEY=...
SNYK_API_TOKEN=...
RAZORPAY_KEY_ID=...
RAZORPAY_KEY_SECRET=...
CI/CD (GitHub Actions)
Example workflow:
name: Deploy
on:
push:
branches: [main]
jobs:
deploy-worker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
working-directory: cloudflare
- run: npx wrangler deploy
working-directory: cloudflare
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
deploy-api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and push Docker image
run: |
docker build -t superbox-api ./backend
# push to your container registry
Verify deployment
# Worker health check
curl https://superbox-executor.<your-subdomain>.workers.dev/health
# API health check
curl https://your-api-domain/health
# List servers
curl https://your-api-domain/api/v1/servers
Rollback
# List Worker deployments
wrangler deployments list superbox-executor
# Rollback to a previous deployment
wrangler deployments rollback superbox-executor --deployment-id <id>
For the Go API, re-run docker run with the previous image tag.