What self-hosting each AnythingLLM alternative needs
AnythingLLM ships in two shapes, and they are not the same product. The desktop app installs on macOS, Windows or Linux, runs locally, and includes a built-in LLM provider; it is single-user. The Docker deployment is the one that adds multi-user support, workspace access management, password protection and embeddable chat widgets. It needs Docker and an external LLM provider, and Mintplex Labs recommends it when many people use one instance at the same time. Both are open source. The split is documented in the Docker vs Desktop table, and the repo describes the app as running locally by default (AnythingLLM on GitHub).
Kortix is the open-source AI Operating System: your agents, skills, company memory and connectors in one git repo you own. Self-hosting it is one Docker Compose stack (the frontend, the API, the LLM gateway and the Supabase distribution), started from the kortix CLI. You install the CLI, run kortix self-host init --domain kortix.example.com, then kortix self-host start. Agent sessions run on a separate sandbox provider, set once with kortix self-host configure. Read the docs for the three install paths, the update schedule and the backup model.
Where a document chat stops and a company system starts
AnythingLLM does one job well: it answers over the documents you give it. You load files, pick a workspace and chat. The instance is the product, and the state that builds up lives inside that instance.
Kortix is built around a different unit. A project is a git repo that holds the agents, the skills they share, the company memory and the connectors as files, versioned and reviewed like code. One isolated sandbox per session. Each session has its own isolated machine and branch. When the work is ready, the agent opens a change request, and merge is default-deny for agents, so a person reviews the diff before it reaches main. That is the line between a self-hosted chat app and a self-hosted system of record: one keeps answers, the other keeps the work and the configuration that produced it.
What a Kortix self-hosted deployment takes
From the self-hosting documentation, a production instance needs:
- One Linux box. The one-shot bootstrap script runs on Linux only.
- A domain with A/AAAA records for the domain and for
api.<domain>, both pointing at the box. - Ports 80 and 443 open, so the bundled proxy can issue a TLS certificate.
- A sandbox provider key, set after the stack starts with
kortix self-host configure. - A model key you own. Self-hosted instances use your own key by default.
The API has a default memory limit, and the docs keep that default on an 8 GiB host. Updates are automatic unless you pin a version or turn them off. Kortix has no separate backup system: each instance keeps its data in two directories under ~/.config/kortix/self-host/<instance>/ (volumes/db/data and volumes/storage), and you back those up with the instance's .env. Kortix runs on Kortix Cloud, in your VPC, or on your own on-prem network, and self-host is free; you pay your own model and compute bills.
Two limits are worth stating. The instance must be reachable, because each session's sandbox calls back to it, and the one-shot bootstrap pulls its images from docker.io. If your security review needs a tighter topology, Kortix scopes that with you instead of claiming it out of the box. To skip the server entirely, Get started with a managed project.