The same binary that powers tablize.com runs on your servers, in your VPC, with your own LLM keys. Your data never leaves your perimeter unless you point the agent outward.
A few things live only in the managed cloud — the infrastructure, the billing, and the optional managed LLM pool. None of it is required to run Tablize; it's the convenient version for teams that don't want to operate the platform themselves.
Tablize is a single Rust binary that bundles the agent runtime, the HTTP server, all five product domains, and every connector. The deploy story is Docker Compose: 5 containers (tablize binary, postgres, emqx, minio, python sandbox).
The crate layout enforces hard domain boundaries: Data, IoT, App, Media, and Platform each live in their own crate and cannot import each other. The tools crate is the only place that aggregates across all domains, registering each domain's tools into a global registry that the agent runtime calls into.
Storage is one Postgres instance with multiple schemas (iot.*, data.*, app.*, media.*, platform.*). TimescaleDB handles time-series. There's no event bus between domains — cross-domain coordination happens through the agent runtime's tool-call mechanism.
More on the design choices: Why we built Tablize as one Rust binary instead of microservices.
Healthcare, finance, regulated work where data cannot leave your perimeter. Self-host, point the agent at your own LLM key, never send a row to a third party.
For deployments behind a firewall with no internet egress. The self-hosted build can run with a local LLM (Ollama, vLLM-served Llama, etc.) and zero outbound calls.
For heavy, steady workloads where the managed per-workspace tier does not fit. Run it on your own hardware, pay your own LLM bill, no per-workspace overhead.
Keep the whole Data Agent — data, agent, and dashboards — inside your VPC. Nothing crosses the boundary unless you point it outward.
The self-hosted build ships as the single Tablize binary plus a Docker Compose stack. On any Linux host with Docker installed, it comes down to three lines:
cp .env.example .env # set your LLM key (Anthropic / OpenAI / a local model), DOMAIN, and storage creds docker compose up -d
Five containers start: tablize (the binary), postgres (with TimescaleDB), emqx (MQTT broker, optional if you don't use devices), minio (S3-compatible storage), python-sandbox (for the Python tool).
To get the self-hosted build and the deploy docs, email hello@tablize.com.
The self-hosted build is licensed for commercial use on your own infrastructure — your servers, your LLM keys, your network. You run it, you own the data, nothing phones home by default.
For specific licensing terms — including redistribution, air-gapped deployments, or embedding Tablize in a product you ship to your own customers — email hello@tablize.com.
From the build to a running agent: about 10 minutes on a fresh Linux host.
Request the self-hosted build