Self-hosting
Run your own Kortix instance with Docker Compose, on a VPS or for evaluation.
Kortix runs as one Docker Compose stack: the frontend, the API, the LLM gateway, and the Supabase distribution. This page shows the three ways to install it, how updates work, and how to back up your data.
Agent sessions run on a separate sandbox provider, not on this stack. The default is Daytona; Platinum and E2B are also supported.
One-shot bootstrap
On a bare Linux box, one command installs Docker, installs the kortix CLI, and starts the stack:
curl -fsSL https://raw.githubusercontent.com/kortix-ai/suna/main/scripts/kortix-selfhost-up.sh \
| bash -s -- --domain kortix.example.com --email ops@example.com
This script runs on Linux only. On another OS, install the CLI directly and use the manual path below.
Manual path
Install the CLI
curl -fsSL https://kortix.com/install | bashPoint DNS, then initialize
Create an A/AAAA record for your domain and for api.<domain>, both pointing
at the box’s IP. Open ports 80 and 443 — the bundled Caddy proxy uses them to
issue a TLS certificate. Then run:
kortix self-host init --domain kortix.example.comStart the stack
kortix self-host startCheck kortix self-host status, logs, and doctor while the stack starts.
Evaluation mode
To try Kortix with no domain, use a Cloudflare tunnel instead of a domain:
kortix self-host init --tunnel cloudflare
kortix self-host start
The tunnel URL changes on every restart. Use this mode for evaluation, not production.
After the stack starts, set your sandbox provider key:
kortix self-host configure
configure is an interactive prompt for the sandbox provider key, and
optionally a managed-git token. Sign up in the dashboard, then connect your
own LLM key in the model picker. Self-hosted instances use your own key
by default.
Each API container has a 640 MiB memory limit by default. Keep this default on an 8 GiB host. Use a 1 GiB limit on a 16 GiB host when API traffic reaches the default limit:
kortix self-host env set KORTIX_API_MEMORY_LIMIT=1024m
Confirm the applied limit with docker stats --no-stream.
Updates
Every instance updates itself automatically. Pin an exact version instead:
kortix self-host update --tag 0.9.84
Turn the updater off with --auto-update off. See
Self-hosting architecture for
the update schedule, the zero-downtime swap, and the channels.
Backups
Kortix has no separate backup system. Each instance stores its data as two
directories under ~/.config/kortix/self-host/<instance>/: volumes/db/data
(the Postgres database) and volumes/storage (file storage). The instance’s
.env file holds every secret and signing key it uses. Back up all three
before you run a destructive command.
Learn more
- Self-hosting architecture — how the stack fits together.
- CLI reference — every
kortix self-hostsubcommand and flag.