Pramiti Docs
Getting Started

Quickstart

Docker Compose quickstart

This guide gets the full Pramiti platform running locally with Docker Compose, including Epistom (semantic intelligence), Praxom (action validation), and a demo retail estate.

Prerequisites

  • Docker and Docker Compose v2+
  • An LLM API key (Anthropic Claude recommended, or OpenAI/Ollama)

Step 1: Clone and Configure

git clone https://github.com/pramiti-labs/epistom.git
cd epistom
cp .env.example .env.local

Edit .env.local and set your LLM API key:

# For Anthropic (recommended)
EPISTOM_LLM_PROVIDER=anthropic
EPISTOM_LLM_MODEL_ID=claude-sonnet-4-5
EPISTOM_ANTHROPIC_API_KEY=your-key-here

# For local development
EPISTOM_AUTH_DISABLED=true
EPISTOM_RATE_LIMIT=0

Step 2: Start the Platform

make retail-seed   # once: builds demo/retail-estate/seed.sql.gz (not tracked in git)
make up            # writes dev secrets to .env, then runs docker compose up -d

This starts all services:

ServicePortPurpose
PostgreSQL5435Demo retail estate + platform metadata
Oxigraph7879OWL/SPARQL triplestore for the knowledge model
API8001REST API + Praxom endpoints
Redis6380Live attestation feed and shared request stores
nginx443, 80TLS proxy in front of the API and the console

The demo database is seeded from demo/retail-estate/seed.sql.gz (retail estate schema and data) the first time PostgreSQL starts.

Step 3: Verify Services

# Check all services are healthy
docker compose ps

# Test the API
curl http://localhost:8001/health

Step 4: Ask Your First Question

Use the MCP server or REST API to ask a natural language question:

curl -X POST http://localhost:8001/api/v1/query \
  -H "Content-Type: application/json" \
  -d '{"question": "What is the total revenue by customer?"}'

The platform will:

  1. Route the question through the NLQ engine
  2. Look up "revenue" in the knowledge model (defined as net_amount on paid invoices)
  3. Generate validated SQL using the correct business definition
  4. Return the answer with a confidence score

Step 5: See an Praxom Verdict

Test the action validation endpoint:

curl -X POST http://localhost:8001/api/v1/praxom/evaluate \
  -H "Content-Type: application/json" \
  -d '{
    "agent_identity": "test-agent",
    "verb": "update",
    "target_tool": "update_customer",
    "payload": {"customer_id": 1, "status": "churned"}
  }'

Praxom returns a verdict (ALLOW, DENY, REWRITE, or ESCALATE) with a signed attestation record.

Product-Specific Profiles

You can also run individual products:

# Praxom only (PostgreSQL, no Oxigraph, no LLM) — API on port 8012
docker compose --profile praxom up -d

# Epistom only (PostgreSQL + Oxigraph + LLM) — API on port 8011
docker compose --profile epistom up -d

# Flight Recorder standalone (SQLite, no dependencies) — port 8080
docker compose --profile flight-recorder up -d flight-recorder

Next Steps

  • Installation — All deployment options including Kubernetes
  • Core Concepts — Understand the two-plane model and knowledge model
  • Epistom — Deep dive into the semantic intelligence engine
  • Praxom — Deep dive into the action validation control plane

On this page