Pramiti Docs

Docker Compose

Compose profiles for different deployment scenarios

Eight Docker Compose files cover different deployment scenarios, from full platform to individual products (base, dev, epistom, praxom, flight-recorder, prod-auth, loadtest, test). The profiles below are the ones you will use day to day; the full stack also includes redis (6380), api (8001→8000), ui, nginx, and a one-shot migration service.

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.

Praxom Only (docker-compose.praxom.yml)

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

PostgreSQL only. No Oxigraph, no LLM. Runs Alembic migrations for platform + Praxom schemas, then starts the API with praxom_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.