Sovereign · self-hosted · open source

The corporate operating system for data and AI.

Companies that want a data and AI platform choose today between paying Databricks or Snowflake plus Palantir, or hand-wiring fifteen open-source pieces. HORUS is the third way: the whole stack already integrated and governed, on your own infrastructure. Onboarding a client is not a deployment, it is creating a project, with its isolated environment provisioned in one transaction.

One installation, N isolated projects.

A single Postgres, one object store, one LLM gateway. Each project gets its own schemas, roles and bucket. If a query generated by a model tries to touch another project, Postgres answers permission denied: isolation does not depend on the code remembering to filter.

Data

From source to dashboard, governed

Ingestion with dlt inside the project's isolation, dbt with tests and unit tests, lineage and quality in the catalog, dashboards declared as code, and a public data API with one key per project.

AI

Woven in, not bolted on

An LLM gateway with virtual keys and budgets per project, RAG per project with cited sources, agents with a queue and evaluations, text-to-SQL executed under the project's read-only role, and an MCP layer that gives models real tools over the platform.

Sovereignty

The data does not leave

Transcription on your own hardware, optional local models, no open ports, encrypted backups verified with a monthly restore drill. Everything Apache, MIT or MPL: nothing you cannot hand over.

A catalog of layers, each one an installable app.

Numbered Docker Compose layers behind Traefik and Authentik. A project composes what it needs.

LayerWhat it gives you
Identity & edgeAuthentik SSO with groups per application and per project, Traefik with automatic TLS, forward-auth in front of every tool
Data planePostgres/Supabase with pooler, object storage with a bucket per project, Redis
ApplicationsPortal, LiteLLM gateway, agents, transcription, MCP servers, Presidio PII guardrail
Analytics & governanceSuperset with a connection per project, OpenMetadata with a domain per project, dbt, public data API
Work & knowledgeOpenProject, Twenty CRM, Outline wiki, JupyterLab
Operations (admins only)Uptime Kuma, Dozzle, Netdata, n8n master, Airbyte master, OpenBao secrets, OpenTelemetry + Prometheus + Jaeger + VictoriaLogs

Isolation you can demonstrate.

Not "we filter in the application". Provisioning a project creates, in one transaction, everything that keeps it apart, and the tests that prove it run against a real Postgres.

Postgres   p_<slug>_raw · p_<slug>_staging · p_<slug>_marts
           roles p_<slug>_rw / _ro / _bi / _api · RLS fail-closed
Objects    bucket p-<slug> + access key with a limited policy
Identity   groups proj-<slug> · proj-<slug>-admin
Catalog    Domain <slug>            BI   connection with p_<slug>_bi

And inside a project, tenants

A consortium with nine municipalities, a group with N subsidiaries: a secure layer of views filtered by tenant, fail-closed by design. A table that looks like tenant data without a registered key is exposed closed, never open.

Or your data in your own Postgres

Data residency: the control plane stays shared, the project's data lives in the client's database, in the client's network.

~30integrated applications behind one login
1 txto provision a fully isolated project
0open ports: exposure through tunnels, TLS everywhere