Deploy Sim on your own infrastructure with Docker or Kubernetes.
Requirements
| Resource | Small | Standard | Production |
|---|---|---|---|
| CPU | 2 cores | 4 cores | 8+ cores |
| RAM | 12 GB | 16 GB | 32+ GB |
| Storage | 20 GB SSD | 50 GB SSD | 100+ GB SSD |
| Docker | 20.10+ | 20.10+ | Latest |
Small: Development, testing, single user (1-5 users) Standard: Teams (5-50 users), moderate workloads Production: Large teams (50+ users), high availability, heavy workflow execution
Resource requirements are driven by workflow execution (isolated-vm sandboxing), file processing (in-memory document parsing), and vector operations (pgvector). Memory is typically the constraining factor rather than CPU. The Helm chart requests 4 Gi for the app and caps it at 8 Gi; docker-compose.prod.yml sets only an 8 GB limit, with no reservation.
Quick Start
git clone https://github.com/simstudioai/sim.git && cd sim
cat > .env << EOF
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
API_ENCRYPTION_KEY=$(openssl rand -hex 32)
CRON_SECRET=$(openssl rand -hex 32)
EOF
docker compose -f docker-compose.prod.yml up -dThe .env step is not optional — the compose file refuses to start without the first three rather than booting with empty values. CRON_SECRET is what the scheduler uses; without it the cron service exits with instructions and everything else still runs. See Docker for the full production setup.
Deployment Options
Docker
Deploy with Docker Compose on any server
Kubernetes
Deploy with Helm on Kubernetes clusters
Cloud Platforms
Railway, DigitalOcean, AWS, Azure, GCP guides
Which one to pick
Docker Compose and Kubernetes run the same application; what differs is the operational envelope around it, which the table below sets out. Cloud Platforms covers provider-specific notes for either. Docker Compose is the fastest way to evaluate Sim and is fine for a single-node team install; Kubernetes is the path for high availability and managed secrets.
| Capability | Docker Compose | Kubernetes (Helm) |
|---|---|---|
| App, realtime, migrations, Postgres, Redis | Yes | Yes |
| Scheduled workflows and polling triggers | Yes — cron service | Yes — CronJobs |
| Horizontal scaling / HA | No (single node) | Yes (replicaCount, HPA, PDB) |
| Managed secrets (Vault, ESO, cloud KMS) | Manual .env | Yes |
| Network policy, Pod Security Standards | Host-level only | Yes |
| PII redaction, OpenTelemetry collector | Not bundled | Optional components |
The remaining differences are inherent to the platform — Compose has no analogue of a HorizontalPodAutoscaler or a PodDisruptionBudget. Application behavior is the same on both.
Where to go next
Integrations & OAuth
Configure OAuth applications for the services you use
Object Storage
Required before storing anything you care about
Verify Your Install
Ten-minute smoke test across every subsystem
The sidebar covers the rest: architecture, email, Redis, authentication, background jobs, networking, security, scaling, observability, and upgrades.
Enterprise Features
Organizations, SSO, permission groups, audit logs, whitelabeling, session policies, data retention, and data drains all run on a self-hosted deployment with no billing or subscription. Turn the set on with:
ENTERPRISE_ENABLED=true
NEXT_PUBLIC_ENTERPRISE_ENABLED=trueYour deployment also needs an organization model for most of them to apply. The self-hosted enterprise guide covers both patterns, the per-feature flags, and troubleshooting.
External dependencies to plan for
Sim is self-contained for the core editor and execution engine. A few features reach outside the deployment:
| Feature | Requires | Notes |
|---|---|---|
| Knowledge bases | An OpenAI, Azure OpenAI, or Gemini API key, or an Ollama server | Embeddings are generated by the model named in KB_EMBEDDING_MODEL (text-embedding-3-small by default). Set it to ollama/<model> with OLLAMA_URL to embed locally instead. EMBEDDING_OUTPUT_DIMS sets the vector width. |
| Agent blocks | An API key for at least one model provider | Or a self-hosted OpenAI-compatible endpoint: Ollama, vLLM, LM Studio, or LiteLLM. |
| Chat module | COPILOT_API_KEY from sim.ai | Set NEXT_PUBLIC_CHAT_DISABLED=true to hide the module instead. |
| OAuth integrations | Your own OAuth app per service | See Integrations & OAuth. |
| Remote Function / Pi execution | Optional E2B or Daytona key, plus a Function base image | Plain JavaScript — no import or require — runs in the in-process isolated VM with nothing configured. Everything else needs both a provider key and an immutable Function base image: Python, Shell, imported JavaScript, custom Function Sandboxes, and any block that selects a sandbox or references a file path. Pi uses a separate image again, pinned with E2B_PI_TEMPLATE_ID or DAYTONA_PI_SNAPSHOT_ID. See Sandboxes. |