Deployment
HatiData runs anywhere — from your laptop to a production Kubernetes cluster.
Local (Development)
The fastest way to start. Runs DuckDB in-process, no containers needed.
pip install hatidata-agent
hati init
hati status
Connect with any Postgres client on port 5439:
psql -h localhost -p 5439 -U admin -c "SELECT 1"
Docker
Run HatiData as a container with persistent storage:
docker run -d \
--name hatidata \
-p 5439:5439 \
-v hatidata-data:/data \
-e HATIDATA_DEV_MODE=true \
ghcr.io/hatios-ai/hatidata-proxy:latest
Docker Compose (Full Stack)
Run the proxy, control plane, and dashboard together:
git clone https://github.com/HatiOS-AI/HatiData.git
cd HatiData/dev
make up
Services:
- Proxy — localhost:5439 (accepts psql connections)
- Control Plane — localhost:8080 (REST API)
- Dashboard — localhost:5173 (admin UI)
Cloud (Managed)
For production workloads, HatiData Cloud runs in your VPC with managed infrastructure:
- Sign up at hatidata.com/signup
- Choose your cloud provider (AWS, GCP, or Azure)
- HatiData provisions a dedicated instance in your region
- Connect using the provided endpoint and API key
Cloud includes: managed upgrades, backups, monitoring, and hybrid SQL with premium embeddings.
Kubernetes (Self-Hosted)
Deploy on your own Kubernetes cluster using our Helm chart:
helm repo add hatidata https://charts.hatidata.com
helm install hatidata hatidata/hatidata \
--set proxy.replicas=2 \
--set controlPlane.replicas=2 \
--set storage.class=gp3
See the Kubernetes guide for detailed configuration.
Environment Variables
| Variable | Default | Description |
|---|---|---|
HATIDATA_DEV_MODE | true | Enable dev mode (relaxed auth) |
HATIDATA_LISTEN_ADDR | 0.0.0.0:5439 | Proxy listen address |
HATIDATA_DUCKDB_MEMORY_LIMIT_MB | 24000 | DuckDB memory limit |
HATIDATA_MAX_CONCURRENT_QUERIES | 100 | Max concurrent queries |
HATIDATA_TLS_ENABLED | false | Enable TLS for wire protocol |
For the full configuration reference, see Configuration.