
Overview
OpenSail has three supported deployment paths. This page summarizes what each path is good for and links to the detailed walkthroughs. For the install-path decision matrix, see the self-hosting quickstart.Prefer a managed service? tesslate.com runs OpenSail for you with zero setup.
Pick your path
Docker Compose
Single-server install with Postgres, Redis, Traefik, the orchestrator, and the app in Compose. Best for dev laptops and single-VM deployments.
Kubernetes (Minikube)
Full Kubernetes pipeline on your own machine: per-project namespaces, btrfs CSI, Volume Hub, snapshots. The staging ground before production.
AWS EKS
Production deployment via Terraform. EKS, ECR, managed Postgres, S3-backed CAS, wildcard TLS, and Cloudflare DNS.
What each path gives you
| Capability | Docker | Minikube | AWS EKS |
|---|---|---|---|
| Orchestrator + agent + app | Yes | Yes | Yes |
| Postgres | In-cluster | In-cluster | RDS |
| Redis | In-cluster | In-cluster | ElastiCache |
| LiteLLM gateway | External or local | External | External |
| Per-project namespaces | No | Yes | Yes |
| NetworkPolicy isolation | No | Yes | Yes |
| btrfs CSI + Volume Hub | No | Yes | Yes |
| CAS bundles on S3 | No | MinIO | S3 |
| Snapshot timeline (5 per project) | No | Yes | Yes |
| Hibernation with restore | No | Yes | Yes |
| Wildcard TLS | Traefik + LE | HTTP only | cert-manager + Cloudflare |
| Horizontal scaling | No | Demo only | Yes |
Overview of each path
- Docker Compose
- Kubernetes (Minikube)
- AWS EKS (production)
The Compose stack brings up every service on a single host:
| Service | Purpose |
|---|---|
orchestrator | FastAPI backend |
frontend (dev) | Vite + React |
postgres | Database |
redis | Task queue + pub/sub |
traefik | *.localhost routing (dev) or Let’s Encrypt (prod) |
worker | ARQ agent worker |
DEPLOYMENT_MODE=docker selects DockerComposeOrchestrator, which provisions per-project containers from .tesslate/config.json and wires them into the Traefik network.Start here: Docker setup guide.Shared operational surface
Regardless of path:- The orchestrator reads config from environment variables. See Configuration for the full reference.
- Agents run via the
tesslate-agentpackage (packages/tesslate-agent/), either inline (desktop, Docker) or under an ARQ worker (K8s). - Project volumes are provisioned through
orchestrator/app/services/volume_manager.py, which talks to the Volume Hub on Kubernetes or the local filesystem on Docker and desktop. - Authentication and RBAC are consistent across paths. See Authentication.
Next steps
Docker setup
Fastest path to a running OpenSail.
Kubernetes on Minikube
Full K8s locally to validate the production path.
AWS production
Terraform, EKS, RDS, S3, wildcard TLS.
Configuration
Env variable reference.