Curltale AI

Docs › Get started

Install

Requirements, the install commands, the files you get, and the first sign-in.

Requirements: Docker with Compose v2, about 2 GB of memory for the app (the embedding model runs inside it), and an AI endpoint (an OpenRouter key, or your own OpenAI-compatible server) if you want Alfred and the Library's writing, checking and topic steps. Without one, everything else works: the model, search, agents, data, and the Library's storage and search (documents stay searchable by words and meaning; they just get no written page or topics until a model is configured).

cp docker-compose.example.yml docker-compose.yml   # adapt to your server if needed (proxy network, names, ports)
cp .env.example .env                               # fill in the REQUIRED values (openssl rand -hex 32 for secrets)
docker compose up -d

Open http://localhost:8080 and sign in with INITIAL_ADMIN_USERNAME / INITIAL_ADMIN_PASSWORD. Then, in the order that usually makes sense:

  1. AI endpoint (Settings > AI): address, key and model; press Test the endpoint. Optional, but Alfred and most of the Library need it.
  2. The ontology starts empty and the home page offers two ways to start: on Ontology > Changes & versions, download the blank Excel template, fill it in, upload it and publish; or on Settings > Connectors, add your database, read its structure, generate a draft model, review it and publish.
  3. Try it: build the demo database (Data > Browse) if you have no real data yet, ask Alfred a question, or create an MCP token (Users & access > Tokens & MCP) and connect an agent.
  4. Knowledge (optional): create a collection (Knowledge > Collections), give people the editor role and a grant, and add documents on Knowledge > Sources.
FilePurpose
docker-compose.example.ymlThe two core services: db (PostgreSQL 16 with pgvector) and app, listening on 127.0.0.1:8080 by default. ./data is mounted at /app/data.
docker-compose.worker.yml, docker-compose.fetcher.yml, docker-compose.storage.yml, docker-compose.demo.ymlThe optional services, added with -f (see Optional services).
.env.exampleEvery setting, marked required or optional, with the optional services' settings commented in.
Dockerfile, Dockerfile.fetcherThe app image and the browser service image.
db/init/Runs once on a new database: creates the app's own non-superuser account, the vector extension and ownership.
scripts/audit.shVulnerability scan of the locked Python packages and the frontend's runtime packages.

This documentation covers version 0.2.0. Something missing or wrong? Open an issue.