SACTL Gateway supports four deployment methods: single-host Docker Compose, Managed Cloud, Kubernetes Helm production, and Cloudflare Workers edge proxy. Below: a comparison decision table first, then full steps for each path. A self-hosting guide for IT and SRE teams — no marketing fluff.
Pick by team size, ops capacity, and compliance posture. One-liner: solo / small teams go Managed; medium / large teams go K8s Helm; teams with hard isolation requirements go Self-Hosted; overseas projects go Edge.
| Dimension | Self-Hosted (Compose) | Managed Cloud | Kubernetes (Helm) | Cloudflare Edge |
|---|---|---|---|---|
| Typical scenario | PoC / internal test / single-tenant private | Small/medium team avoiding ops | Medium/large production, multi-AZ HA | Overseas projects, 200+ country acceleration |
| Time to live | 30 minutes | 10 minutes | ~1 hour | 45 minutes |
| Ops burden | You run the full stack | SACTL runs everything | K8s ops + external middleware | Cloudflare platform + your backend |
| SLA | Self-defined | 99.5% (Managed standard) | Self-defined (cluster-dependent) | Cloudflare SLA |
| Data compliance | Fully sovereign | SACTL compliance stack | Fully sovereign | Edge proxy + your backend |
| Horizontal scaling | Manual (single host) | Transparent | HPA auto (3 → 30) | Auto (Workers global) |
| Cost structure | 1 server + upstream tokens | Per-token + monthly fee | K8s + RDS/ES/Vault + upstream | Workers billing + backend |
| Upgrade flow | docker compose pull && up -d | SACTL auto-rolling | helm upgrade | wrangler deploy |
Fits: PoC, internal testing, single-tenant private deployment, development environments. One Linux server (4 vCPU / 8GB RAM minimum) runs the full stack.
git clone https://github.com/sactl/sactl-api.git cd sactl-api # Copy the env template, fill upstream key + OAuth + SMTP cp .env.example .env vim .env docker compose up -d
make init # does four things: # 1. vault operator init + unseal (5 keys, threshold 3) # 2. run goose migrate # 3. create default tenant + admin user # 4. generate the first Virtual Key, printed once (sk-xa-prod-***)
Fits: small / medium teams, those who don't want to operate infrastructure, and customers who prefer monthly billing. SACTL hosts the full stack (PostgreSQL, Redis, Vault, MinIO, monitoring, alerting); you only integrate with the API.
Discuss specific arrangements via Telegram; pricing is volume-based.
Fits: medium / large customers, multi-AZ high-availability requirements, teams that want to reuse existing RDS / ElastiCache / Vault middleware, and HPA auto-scaling.
gatewaySidecar:
replicas: 6
resources:
requests: {cpu: "500m", memory: "512Mi"}
limits: {cpu: "2", memory: "2Gi"}
hpa:
enabled: true
minReplicas: 3
maxReplicas: 30
targetCPUUtilizationPercentage: 60
postgres:
external: true
dsn: "postgres://sactl:***@rds.internal:5432/sactl?sslmode=require"
redis:
external: true
addr: "elasticache.internal:6379"
minio:
external: true
endpoint: "s3.amazonaws.com" # or use AWS S3 directly
vault:
external: true
addr: "https://vault.internal:8200"
approle: {role_id: "...", secret_id: "..."}# Add repo helm repo add sactl https://charts.sactl.ai helm repo update # First install helm install sactl sactl/sactl-gateway \ -f values.prod.yaml \ -n sactl --create-namespace # Upgrade to a specific version helm upgrade sactl sactl/sactl-gateway \ -f values.prod.yaml --version=N # Rollback helm rollback sactl PREVIOUS
Fits: overseas projects, users distributed across 200+ countries, or teams sensitive to international acceleration. Push auth, rate limiting, and upstream routing onto Cloudflare's edge to cut cross-region latency.
Repository subdirectory deploy/edge-proxy/cloudflare-workers/. Contains the Worker code, a wrangler.toml template, KV namespace definitions, and CF Rate Limiting Rules config.
cd deploy/edge-proxy/cloudflare-workers wrangler login # Edit wrangler.toml: account_id / kv_namespaces.id / routes vim wrangler.toml # Set secrets wrangler secret put SACTL_UPSTREAM_URL wrangler secret put SACTL_VAULT_TOKEN # Deploy wrangler deploy # Canary: cut 5% first, observe for 24h # CF Dashboard → Workers Routes → set traffic percentage
Not sure between Self-Hosted and Managed? Message Telegram support — we'll give you a 30-minute assessment and a recommendation. Free.