Docker Compose
6 compose profiles for different deployment scenarios
Six Docker Compose files cover different deployment scenarios, from full platform to individual products.
Profiles
Full Platform (docker-compose.yml)
Starts all services:
| Service | Image | Port | Purpose |
|---|---|---|---|
oxigraph | ghcr.io/oxigraph/oxigraph:latest | 7879 | SPARQL triplestore |
postgres | pgvector/pgvector:pg16 | 5435 | Database (pgvector-enabled) |
ontop (optional) | ontop/ontop:5.1.2 | 8081 | Virtual Knowledge Graph |
trino (optional) | trinodb/trino:latest | 8083 | Cross-source federation |
Enable optional services with profiles:
The demo database is seeded automatically with demo/schema.sql and demo/seed_data_v2.sql.
Aegis Only (docker-compose.aegis.yml)
PostgreSQL only. No Oxigraph, no LLM. Runs Alembic migrations for platform + Aegis schemas, then starts the API with aegis_main:app.
Epistom Only (docker-compose.epistom.yml)
PostgreSQL + Oxigraph. Requires LLM credentials in .env.local. Runs with epistom_main:app.
Flight Recorder Standalone (docker-compose.flight-recorder.yml)
Single container, SQLite by default, port 8080. No external dependencies. Configure with environment variables:
Development (docker-compose.dev.yml)
Hot-reload with source directory volume mounts for local development.
Testing (docker-compose.test.yml)
Ephemeral containers for CI/CD, typically used with pytest.
Data Persistence
All profiles use Docker volumes for data persistence:
| Volume | Service | Path |
|---|---|---|
oxigraph_data | Oxigraph | /data |
postgres_data | PostgreSQL | /var/lib/postgresql/data |
fr_data | Flight Recorder | /app/data |
To reset all data:
Environment Variables
Create .env.local from the template:
See Configuration for all variables.