Self-hosted text-to-SQL: your questions, your database, your AI key

"Text-to-SQL" usually means a SaaS tool that sits between you and your database. Self-hosted flips that: the whole app — including the part that talks to the LLM — runs on infrastructure you control.

01

No vendor in the request path

With Ottoch, there's no telemetry, analytics, or "phone home" to Ottoch the company anywhere in the app. The only outbound network call it ever makes is from your server directly to whichever LLM provider you configure — OpenAI, Anthropic, Google Gemini, Mistral, or a custom OpenAI-compatible endpoint (including a fully local model like Ollama) — using your own API key. That request goes straight from your server to the provider; Ottoch the vendor is never in that path and never sees that traffic.

02

What actually leaves your server

Each question sends two things to your configured LLM provider: the schema (table/column names) of whichever tables you've activated, and your plain-English question. Actual row data is only included if you explicitly turn on the per-user "auto-explain" setting — off by default. Everything else — accounts, encrypted connection credentials, encrypted API keys, chat history — stays in Ottoch's own database on your infrastructure, SQLite by default or your own Postgres.

03

Flat pricing instead of per-seat

Most text-to-SQL and AI-database-chat tools charge per user, per month, which scales with headcount whether you're self-hosting or not. Ottoch's paid plans are a single flat fee per company, based on company size — no per-user charge, LDAP/Active Directory provisioning included — because there's no per-seat infrastructure cost to pass on when the app runs entirely on your own server.

Self-hosted vs. a typical SaaS text-to-SQL tool

Ottoch (self-hosted)Typical SaaS tool
Where your data livesYour own server/infrastructureThe vendor's cloud
Who sees your schema & questionsOnly your chosen LLM providerThe vendor, then the LLM provider
AI provider billingDirect, your own API keyOften bundled/marked up by the vendor
Pricing modelFlat per companyPer user / seat

Run it on your own infrastructure

One Docker command. Free forever for a single user and connection.

Deploy free → View pricing