Pramiti Docs

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)

docker compose up -d

Starts all services:

ServiceImagePortPurpose
oxigraphghcr.io/oxigraph/oxigraph:latest7879SPARQL triplestore
postgrespgvector/pgvector:pg165435Database (pgvector-enabled)
ontop (optional)ontop/ontop:5.1.28081Virtual Knowledge Graph
trino (optional)trinodb/trino:latest8083Cross-source federation

Enable optional services with profiles:

docker compose --profile vkg up -d      # Include Ontop VKG
docker compose --profile trino up -d    # Include Trino federation

The demo database is seeded automatically with demo/schema.sql and demo/seed_data_v2.sql.

Aegis Only (docker-compose.aegis.yml)

docker compose -f docker-compose.aegis.yml up -d

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)

docker compose -f docker-compose.epistom.yml up -d

PostgreSQL + Oxigraph. Requires LLM credentials in .env.local. Runs with epistom_main:app.

Flight Recorder Standalone (docker-compose.flight-recorder.yml)

docker compose -f docker-compose.flight-recorder.yml up -d

Single container, SQLite by default, port 8080. No external dependencies. Configure with environment variables:

FR_DATABASE_URL=sqlite:////app/data/flight_recorder.db  # or postgresql://...
FR_SIGNING_PRIVATE_KEY=<base64-ed25519-key>
FR_API_KEY=<your-api-key>
FR_PORT=8080

Development (docker-compose.dev.yml)

docker compose -f docker-compose.dev.yml up -d

Hot-reload with source directory volume mounts for local development.

Testing (docker-compose.test.yml)

docker compose -f docker-compose.test.yml up -d

Ephemeral containers for CI/CD, typically used with pytest.

Data Persistence

All profiles use Docker volumes for data persistence:

VolumeServicePath
oxigraph_dataOxigraph/data
postgres_dataPostgreSQL/var/lib/postgresql/data
fr_dataFlight Recorder/app/data

To reset all data:

docker compose down -v

Environment Variables

Create .env.local from the template:

cp .env.example .env.local

See Configuration for all variables.