Self-hosting

Run Sim on your own infrastructure with Docker Compose or Kubernetes. Both run the same app, realtime service, database migrations, and background job endpoints.

Choose a deployment

Compose bundles PostgreSQL, Redis, and a scheduler. The Helm chart bundles PostgreSQL and Redis and enables scheduled jobs by default. Kubernetes also exposes replica, autoscaling, disruption-budget, secret-store, and network-policy settings; configure these for your cluster before relying on high availability. See Reference architectures.

Quick start

Install Bun, Node.js 20 or newer, Docker, and Docker Compose 2.24.0 or later, then run:

bunx sim-setup

The wizard creates a ./sim directory with a production Compose file and generated .env, including POSTGRES_PASSWORD. It starts published container images. Open http://localhost:3000.

See Docker for runtime prerequisites, manual setup, and production configuration. For a cluster, use Kubernetes.

Requirements

Use these as starting resource examples, then size the deployment for concurrent executions, file processing, vector queries, and database growth. User counts alone do not predict capacity.

ResourceEvaluation exampleTeam exampleLarger workload example
CPU2 cores4 cores8+ cores
RAM12 GiB16 GiB32+ GiB
Storage20 GiB SSD50 GiB SSD100+ GiB SSD

These are sizing suggestions, not enforced minimums or capacity guarantees. The Helm chart requests 4 GiB and limits the app to 8 GiB by default. Production Compose sets an 8G app memory limit with no reservation. Memory-intensive executions and parsing can require more; see Scaling.

Before production use

  • Set your public origin and route /socket.io to the realtime service. Configure TLS before remote sign-in.
  • Retain and back up ENCRYPTION_KEY and API_ENCRYPTION_KEY with the database. Generate keys only for a new installation.
  • Configure durable object storage or a persistent local-storage layout. The production Compose file does not mount the app's upload directory.
  • Configure email for invitations, verification, and password resets.
  • Verify background jobs, including the scheduler's CRON_SECRET.

Recreating an app container with unmounted local uploads loses those files. Losing an encryption key makes the data encrypted with it unreadable. A database backup does not replace file storage or key backups.

Run Verify your install before opening the deployment to your team and after upgrades or restores.

External dependencies

The editor and execution engine run within your deployment. Configure these dependencies for the features you use:

FeatureDependency
Knowledge basesAn OpenAI, Azure OpenAI, OpenRouter, or Gemini embedding key, or your own Ollama server. KB_EMBEDDING_MODEL selects the model (text-embedding-3-small by default); EMBEDDING_OUTPUT_DIMS selects the stored vector width. Use ollama/<model> and OLLAMA_URL for local embeddings.
Agent blocksA model provider key or a self-hosted compatible endpoint such as Ollama, vLLM, LM Studio, or LiteLLM.
ChatCOPILOT_API_KEY for the default Sim service. Set NEXT_PUBLIC_CHAT_DISABLED=true to hide Chat when it is not configured.
OAuth integrationsYour provider app and credentials for each OAuth service you use. API-key integrations take keys in their blocks.
Remote Function or Pi executionAn E2B or Daytona provider key and the appropriate immutable image. Function and Pi use separate images.

Plain JavaScript without import or require runs in isolated-vm within Node child workers in the app container. Python, Shell, imported JavaScript, custom Function Sandboxes, and file-path or sandbox execution require remote sandbox configuration. See Sandboxes.

Enterprise features

In a standard billing-disabled self-hosted deployment, enterprise features are enabled through configuration:

ENTERPRISE_ENABLED=true
NEXT_PUBLIC_ENTERPRISE_ENABLED=true

Organizations, SSO, permission groups, audit logs, whitelabeling, session policies, retention, and data drains also need their feature-specific configuration. Most read settings from the organization that owns a workspace. Enabling the suite can enable retention processing; review the configured policy before turning it on.

See Self-hosted enterprise features for organization setup, per-feature flags, and billing-enabled differences.