Before deploying, spend two minutes on the topology: there is less to run than you might think. Every desktop and mobile client is a remote client — you don't run a backend on each device.
Two services, one data file
The main app (apps/app) is a pure static frontend on port 5180 by default (80 in Docker mode), served by nginx which proxies /api, /socket.io and /health to the backend. The Core API (api/) is a NestJS backend on port 3000 by default, with all data in one SQLite file (./data/database.sqlite by default). That's it — there is no third long-running service.
No external dependencies
The backend uses a single-file SQLite database via better-sqlite3 — no Postgres / MySQL / Redis / MongoDB required (switching to Postgres/MySQL is currently not supported — that is the honest boundary; community contributions welcome). Backup and migration are therefore just file copies, and a bottom-tier VPS is enough to run it.
Every client connects remotely
iOS, Android, Windows, macOS and Web all connect as remote clients: you only enter the server address in the client — the Core API never runs on the device. The desktop shell (Tauri) uses the same remote mode — the shell carries no backend — so one server deployment serves every device you own.
Ops entry point: the /admin/* endpoints
The standalone ops console frontend has been retired; ops capabilities are built into the backend as /admin/* endpoints. Any HTTP client can call them with the X-Admin-Secret request header (the secret is ADMIN_SECRET in env). For example, instance stats via curl: curl -H "X-Admin-Secret: your-secret" http://127.0.0.1:3000/api/admin/stats.
Open-source boundary
The official multi-tenant cloud's ops console (cloud-api / cloud-console) and the Wiki character platform are outside the open-source scope — self-hosting never needs them; everything a single instance can do lives in the two services above. The open-source part is MIT-licensed: auditable, modifiable, commercial use OK.
Related questions
Can I self-host Enclave? Is it hard?
Yes, and it's about as hard as running an ordinary web service. If you've used docker compose, three steps get you your own instance: clone the repo, copy .env, and docker compose up. The API, frontend, database, and vector index all run on your own machine.What database does Enclave use? Do I need to set it up myself?
No extra setup needed. Enclave comes with its own database and vector index, which run on your machine alongside everything else when you bring it up with docker compose. Documents, conversations, and memory are all stored there in structured form; in self-hosted mode this data lives only on your own machine.Is Enclave open source? What license does it use?
Yes. The entire Enclave monorepo is open source on GitHub under the MIT license — free to audit, modify, and use commercially. Any promise that we won't misuse your data is something you can verify by reading the code yourself, instead of just having to take it on faith.Can I use Enclave commercially? What does the MIT license restrict?
Yes, commercial use is allowed. Enclave is open source under the MIT license, which permits free use, modification, and distribution — including commercial use — with the only requirement being to retain the copyright and license notice. You can build on it, deploy it internally, or offer it as a service, with no extra licensing fees.