Installation
All deployment options — Docker Compose, Kubernetes, standalone packages
Pramiti supports multiple deployment models, from local Docker Compose to production Kubernetes clusters.
Docker Compose
One Compose file, docker-compose.yml, runs the laptop, demo and evaluation stacks. It is not a production deployment. Optional services sit behind profiles:
make retail-seed # once: builds the demo seed (not tracked in git)
make up # full platform: dev secrets, then docker compose up -d
docker compose --profile vkg up -d # + Ontop virtual knowledge graph
docker compose --profile praxom up -d # Praxom only: PostgreSQL, no Oxigraph, no LLM (praxom_main:app, port 8012)
docker compose --profile epistom up -d # Epistom only: PostgreSQL + Oxigraph + LLM (epistom_main:app, port 8011)
docker compose --profile flight-recorder up -d flight-recorder # standalone Flight Recorder, SQLite, port 8080The full platform starts PostgreSQL (port 5435), Oxigraph (7879), Redis (6380), the API (8001) and the console behind nginx (443 and 80), and loads the demo retail estate.
The standalone Flight Recorder reads these variables:
| Variable | Default | Description |
|---|---|---|
FR_DATABASE_URL | sqlite:////app/data/flight_recorder.db | Database connection string |
FR_SIGNING_PRIVATE_KEY | (empty) | Ed25519 private key for signing records |
FR_API_KEY | (empty) | API key for authentication |
FR_PORT | 8080 | HTTP port |
Docker Compose lists every service, profile, port and volume.
Kubernetes (Helm)
Production deployment uses the Helm chart in helm/epistom/:
helm install epistom ./helm/epistom \
--namespace epistom \
--create-namespace \
-f helm/epistom/values.yamlValues Files
| File | Use Case |
|---|---|
values.yaml | Production defaults |
values-dev.yaml | Development overrides (lower resource requests, debug logging) |
values-airgapped.yaml | Air-gapped deployments (private registries, no external network) |
Key Helm values:
# API replicas and resources
api:
replicas: 2
resources:
requests:
cpu: 500m
memory: 512Mi
# Database connection
database:
url: postgresql://user:pass@postgres:5432/epistom
# LLM provider
llm:
provider: anthropic
modelId: claude-sonnet-4-5
# Oxigraph (Epistom only)
oxigraph:
enabled: true
persistence:
size: 10GiStandalone Python Packages
Six packages can be installed independently via pip without running the full platform:
pip install pramiti-mcp-gateway # Free MCP security posture scanner
pip install pramiti-mcp-verify # Offline SEP-2828 attestation verifier
pip install pramiti-flight-recorder # Action audit trail with OCSF export
pip install pramiti-agent-finops # Per-agent cost caps and attribution
pip install pramiti-export-copilot # Deliver semantic models to a webhook, GitHub or GitLab
pip install pramiti-merger-reconciler # Cross-ontology class matching for M&AEach package is zero-dependency on the Pramiti platform and can run standalone.
Environment Configuration
See Configuration for the full environment variable reference. The minimum required variables are:
# Required for any deployment
EPISTOM_DATABASE_URL=postgresql://user:pass@host:5432/dbname
# Required for Epistom (NLQ)
EPISTOM_LLM_PROVIDER=anthropic
EPISTOM_ANTHROPIC_API_KEY=your-key
EPISTOM_OXIGRAPH_ENDPOINT=http://oxigraph:7878
# Required for production
EPISTOM_AUTH_DISABLED=false
EPISTOM_JWT_SECRET=your-256-bit-hex-secret
EPISTOM_ENCRYPTION_KEY=your-fernet-key