QANATIX
Getting Started

Installation

Set up QANATIX — EU Cloud or self-hosted on your infra.

Installation

QANATIX runs two ways. Same engine, same API, same code.

EU Cloud (managed)

Sign up at qanatix.com and get an API key. No infrastructure to manage.

Data residencyFrankfurt + Amsterdam
Uptime SLA99.9%
ComplianceGDPR native, ISO 27001
Setup time< 5 minutes

Your base URL: https://api.qanatix.com

Self-hosted (Docker Compose)

Run QANATIX on your own infrastructure. Full control, air-gapped support.

Prerequisites

  • Docker and Docker Compose
  • 4 GB RAM minimum
  • GPU recommended for large datasets (see Embedding Model)

Setup

Create a docker-compose.yml:

services:
  qanatix-api:
    image: ghcr.io/softure/qanatix:latest
    ports: ["8000:8000"]
    environment:
      DATABASE_URL: postgresql+asyncpg://qanatix:secret@postgres:5432/qanatix
      REDIS_URL: redis://redis:6379
      QDRANT_URL: http://qdrant:6333
      EMBEDDING_MODEL: BAAI/bge-m3
      EMBEDDING_DIMENSIONS: "1024"
      API_KEY_SALT: your-random-salt-here
      DEPLOYMENT_MODE: self_hosted
    depends_on: [postgres, redis, qdrant]

  qanatix-worker:
    image: ghcr.io/softure/qanatix:latest
    command: ["python", "-m", "qanatix.worker"]
    environment:
      DATABASE_URL: postgresql+asyncpg://qanatix:secret@postgres:5432/qanatix
      REDIS_URL: redis://redis:6379
      QDRANT_URL: http://qdrant:6333
      EMBEDDING_MODEL: BAAI/bge-m3
      EMBEDDING_DIMENSIONS: "1024"
    depends_on: [postgres, redis, qdrant]

  postgres:
    image: postgres:17
    environment:
      POSTGRES_USER: qanatix
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: qanatix
    volumes: ["pgdata:/var/lib/postgresql/data"]

  redis:
    image: redis:7-alpine
    volumes: ["redisdata:/data"]

  qdrant:
    image: qdrant/qdrant:latest
    volumes: ["qdrantdata:/qdrant/storage"]

volumes:
  pgdata:
  redisdata:
  qdrantdata:

Start everything:

docker compose up -d

Run database migrations:

docker compose exec qanatix-api alembic upgrade head

Verify:

curl http://localhost:8000/api/v1/health
# {"status": "ok", "version": "0.1.0"}

Your base URL: http://localhost:8000

Next steps

On this page