Deploy & hosting
ObeliskDB is a stateful, single-node service: a small CPU container plus one persistent volume. Obi calls the Anthropic API, so there is no GPU to host — the heavy compute is a metered API call, not a model you rent.
Run locally
uv run obelisk ui # control plane at http://127.0.0.1:8501
What has to persist
All state lives on disk under the data directory (OBELISK_DATA_DIR, default data/): the catalog (metadata.db), the Parquet micro-partitions, results, and uploads. Back this up and mount it on a persistent volume. It is a single-writer store — run one instance, scale it vertically, and do not run several against the same volume.
Container
The included Dockerfile builds a CPU-only image with uv. The server reads PORT/HOST from the environment and binds 0.0.0.0 when hosted; state goes to /data.
CMD ["sh","-c","uv run --no-dev obelisk ui --no-browser \
--host 0.0.0.0 --port ${PORT:-8080}"]
Railway (the reference deploy)
- 1. Push the repo and create a service from it (it builds the
Dockerfile). - 2. Add a persistent volume mounted at
/data— your entire state. - 3. Set environment variables:
| Variable | Purpose |
|---|---|
ANTHROPIC_API_KEY | Obi's model backend |
OBI_BACKEND | claude |
OBELISK_ADMIN_USER / OBELISK_ADMIN_PASSWORD | Bootstrap an admin at first boot |
- 4. Deploy. Railway injects
PORT; the app binds automatically.
Safe by default on a public host
Set OBELISK_ADMIN_USER and OBELISK_ADMIN_PASSWORD and ObeliskDB creates that admin on first boot. Creating the first user flips the whole server to login-required, so a public deploy is never open. Change the bootstrap password after your first sign-in.
The marketing site serves at /, the whitepaper at /whitepaper, and these docs at /docs — all public. The control plane lives at /console behind login. One deployment serves the public site and the gated app on the same domain.
The hosted instance starts with an empty warehouse. Load your own data through ingestion, or run the demo seed to populate a showcase instance.
Other surfaces
obelisk mcp (an MCP server for external agents), obelisk emulator (a Snowflake-connector-compatible REST endpoint), and obelisk pgwire (the Postgres wire protocol) each start their own listener. See Python.