
Overview
All OpenSail configuration is environment-driven. The canonical reader isorchestrator/app/config.py (Pydantic settings). Feature flags live in orchestrator/app/config_features.py. Frontend runtime config reads window._env_.*; build-time config reads VITE_*.
Use this page together with:
- Repo-root
.env.exampleand.env.prod.example docs/guides/environment-variables.md(the exhaustive reference)- Kustomize overlays under
k8s/overlays/*/backend-patch.yaml
After changing a variable, restart the affected service. In Docker:
docker compose restart orchestrator. In Kubernetes: kubectl rollout restart deploy/orchestrator -n tesslate.Required core
string
required
JWT signing and general crypto fallback. Never reuse across environments. Generate with
python3 -c "import secrets; print(secrets.token_urlsafe(32))".string
default:"docker"
docker, kubernetes, or desktop. Selects orchestrator backend, DB driver, task queue, and pub/sub.string
SQLAlchemy async URL. Docker default points at the
postgres service. Desktop mode resolves to SQLite automatically.string
Shared secret for cluster-internal callers (Volume Hub GC, btrfs CSI) hitting
/api/internal/*. Desktop mode ignores.Database
- Postgres (cloud)
- SQLite (desktop)
Redis, pub/sub, task queue
Desktop mode uses
LocalTaskQueue (asyncio + apscheduler) and LocalPubSub (in-process). No Redis required.
LiteLLM and agent
Auth and cookies
string
default:"HS256"
JWT signing algorithm.
number
default:"30"
Access token TTL.
number
default:"14"
Refresh token TTL.
string
Separate key for CSRF tokens. Falls back to
SECRET_KEY.number
default:"86400"
CSRF token TTL seconds.
boolean
default:"false"
Set true in production.
string
default:"lax"
lax, strict, or none.string
Scope cookies to apex, e.g.
.tesslate.com, for subdomain access.string
Comma-separated allowed origins.
string
Host header allowlist.
OAuth providers
All optional. Absence of credentials disables the provider gracefully.- Login
- Deployment targets
- MCP platform apps
SMTP and 2FA
S3 and object storage
Kubernetes (user-project runtime)
Volume Hub and btrfs CSI
Web search
Messaging channels and gateway
MCP (Model Context Protocol)
Stripe and billing
Frontend
Domain, ports, Traefik
Desktop
Observability
Feature flags (Tesslate Apps)
Apps features are gated byTSL_FEATURE_* booleans. Default is off except governance policies. The env variable is the dotted flag name upper-cased with dots replaced by underscores: apps.publish becomes TSL_FEATURE_APPS_PUBLISH.
Testing
CI sets
SECRET_KEY=test-secret-key-*, DEPLOYMENT_MODE=docker, LITELLM_API_BASE=http://localhost:4000/v1, LITELLM_MASTER_KEY=test-key, and points DATABASE_URL at Postgres on port 5433.
Environment comparison
Next steps
Deployment
Production paths: Docker, Kubernetes, AWS EKS.
Architecture
How the orchestrator, agent, and storage fit together.
Authentication
JWT, OAuth, email 2FA, API keys, and desktop pairing.
API reference
REST surface overview and OpenAPI spec pointer.