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:
- AI endpoint (Settings > AI): address, key and model; press Test the endpoint. Optional, but Alfred and most of the Library need it.
- 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.
- 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.
- Knowledge (optional): create a collection (Knowledge > Collections), give people the editor role and a grant, and add documents on Knowledge > Sources.
| File | Purpose |
|---|---|
docker-compose.example.yml | The 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.yml | The optional services, added with -f (see Optional services). |
.env.example | Every setting, marked required or optional, with the optional services' settings commented in. |
Dockerfile, Dockerfile.fetcher | The 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.sh | Vulnerability scan of the locked Python packages and the frontend's runtime packages. |