QANATIX
Deployment

Configuration

All environment variables for QANATIX.

Configuration

All QANATIX settings via environment variables.

Core

VariableDescriptionDefault
ENVEnvironment (development, production)development
DEBUGEnable debug modefalse
API_V1_PREFIXAPI route prefix/api/v1
DEPLOYMENT_MODEcloud or self_hostedself_hosted

Infrastructure

VariableDescriptionDefault
DATABASE_URLAsync Postgres connection stringpostgresql+asyncpg://qanatix:qanatix@localhost:5434/qanatix
DB_POOL_SIZESQLAlchemy connection pool size20
DB_MAX_OVERFLOWMax overflow connections10
REDIS_URLRedis connection stringredis://localhost:6380/0
QDRANT_URLQdrant HTTP URLhttp://localhost:6333
QDRANT_API_KEYQdrant API key (optional)

Embedding

BGE-M3 produces dense, sparse, and ColBERT vectors in a single pass — no API key needed. See Embedding Model for details.

VariableDescriptionDefault
EMBEDDING_MODELHuggingFace model nameBAAI/bge-m3
EMBEDDING_DIMENSIONSVector dimensions1024

Security

VariableDescriptionDefault
API_KEY_SALTSalt for API key hashing (must change in production)change-me-to-a-random-string
CONNECTOR_ENCRYPTION_KEYFernet key for connector credential encryption (comma-separated for key rotation via MultiFernet)Auto-generated in dev
WEBHOOK_SECRETHMAC-SHA256 secret for webhook verification
CORS_ORIGINSAllowed origins (comma-separated, must not be * in production)*

Ingestion

VariableDescriptionDefault
INGESTION_MAX_FILE_SIZEMax upload file size in bytes52428800 (50 MB)
INGESTION_BATCH_SIZEMax records per batch5000
INGESTION_ERROR_THRESHOLDCircuit breaker error ratio0.1 (10%)
INGESTION_MAX_ERRORSMax errors before circuit break1000

Pipeline

VariableDescriptionDefault
PIPELINE_BATCH_SIZEEntities per embedding batch20
PIPELINE_MAX_RETRIESMax retry attempts for failed embeddings3
PIPELINE_WORKER_CONCURRENCYSAQ worker concurrency10
PIPELINE_JOB_TIMEOUTJob timeout in seconds300
CIRCUIT_BREAKER_THRESHOLDFailures before circuit opens5
CIRCUIT_BREAKER_COOLDOWNCooldown before retry in seconds60
EMBEDDING_CACHE_TTLEmbedding cache TTL in seconds604800 (7 days)
VariableDescriptionDefault
SEARCH_MAX_QUERY_LENGTHMax query string length500
SEARCH_MAX_FILTERSMax filters per query20
SEARCH_MAX_LIMITMax results per query100
SEARCH_SPARSE_PREFETCHSparse vector candidates50
SEARCH_DENSE_PREFETCHDense vector candidates50
SEARCH_COLBERT_RESCORE_LIMITColBERT rescore candidates20
SEARCH_RERANKER_ENABLEDEnable cross-encoder rerankingtrue
SEARCH_RERANKER_MODELReranker modelBAAI/bge-reranker-v2-m3

Rate Limiting

VariableDescriptionDefault
RATE_LIMIT_ENABLEDEnable rate limitingtrue

Deployment

VariableDescriptionDefault
LOG_LEVELLogging levelINFO
WEB_CONCURRENCYUvicorn worker count1

Default ports

ServiceDefault port
QANATIX API8000
Postgres5432 (dev: 5434)
Redis6379 (dev: 6380)
Qdrant6333

Production validation

In production (ENV=production), QANATIX validates:

  • API_KEY_SALT must not be the default value
  • CORS_ORIGINS must not be wildcard ["*"]

On this page