Get started¶
These five steps go from nothing to an answered question, in order. Each step ends where the next one begins.
flowchart LR
A[1. Install<br/>start the portal] --> B[2. Connect<br/>your warehouse]
B --> C[3. Start<br/>the services]
C --> D[4. Build<br/>the data model]
D --> E[5. Ask<br/>your first question]
| Step | You do | You end with |
|---|---|---|
| 1. Install and start the portal | Clone, fill in .env, make web |
The portal open on its setup screen |
| 2. Connect your warehouse | Fill in the connection form | Connection settings stored; nothing contacted yet |
| 3. Start the services | Download two compose files, docker compose up -d, paste two addresses |
The semantic layer and the sandbox running and checked |
| 4. Build the data model | Pick tables, click Build | Cube serving a model of your data |
| 5. Ask your first question | Type a question | An answer, with the query and every step behind it |
Before you begin¶
| You need | For |
|---|---|
| Python 3.12+ and uv | the portal |
| Node.js 22 and npm | building the browser app |
| Docker with Compose | the two services the portal talks to |
An Azure OpenAI deployment, API version 2025-03-01-preview or later |
every agent |
| A warehouse Docker can reach, and a user that can read it | Cube connects to it; the portal never does |
Steps 2 to 4 happen on the portal's setup screen, Set up your data, whose four numbered steps open one after another. Steps 4 and 5 call the AI; the rest do not.
Set up your data
The portal runs nothing itself. You give it a connection, it gives you a file per deployment, and you run those wherever you like — this machine or a server. Then it needs the addresses back, and it builds your data model.
- ✓Your database or warehouseretail · PostgreSQL — stored, and the deployment secrets are minted.
- 2The semantic layer
Cube, the model store that holds your data model, and Cube Store. Everything the agent answers comes through it.
⤓ Download docker-compose.yml - 3The sandboxOnce the previous step is done.
- 4The data modelOnce the previous step is done.
The setup screen once step 1 is done — the semantic layer is next.