Self-host NornicDB
v1.4.3Neo4j-compatible graph and vector database with MVCC
$ docker run -d --name nornicdb -p 7474:7474 -p 7687:7687 -v nornicdb-data:/data timothyswt/nornicdb-arm64-metal-bge:latest # Apple Silicon- Stars
- 920
- Ports
- 7474 (HTTP API and admin UI), 7687 (Bolt protocol (Neo4j compatible))
timothyswt/nornicdb-arm64-metal-bgeWhat is NornicDB?
NornicDB is a Go-based graph database aimed at AI workloads such as agent memory, Graph-RAG style retrieval pipelines, and canonical truth stores, keeping graph traversal, vector lookup, and temporal history inside a single engine. It answers Neo4j's Bolt protocol and Cypher (including part of the Cypher 25 grammar), preserves Qdrant-style gRPC workflows, and additionally exposes REST, GraphQL, and its own additive gRPC surface. Retrieval features cover HNSW vector indexes, fusion of vector and BM25 results with optional reranking, managed embeddings from local models or external providers, policy-driven decay and promotion scoring, automatically created links, and an MCP endpoint for AI agents. The storage layer runs MVCC with snapshot isolation, so it supports as-of reads, tritemporal facts, commit-time conflict detection, and audit-oriented extras like opt-in retention policies and GDPR erasure tracking. Metal, CUDA, and Vulkan paths accelerate graph and semantic work. Items the project marks complete on its roadmap include clustering, sharding, a bulk import tool, and 950+ APOC-style functions with a .so plugin system. You can run it through a Homebrew tap, one of many Docker images on Docker Hub (model-bundled, bring-your-own-model, or headless API-only), or a binary built from source, with the admin UI on port 7474. It is MIT-licensed with a defensive patent grant, and remains young (first released December 2025); fine-grained RBAC extensions, user impersonation, and change-data-capture are still only planned.
Should you self-host NornicDB?
NornicDB scores 52/100 on selfhost.directory (how scoring works) and ranks #5 of 7 in Databases & storage. It has 920 GitHub stars.
It shipped 8 stable releases in the past year. The latest, v1.4.3, came out on 16 October 2026. New versions land roughly every 3 days.
Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Go.
Its closest alternative on selfhost.directory is SurrealDB (78/100, 33 241 stars). It scores higher overall, so compare the two before you pick. See NornicDB vs SurrealDB side by side.
Features
- APOC-style function library and plugin system
- Auto-relationships
- Clustering and sharding
- Embedded AI assistant (Heimdall)
- GPU acceleration (Metal/CUDA/Vulkan)
- GraphQL API
- Graph + vector database
- Hybrid search (BM25 + vector)
- MCP server for AI agents
- Memory decay and promotion policies
- MVCC snapshot isolation and historical reads
- Neo4j Bolt/Cypher compatibility
- Qdrant-compatible gRPC
- REST API
- Vector search (HNSW)
NornicDB README
How to install NornicDB
Install NornicDB with Docker
# Apple Silicon (includes bge-m3 embedding model)
docker run -d --name nornicdb \
-p 7474:7474 -p 7687:7687 \
-v nornicdb-data:/data \
timothyswt/nornicdb-arm64-metal-bge:latest # Apple Silicon
# timothyswt/nornicdb-amd64-cuda-bge:latest # NVIDIA GPU
Multiple image variants: CPU, CUDA, Metal, Vulkan, BYOM and headless.
Install NornicDB with Homebrew
Homebrew
brew tap orneryd/nornicdb && brew install nornicdb && brew services start nornicdb
Install NornicDB with Build from Source
git clone https://github.com/orneryd/NornicDB.git
cd NornicDB
go build -o nornicdb ./cmd/nornicdb
./nornicdb serve
How to configure NornicDB
NORNICDB_ACCESS_CONTROL_ENABLED=See sourceAccess control enabledAccess control enabled
values: string
NORNICDB_ADDRESS=127.0.0.1Bind address (127.0.0.1 for localhost only, 0.0.0.0 for all interfaces)Bind address (127.0.0.1 for localhost only, 0.0.0.0 for all interfaces)
values: string
NORNICDB_ALLOW_HTTP=See sourceAllowHTTP permits non-TLS connections (development only)AllowHTTP permits non-TLS connections (development only)
values: string
NORNICDB_ALLOW_REMOTE_EVAL=(unset)Allow remote evalAllow remote eval
values: string
NORNICDB_ANONYMIZATION_ENABLED=See sourceAnonymization enabledAnonymization enabled
values: string
NORNICDB_ANONYMIZATION_METHOD=See sourceAnonymization methodAnonymization method
values: string
NORNICDB_APOC_=See sourceApocApoc
values: string
NORNICDB_APOC_ALGO_ENABLED=See sourceApoc algo enabledApoc algo enabled
values: string
NORNICDB_APOC_SECURITY_ALLOW_DYNAMIC_CREATION=(unset)Apoc security allow dynamic creationApoc security allow dynamic creation
values: string
NORNICDB_APOC_SECURITY_ALLOW_EXPORT_FILE_ACCESS=(unset)Allow APOC export procedures to write local filesAllow APOC export procedures to write local files
values: string
NORNICDB_APOC_SECURITY_ALLOW_FILE_ACCESS=(unset)Legacy shorthand enabling both APOC import and export local file accessLegacy shorthand enabling both APOC import and export local file access
values: string
NORNICDB_APOC_SECURITY_ALLOW_IMPORT_FILE_ACCESS=(unset)Allow APOC import and load procedures to read local filesAllow APOC import and load procedures to read local files
values: string
NORNICDB_APOC_SECURITY_ALLOW_REMOTE_URL_ACCESS=(unset)Allow APOC load/import procedures to fetch remote HTTP(S) URLsAllow APOC load/import procedures to fetch remote HTTP(S) URLs
values: string
NORNICDB_APOC_SECURITY_FILE_ACCESS_ROOT=(unset)Root directory used to normalize and constrain APOC local file paths when setRoot directory used to normalize and constrain APOC local file paths when set
values: string
NORNICDB_APOC_SECURITY_MAX_COLLECTION_SIZE=(unset)Apoc security max collection sizeApoc security max collection size
values: string
NORNICDB_ASYNC_FLUSH_INTERVAL=autoAsyncFlushInterval is the initial rotation delay for the adaptive write-behind buffer. `auto` (default) lets the runtime adapt the delay to the measured drain latency, clamped to 5ms-1s. A positive value fixes the initial delay; it still adapts afterward.AsyncFlushInterval is the initial rotation delay for the adaptive write-behind buffer. `auto` (default) lets the runtime adapt the delay to the measured drain latency, clamped to 5ms-1s. A positive value fixes the initial delay; it still adapts afterward.
values: string
NORNICDB_ASYNC_MAX_EDGE_CACHE_SIZE=autoAsyncMaxEdgeCacheSize is a deprecated legacy cap on buffered edges. Prefer `NORNICDB_ASYNC_MAX_OPS`. When AsyncMaxOps is unset and either legacy cap is set, their sum is used as the generation cap. Kept for compatibility.AsyncMaxEdgeCacheSize is a deprecated legacy cap on buffered edges. Prefer `NORNICDB_ASYNC_MAX_OPS`. When AsyncMaxOps is unset and either legacy cap is set, their sum is used as the generation cap. Kept for compatibility.
values: number
NORNICDB_ASYNC_MAX_NODE_CACHE_SIZE=autoAsyncMaxNodeCacheSize is a deprecated legacy cap on buffered nodes. Prefer `NORNICDB_ASYNC_MAX_OPS`. When AsyncMaxOps is unset and either legacy cap is set, their sum is used as the generation cap. Kept for compatibility.AsyncMaxNodeCacheSize is a deprecated legacy cap on buffered nodes. Prefer `NORNICDB_ASYNC_MAX_OPS`. When AsyncMaxOps is unset and either legacy cap is set, their sum is used as the generation cap. Kept for compatibility.
values: number
NORNICDB_ASYNC_MAX_OPS=autoAsyncMaxOps caps the write-behind buffer's generation size in buffered operations. `auto` (default) uses the engine's researched default cap (100,000 ops); a positive value overrides it.AsyncMaxOps caps the write-behind buffer's generation size in buffered operations. `auto` (default) uses the engine's researched default cap (100,000 ops); a positive value overrides it.
values: number
NORNICDB_ASYNC_WRITES_ENABLED=See sourceAsyncWritesEnabled enables async writes for faster performance. Writes return immediately after caching; flushed to disk in background.AsyncWritesEnabled enables async writes for faster performance. Writes return immediately after caching; flushed to disk in background.
values: string
NORNICDB_AUDIT_ENABLED=See sourceAudit enabledAudit enabled
values: string
NORNICDB_AUDIT_LOG_PATH=See sourceAudit log pathAudit log path
values: string
NORNICDB_AUDIT_RETENTION_DAYS=0Audit retention daysAudit retention days
values: number
NORNICDB_AUTH=See sourceAuthAuth
values: string
NORNICDB_AUTH_JWT_SECRET=See sourceAuth jwt secretAuth jwt secret
values: string
NORNICDB_AUTH_PROVIDER=(unset)Auth providerAuth provider
values: string
NORNICDB_AUTH_TOKEN_EXPIRY=See sourceAuth token expiryAuth token expiry
values: string
NORNICDB_AUTO_LINKS_ENABLED=See sourceAuto links enabledAuto links enabled
values: boolean
NORNICDB_AUTO_LINKS_THRESHOLD=See sourceAuto links thresholdAuto links threshold
values: number
NORNICDB_AUTO_RECOVER_ON_CORRUPTION=(unset)Auto recover on corruptionAuto recover on corruption
values: string
NORNICDB_AUTO_TLP_ENABLED=See sourceAuto tlp enabledAuto tlp enabled
values: boolean
NORNICDB_AUTO_TLP_LLM_AUGMENT_ENABLED=See sourceAuto tlp llm augment enabledAuto tlp llm augment enabled
values: boolean
NORNICDB_AUTO_TLP_LLM_QC_ENABLED=See sourceAuto tlp llm qc enabledAuto tlp llm qc enabled
values: boolean
NORNICDB_BADGER_EDGE_TYPE_CACHE_MAX_TYPES=-1BadgerEdgeTypeCacheMaxTypes is the max distinct edge types to cache for GetEdgesByType. When exceeded, the cache is cleared (simple eviction).BadgerEdgeTypeCacheMaxTypes is the max distinct edge types to cache for GetEdgesByType. When exceeded, the cache is cleared (simple eviction).
values: number
NORNICDB_BADGER_NODE_CACHE_MAX_ENTRIES=-1BadgerNodeCacheMaxEntries is the max nodes to keep in the hot node cache. When exceeded, the cache is cleared (simple eviction).BadgerNodeCacheMaxEntries is the max nodes to keep in the hot node cache. When exceeded, the cache is cleared (simple eviction).
values: number
NORNICDB_BASE_PATH=See sourceBase URL path for reverse proxy deployment (e.g., /nornicdb)Base URL path for reverse proxy deployment (e.g., /nornicdb)
values: string
NORNICDB_BM25_PREFIX_MAX_EXPANSIONS=0Maximum bounded prefix expansions per query term. Set above zero only when partial-token matching is required; exact-token retrieval is the default.Maximum bounded prefix expansions per query term. Set above zero only when partial-token matching is required; exact-token retrieval is the default.
values: number
NORNICDB_BM25_PREFIX_MIN_LEN=3Bm25 prefix min lenBm25 prefix min len
values: number
NORNICDB_BOLT_ADDRESS=See sourceBolt addressBolt address
values: string
NORNICDB_BOLT_AUTH_TIMEOUT=30sPre-HELLO handshake/auth budget after transport selectionPre-HELLO handshake/auth budget after transport selection
values: duration
NORNICDB_BOLT_ENABLED=See sourceBolt enabledBolt enabled
values: string
NORNICDB_BOLT_MAX_CONNECTIONS=0Maximum concurrent Bolt connections, across raw, TLS and WebSocket transports; `0` leaves it uncappedMaximum concurrent Bolt connections, across raw, TLS and WebSocket transports; `0` leaves it uncapped
values: number
NORNICDB_BOLT_PORT=7687Bolt protocol port (Neo4j compatible)Bolt protocol port (Neo4j compatible)
values: number
NORNICDB_BOLT_SERVER_ANNOUNCEMENT=(unset)Override the Bolt `HELLO` SUCCESS `server` metadata for strict client compatibility checks such as `cypher-shell`Override the Bolt `HELLO` SUCCESS `server` metadata for strict client compatibility checks such as `cypher-shell`
values: string
NORNICDB_BOLT_SNIFF_TIMEOUT=5sBound on the transport-sniff peekBound on the transport-sniff peek
values: duration
NORNICDB_BOLT_STATEMENT_TIMEOUT=disabledFallback cap for a Bolt `RUN` when the client did not send `tx_timeout`Fallback cap for a Bolt `RUN` when the client did not send `tx_timeout`
values: duration
NORNICDB_BOLT_TLS_CERT=(unset)Path to Bolt TLS certificate PEM (cert rotation re-reads every 5s)Path to Bolt TLS certificate PEM (cert rotation re-reads every 5s)
values: string
NORNICDB_BOLT_TLS_CLIENT_AUTH_MODE=noneClient-cert handling: `none`, `request`, `request_verify`, `require_verify`Client-cert handling: `none`, `request`, `request_verify`, `require_verify`
values: string
NORNICDB_BOLT_TLS_CLIENT_CA=(unset)Path to client-CA bundle for mTLSPath to client-CA bundle for mTLS
values: string
NORNICDB_BOLT_TLS_ENABLED=See sourceBolt tls enabledBolt tls enabled
values: string
NORNICDB_BOLT_TLS_KEY=(unset)Path to Bolt TLS private key PEMPath to Bolt TLS private key PEM
values: string
NORNICDB_BOLT_TLS_REQUIRE=falseReject any plaintext connection on the Bolt port (raw OR ws)Reject any plaintext connection on the Bolt port (raw OR ws)
values: bool
NORNICDB_BOLT_WEBSOCKET_ALLOWED_ORIGINS=*Comma-separated allowlist of WS Origin headersComma-separated allowlist of WS Origin headers
values: string
NORNICDB_BOLT_WEBSOCKET_ENABLED=trueAccept WebSocket transport on the Bolt portAccept WebSocket transport on the Bolt port
values: bool
NORNICDB_BOLT_WEBSOCKET_MAX_MESSAGE_SIZE=65536Inbound WS BinaryMessage size limitInbound WS BinaryMessage size limit
values: number
NORNICDB_BOLT_WEBSOCKET_PING_INTERVAL=30sServer WS ping cadenceServer WS ping cadence
values: duration
NORNICDB_BOLT_WEBSOCKET_PONG_TIMEOUT=60sPong arrival deadlinePong arrival deadline
values: duration
NORNICDB_BOLT_WEBSOCKET_WRITE_BUFFER_SIZE=262144bufio writer size for WS sessionsbufio writer size for WS sessions
values: number
NORNICDB_BREACH_DETECTION_ENABLED=See sourceBreach detection enabledBreach detection enabled
values: string
NORNICDB_BREACH_NOTIFY_EMAIL=See sourceBreach notify emailBreach notify email
values: string
NORNICDB_BREACH_NOTIFY_WEBHOOK=See sourceBreach notify webhookBreach notify webhook
values: string
NORNICDB_CDC_RETENTION=48hHow long change data capture events are kept (Go duration); the last transaction's are always kept. See docs/user-guides/change-data-capture.mdHow long change data capture events are kept (Go duration); the last transaction's are always kept. See docs/user-guides/change-data-capture.md
values: duration
NORNICDB_CLUSTER_ADVERTISE_ADDR=See sourceCluster advertise address (defaults to bind addr)Cluster advertise address (defaults to bind addr)
values: string
NORNICDB_CLUSTER_BIND_ADDR=See sourceCluster bind address for replication protocol (e.g., 127.0.0.1:7000)Cluster bind address for replication protocol (e.g., 127.0.0.1:7000)
values: string
NORNICDB_CLUSTER_CONFLICT_STRATEGY=last_write_winsCluster conflict strategyCluster conflict strategy
values: string
NORNICDB_CLUSTER_CROSS_REGION_BATCH_SIZE=100Cluster cross region batch sizeCluster cross region batch size
values: number
NORNICDB_CLUSTER_CROSS_REGION_BATCH_TIMEOUT=100*time.MillisecondCluster cross region batch timeoutCluster cross region batch timeout
values: duration
NORNICDB_CLUSTER_CROSS_REGION_MODE=See sourceCluster cross region modeCluster cross region mode
values: string
NORNICDB_CLUSTER_DATA_DIR=See sourceCluster state directory (defaults to <data-dir>/replication)Cluster state directory (defaults to <data-dir>/replication)
values: string
NORNICDB_CLUSTER_HA_AUTO_FAILOVER=trueCluster ha auto failoverCluster ha auto failover
values: boolean
NORNICDB_CLUSTER_HA_FAILOVER_TIMEOUT=30*time.SecondCluster ha failover timeoutCluster ha failover timeout
values: duration
NORNICDB_CLUSTER_HA_HEARTBEAT_MS=See sourceCluster ha heartbeat msCluster ha heartbeat ms
values: string
NORNICDB_CLUSTER_HA_MAX_RECONNECT_BACKOFF=30*time.SecondCluster ha max reconnect backoffCluster ha max reconnect backoff
values: duration
NORNICDB_CLUSTER_HA_PEER_ADDR=See sourceHA standby peer cluster address (host:port)HA standby peer cluster address (host:port)
values: string
NORNICDB_CLUSTER_HA_RECONNECT_INTERVAL=5*time.SecondCluster ha reconnect intervalCluster ha reconnect interval
values: duration
NORNICDB_CLUSTER_HA_ROLE=See sourceHA standby role: primary\|standbyHA standby role: primary\|standby
values: string
NORNICDB_CLUSTER_HA_SYNC_MODE=See sourceCluster ha sync modeCluster ha sync mode
values: string
NORNICDB_CLUSTER_HA_WAL_BATCH_SIZE=1000Cluster ha wal batch sizeCluster ha wal batch size
values: number
NORNICDB_CLUSTER_HA_WAL_BATCH_TIMEOUT=10*time.MillisecondCluster ha wal batch timeoutCluster ha wal batch timeout
values: duration
NORNICDB_CLUSTER_MODE=See sourceCluster mode: standalone\|ha_standby\|raft\|multi_region (empty disables clustering)Cluster mode: standalone\|ha_standby\|raft\|multi_region (empty disables clustering)
values: string
NORNICDB_CLUSTER_NODE_ID=See sourceCluster node ID (empty auto-generates)Cluster node ID (empty auto-generates)
values: string
NORNICDB_CLUSTER_RAFT_BOOTSTRAP=falseRaft bootstrap (true for first node in a new cluster)Raft bootstrap (true for first node in a new cluster)
values: boolean
NORNICDB_CLUSTER_RAFT_CLUSTER_ID=nornicdbCluster raft cluster idCluster raft cluster id
values: string
NORNICDB_CLUSTER_RAFT_COMMIT_TIMEOUT=50*time.MillisecondCluster raft commit timeoutCluster raft commit timeout
values: duration
NORNICDB_CLUSTER_RAFT_ELECTION_TIMEOUT=1*time.SecondCluster raft election timeoutCluster raft election timeout
values: duration
NORNICDB_CLUSTER_RAFT_HEARTBEAT_TIMEOUT=100*time.MillisecondCluster raft heartbeat timeoutCluster raft heartbeat timeout
values: duration
NORNICDB_CLUSTER_RAFT_LEADER_LEASE_TIMEOUT=500*time.MillisecondCluster raft leader lease timeoutCluster raft leader lease timeout
values: duration
NORNICDB_CLUSTER_RAFT_MAX_APPEND_ENTRIES=64Cluster raft max append entriesCluster raft max append entries
values: number
NORNICDB_CLUSTER_RAFT_MAX_INFLIGHT_LOGS=512Cluster raft max inflight logsCluster raft max inflight logs
values: number
NORNICDB_CLUSTER_RAFT_PEERS=See sourceRaft peers (format: node2:host2:7000,node3:host3:7000)Raft peers (format: node2:host2:7000,node3:host3:7000)
values: string
NORNICDB_CLUSTER_RAFT_SNAPSHOT_INTERVAL=300Cluster raft snapshot intervalCluster raft snapshot interval
values: number
NORNICDB_CLUSTER_RAFT_SNAPSHOT_RETAIN=3Cluster raft snapshot retainCluster raft snapshot retain
values: number
NORNICDB_CLUSTER_RAFT_SNAPSHOT_THRESHOLD=10000Cluster raft snapshot thresholdCluster raft snapshot threshold
values: number
NORNICDB_CLUSTER_RAFT_TRAILING_LOGS=10000Cluster raft trailing logsCluster raft trailing logs
values: number
NORNICDB_CLUSTER_READ_CONSISTENCY=See sourceCluster read consistencyCluster read consistency
values: string
NORNICDB_CLUSTER_REGION_ID=See sourceCluster region idCluster region id
values: string
NORNICDB_CLUSTER_REMOTE_REGIONS=See sourceCluster remote regionsCluster remote regions
values: string
NORNICDB_CLUSTER_REPLICATION_SECRET=See sourceCluster replication secretCluster replication secret
values: string
NORNICDB_CLUSTER_TLS_CA_FILE=See sourceCluster tls ca fileCluster tls ca file
values: string
NORNICDB_CLUSTER_TLS_CERT_FILE=See sourceCluster tls cert fileCluster tls cert file
values: string
NORNICDB_CLUSTER_TLS_CIPHER_SUITES=See sourceCluster tls cipher suitesCluster tls cipher suites
values: string
NORNICDB_CLUSTER_TLS_ENABLED=falseCluster tls enabledCluster tls enabled
values: boolean
NORNICDB_CLUSTER_TLS_INSECURE_SKIP_VERIFY=falseCluster tls insecure skip verifyCluster tls insecure skip verify
values: boolean
NORNICDB_CLUSTER_TLS_KEY_FILE=See sourceCluster tls key fileCluster tls key file
values: string
NORNICDB_CLUSTER_TLS_MIN_VERSION=1.2Cluster tls min versionCluster tls min version
values: string
NORNICDB_CLUSTER_TLS_SERVER_NAME=See sourceCluster tls server nameCluster tls server name
values: string
NORNICDB_CLUSTER_TLS_VERIFY_CLIENT=trueCluster tls verify clientCluster tls verify client
values: boolean
NORNICDB_CLUSTER_TRACE_WRITES=(unset)Cluster trace writesCluster trace writes
values: string
NORNICDB_CLUSTER_WRITE_CONSISTENCY=See sourceCluster write consistencyCluster write consistency
values: string
NORNICDB_CONFIG=See sourcePath to YAML config file (overrides auto-discovery)Path to YAML config file (overrides auto-discovery)
values: string
NORNICDB_CONSENT_AUDIT_TRAIL=See sourceConsent audit trailConsent audit trail
values: string
NORNICDB_CONSENT_REQUIRED=See sourceConsent requiredConsent required
values: string
NORNICDB_CONSENT_VERSIONING=See sourceConsent versioningConsent versioning
values: string
NORNICDB_COOLDOWN_AUTO_INTEGRATION_ENABLED=See sourceCooldown auto integration enabledCooldown auto integration enabled
values: string
NORNICDB_COOLDOWN_ENABLED=See sourceCooldown enabledCooldown enabled
values: string
NORNICDB_CORS_ENABLED=See sourceEnableCORS enables CORS headers for cross-origin requestsEnableCORS enables CORS headers for cross-origin requests
values: string
NORNICDB_CORS_ORIGINS=See sourceCORSOrigins is a comma-separated list of allowed origins Use "\*" to allow all origins (not recommended for production with credentials)CORSOrigins is a comma-separated list of allowed origins Use "\*" to allow all origins (not recommended for production with credentials)
values: string
NORNICDB_CYPHER_QUERY_NORMALIZATION=trueNormalizes Cypher query text before a statement runs: comments and runs of whitespace outside string literals and quoted names become one space, as Neo4j ignores them. Column names, error messages and plans still show the statement as sent.Normalizes Cypher query text before a statement runs: comments and runs of whitespace outside string literals and quoted names become one space, as Neo4j ignores them. Column names, error messages and plans still show the statement as sent.
values: boolean
NORNICDB_DATA_ACCESS_ENABLED=See sourceData access enabledData access enabled
values: string
NORNICDB_DATA_DIR=./dataData directoryData directory
values: string
NORNICDB_DATA_ERASURE_ENABLED=See sourceData erasure enabledData erasure enabled
values: string
NORNICDB_DATA_EXPORT_ENABLED=See sourceData export enabledData export enabled
values: string
NORNICDB_DEBUG=(unset)DebugDebug
values: string
NORNICDB_DEFAULT_DATABASE=See sourceDefault databaseDefault database
values: string
NORNICDB_EDGE_DECAY_ENABLED=See sourceEdge decay enabledEdge decay enabled
values: string
NORNICDB_EDGE_PROVENANCE_AUTO_INTEGRATION_ENABLED=See sourceEdge provenance auto integration enabledEdge provenance auto integration enabled
values: string
NORNICDB_EDGE_PROVENANCE_ENABLED=See sourceEdge provenance enabledEdge provenance enabled
values: string
NORNICDB_EMBED_BATCH_DELAY=See sourceEmbed batch delayEmbed batch delay
values: duration
NORNICDB_EMBED_CHUNK_OVERLAP=0Embed chunk overlapEmbed chunk overlap
values: number
NORNICDB_EMBED_CHUNK_SIZE=0Embed chunk sizeEmbed chunk size
values: number
NORNICDB_EMBEDDING_API_KEY=See sourceEmbeddings API key (OpenAI-compatible providers, including OrcaRouter and Voyage)Embeddings API key (OpenAI-compatible providers, including OrcaRouter and Voyage)
values: string
NORNICDB_EMBEDDING_API_URL=http://localhost:11434Embedding API URL (Ollama, OpenAI-compatible providers, or Voyage)Embedding API URL (Ollama, OpenAI-compatible providers, or Voyage)
values: string
NORNICDB_EMBEDDING_ATTENTION_TYPE=1Attention masking for embedding model (0=causal, 1=non-causal/BERT-style). Default: 1 (non-causal).Attention masking for embedding model (0=causal, 1=non-causal/BERT-style). Default: 1 (non-causal).
values: number
NORNICDB_EMBEDDING_CACHE_SIZE=10000Embedding cache size (0=disabled, default 10000)Embedding cache size (0=disabled, default 10000)
values: number
NORNICDB_EMBEDDING_CTX_TYPE=0llama.cpp context type for embedding model (0=default, 1=MTP). Only set to 1 if the model has MTP layers.llama.cpp context type for embedding model (0=default, 1=MTP). Only set to 1 if the model has MTP layers.
values: number
NORNICDB_EMBEDDING_DIMENSIONS=1024Embedding dimensionsEmbedding dimensions
values: number
NORNICDB_EMBEDDING_ENABLED=falseEnable embedding generation (semantic search). Default is off unless enabled via config/env.Enable embedding generation (semantic search). Default is off unless enabled via config/env.
values: boolean
NORNICDB_EMBEDDING_FLASH_ATTN=-1Flash attention for embedding model (-1=auto, 0=disabled, 1=enabled). Default: -1 (auto-detect).Flash attention for embedding model (-1=auto, 0=disabled, 1=enabled). Default: -1 (auto-detect).
values: number
NORNICDB_EMBEDDING_GPU_LAYERS=-1GPU layers for local provider: -1=auto, 0=CPU onlyGPU layers for local provider: -1=auto, 0=CPU only
values: number
NORNICDB_EMBEDDING_INCLUDE_LABELS=See sourceEmbedding include labelsEmbedding include labels
values: boolean
NORNICDB_EMBEDDING_LAZY_MODE=1llama.cpp lazy tensor loading for the embedding model (0=off, 1=auto, 2=on).llama.cpp lazy tensor loading for the embedding model (0=off, 1=auto, 2=on).
values: number
NORNICDB_EMBEDDING_MODE=textProvider-specific embedding modeProvider-specific embedding mode
values: string
NORNICDB_EMBEDDING_MODEL=bge-m3Embedding model nameEmbedding model name
values: string
NORNICDB_EMBEDDING_POOLING_TYPE=1Embedding pooling strategy (1=mean, 2=cls, 3=last, 4=rank). Default: 1 (mean pooling).Embedding pooling strategy (1=mean, 2=cls, 3=last, 4=rank). Default: 1 (mean pooling).
values: number
NORNICDB_EMBEDDING_PROPERTIES_EXCLUDE=See sourceEmbedding properties excludeEmbedding properties exclude
values: string
NORNICDB_EMBEDDING_PROPERTIES_INCLUDE=See sourceEmbedding properties includeEmbedding properties include
values: string
NORNICDB_EMBEDDING_PROVIDER=localEmbedding provider: local, ollama, openai, orca, voyageEmbedding provider: local, ollama, openai, orca, voyage
values: string
NORNICDB_EMBEDDING_RELATIONSHIP_PROPERTIES_EXCLUDE=(unset)Properties never used in relationship search embedding text. Unset, `NORNICDB_EMBEDDING_PROPERTIES_EXCLUDE` applies.Properties never used in relationship search embedding text. Unset, `NORNICDB_EMBEDDING_PROPERTIES_EXCLUDE` applies.
values: string
NORNICDB_EMBEDDING_RELATIONSHIP_PROPERTIES_INCLUDE=(unset)Only these properties build relationship search embedding text. Unset, `NORNICDB_EMBEDDING_PROPERTIES_INCLUDE` applies.Only these properties build relationship search embedding text. Unset, `NORNICDB_EMBEDDING_PROPERTIES_INCLUDE` applies.
values: string
NORNICDB_EMBEDDING_WARMUP_INTERVAL=See sourceEmbeddingWarmupInterval for periodic model warmupEmbeddingWarmupInterval for periodic model warmup
values: duration
NORNICDB_EMBED_MAX_RETRIES=0Embed max retriesEmbed max retries
values: number
NORNICDB_EMBED_SCAN_INTERVAL=See sourceEmbed scan intervalEmbed scan interval
values: duration
NORNICDB_EMBED_WORKER_NUM_WORKERS=1Number of concurrent background embedding workers. Set to `0` to stop background embedding while keeping embedding and stored-vector search enabled. Negative values retain the default.Number of concurrent background embedding workers. Set to `0` to stop background embedding while keeping embedding and stored-vector search enabled. Negative values retain the default.
values: number
NORNICDB_ENCRYPTION_AT_REST=See sourceEncryption at restEncryption at rest
values: string
NORNICDB_ENCRYPTION_AUDIT_LOG_PATH=<data_dir>/encryption-audit.jsonlLocal JSONL path for provider-backed audit eventsLocal JSONL path for provider-backed audit events
values: string
NORNICDB_ENCRYPTION_AUDIT_SIGN_EVENTS=falseEnable HMAC signing for local encryption audit eventsEnable HMAC signing for local encryption audit events
values: boolean
NORNICDB_ENCRYPTION_AUDIT_SIGN_KEY=(unset)HMAC signing key for local encryption audit eventsHMAC signing key for local encryption audit events
values: string
NORNICDB_ENCRYPTION_AWS_KMS_KEY_ID=(unset)AWS KMS key ID or ARN used to wrap the database DEKAWS KMS key ID or ARN used to wrap the database DEK
values: string
NORNICDB_ENCRYPTION_AWS_REGION=(unset)AWS region for AWS KMS-backed wrappingAWS region for AWS KMS-backed wrapping
values: string
NORNICDB_ENCRYPTION_AZURE_KEY_NAME=(unset)Azure Key Vault key name used to wrap the database DEKAzure Key Vault key name used to wrap the database DEK
values: string
NORNICDB_ENCRYPTION_AZURE_VAULT_NAME=(unset)Azure Key Vault name used for Key Vault-backed wrappingAzure Key Vault name used for Key Vault-backed wrapping
values: string
NORNICDB_ENCRYPTION_ENABLED=falseEncryptionEnabled controls whether database encryption is activeEncryptionEnabled controls whether database encryption is active
values: boolean
NORNICDB_ENCRYPTION_GCP_KEY_NAME=(unset)GCP Cloud KMS key name used to wrap the database DEKGCP Cloud KMS key name used to wrap the database DEK
values: string
NORNICDB_ENCRYPTION_GCP_KEY_RING=(unset)GCP Cloud KMS key ring used for wrapped-DEK operationsGCP Cloud KMS key ring used for wrapped-DEK operations
values: string
NORNICDB_ENCRYPTION_GCP_LOCATION=(unset)GCP location for the Cloud KMS keyGCP location for the Cloud KMS key
values: string
NORNICDB_ENCRYPTION_GCP_PROJECT=(unset)GCP project containing the Cloud KMS keyGCP project containing the Cloud KMS key
values: string
NORNICDB_ENCRYPTION_IN_TRANSIT=See sourceEncryption in transitEncryption in transit
values: string
NORNICDB_ENCRYPTION_KEY_PATH=See sourceEncryption key pathEncryption key path
values: string
NORNICDB_ENCRYPTION_KEY_URI=(unset)Logical or provider-native key URI recorded with persisted wrapped-DEK metadataLogical or provider-native key URI recorded with persisted wrapped-DEK metadata
values: string
NORNICDB_ENCRYPTION_MASTER_KEY=(unset)Local provider KEK material for dev/test CMEK modeLocal provider KEK material for dev/test CMEK mode
values: string
NORNICDB_ENCRYPTION_PASSWORD=See sourceEncryptionPassword for database encryption at rest Required when EncryptionEnabled is true. Use a strong password in production.EncryptionPassword for database encryption at rest Required when EncryptionEnabled is true. Use a strong password in production.
values: string
NORNICDB_ENCRYPTION_PROVIDER=passwordSelects the at-rest encryption key-management mode for the database DEKSelects the at-rest encryption key-management mode for the database DEK
values: string
NORNICDB_ENCRYPTION_ROTATION_ENABLED=trueEnable automatic wrapped-DEK rotation checks for provider-backed modesEnable automatic wrapped-DEK rotation checks for provider-backed modes
values: boolean
NORNICDB_ENCRYPTION_ROTATION_INTERVAL=2160hInterval used to decide when the persisted wrapped DEK should be rewrappedInterval used to decide when the persisted wrapped DEK should be rewrapped
values: duration
NORNICDB_ENV=See sourceEnvironment is the runtime environment (development, production)Environment is the runtime environment (development, production)
values: string
NORNICDB_EVIDENCE_AUTO_INTEGRATION_ENABLED=See sourceEvidence auto integration enabledEvidence auto integration enabled
values: string
NORNICDB_EVIDENCE_BUFFERING_ENABLED=See sourceEvidence buffering enabledEvidence buffering enabled
values: string
NORNICDB_FORCE_CPU=(unset)Force cpuForce cpu
values: string
NORNICDB_GC_PERCENT=0Gc percentGc percent
values: number
NORNICDB_GPU_BACKEND=See sourceGPU backend: vulkan, cuda, metal, opencl (empty=auto-detect)GPU backend: vulkan, cuda, metal, opencl (empty=auto-detect)
values: string
NORNICDB_GPU_CLUSTERING_AUTO_INTEGRATION_ENABLED=See sourceGpu clustering auto integration enabledGpu clustering auto integration enabled
values: string
NORNICDB_HEADLESS=falseDisable embedded UI assets, SPA/bootstrap routes, and browser IDEs; core APIs remain availableDisable embedded UI assets, SPA/bootstrap routes, and browser IDEs; core APIs remain available
values: boolean
NORNICDB_HEIMDALL_ANOMALY_DETECTION=See sourceHeimdall anomaly detectionHeimdall anomaly detection
values: string
NORNICDB_HEIMDALL_API_KEY=See sourceHeimdall API key (required for OpenAI and Orca)Heimdall API key (required for OpenAI and Orca)
values: string
NORNICDB_HEIMDALL_API_URL=See sourceHeimdall API URLHeimdall API URL
values: string
NORNICDB_HEIMDALL_ATTENTION_TYPE=0Attention masking for Heimdall model (0=causal, 1=non-causal). Default: 0 (causal for generation).Attention masking for Heimdall model (0=causal, 1=non-causal). Default: 0 (causal for generation).
values: number
NORNICDB_HEIMDALL_BATCH_SIZE=0Heimdall batch sizeHeimdall batch size
values: number
NORNICDB_HEIMDALL_CONTEXT_SIZE=0Heimdall context sizeHeimdall context size
values: number
NORNICDB_HEIMDALL_CTX_TYPE=0llama.cpp context type for Heimdall model (0=default, 1=MTP). Only set to 1 if the model has MTP layers.llama.cpp context type for Heimdall model (0=default, 1=MTP). Only set to 1 if the model has MTP layers.
values: number
NORNICDB_HEIMDALL_ENABLED=See sourceHeimdall enabledHeimdall enabled
values: string
NORNICDB_HEIMDALL_FLASH_ATTN=-1Flash attention for Heimdall model (-1=auto, 0=disabled, 1=enabled). Default: -1 (auto-detect).Flash attention for Heimdall model (-1=auto, 0=disabled, 1=enabled). Default: -1 (auto-detect).
values: number
NORNICDB_HEIMDALL_GPU_LAYERS=0Heimdall gpu layersHeimdall gpu layers
values: number
NORNICDB_HEIMDALL_LAZY_MODE=1llama.cpp lazy tensor loading for the Heimdall model (0=off, 1=auto, 2=on).llama.cpp lazy tensor loading for the Heimdall model (0=off, 1=auto, 2=on).
values: number
NORNICDB_HEIMDALL_MAX_CONTEXT_TOKENS=0Heimdall max context tokensHeimdall max context tokens
values: number
NORNICDB_HEIMDALL_MAX_SYSTEM_TOKENS=0Heimdall max system tokensHeimdall max system tokens
values: number
NORNICDB_HEIMDALL_MAX_TOKENS=0Heimdall max tokensHeimdall max tokens
values: number
NORNICDB_HEIMDALL_MAX_USER_TOKENS=0Heimdall max user tokensHeimdall max user tokens
values: number
NORNICDB_HEIMDALL_MCP_ENABLE=(unset)Heimdall mcp enableHeimdall mcp enable
values: string
NORNICDB_HEIMDALL_MCP_TOOLS=See sourceHeimdall mcp toolsHeimdall mcp tools
values: string
NORNICDB_HEIMDALL_MEMORY_CURATION=See sourceHeimdall memory curationHeimdall memory curation
values: string
NORNICDB_HEIMDALL_MODEL=See sourceHeimdall modelHeimdall model
values: string
NORNICDB_HEIMDALL_PLUGINS_DIR=See sourceHeimdallPluginsDir is the directory for Heimdall pluginsHeimdallPluginsDir is the directory for Heimdall plugins
values: string
NORNICDB_HEIMDALL_POOLING_TYPE=-1Pooling strategy for Heimdall model (0=none, 1=mean, 2=cls, 3=last). Default: -1 (unspecified/none for generation).Pooling strategy for Heimdall model (0=none, 1=mean, 2=cls, 3=last). Default: -1 (unspecified/none for generation).
values: number
NORNICDB_HEIMDALL_PROVIDER=See sourceHeimdall provider: local, ollama, openai, orca, vllm, or litellmHeimdall provider: local, ollama, openai, orca, vllm, or litellm
values: string
NORNICDB_HEIMDALL_RUNTIME_DIAGNOSIS=See sourceHeimdall runtime diagnosisHeimdall runtime diagnosis
values: string
NORNICDB_HEIMDALL_TEMPERATURE=See sourceHeimdall temperatureHeimdall temperature
values: string
NORNICDB_HNSW_BUILD_GPU_BATCH_SIZE=2048HNSW GPU build batch sizeHNSW GPU build batch size
values: number
NORNICDB_HNSW_BUILD_GPU_BEAM_ITERS=2HNSW GPU graph-beam expansion roundsHNSW GPU graph-beam expansion rounds
values: number
NORNICDB_HNSW_BUILD_GPU_BEAM_QUERY_GROUP=512HNSW GPU graph-beam query group sizeHNSW GPU graph-beam query group size
values: number
NORNICDB_HNSW_BUILD_GPU_BEAM_UNION_MAX=4096HNSW GPU graph-beam max candidate unionHNSW GPU graph-beam max candidate union
values: number
NORNICDB_HNSW_BUILD_GPU_BEAM_WIDTH=min(candidate_k, 64)HNSW GPU graph-beam widthHNSW GPU graph-beam width
values: number
NORNICDB_HNSW_BUILD_GPU_CANDIDATE_K=128HNSW GPU build candidate count per vectorHNSW GPU build candidate count per vector
values: number
NORNICDB_HNSW_BUILD_GPU_DISTANCE_PRECISION=fp32HNSW GPU build distance precisionHNSW GPU build distance precision
values: string
NORNICDB_HNSW_BUILD_GPU_ENABLED=trueHNSW GPU-assisted build enabledHNSW GPU-assisted build enabled
values: boolean
NORNICDB_HNSW_MAINT_INTERVAL_MS=See sourceHnsw maint interval msHnsw maint interval ms
values: string
NORNICDB_HNSW_MAX_TOMBSTONE_OVERHEAD_FACTOR=See sourceHnsw max tombstone overhead factorHnsw max tombstone overhead factor
values: string
NORNICDB_HNSW_MIN_REBUILD_INTERVAL_SEC=See sourceHnsw min rebuild interval secHnsw min rebuild interval sec
values: string
NORNICDB_HNSW_REBUILD_ENABLED=trueHnsw rebuild enabledHnsw rebuild enabled
values: boolean
NORNICDB_HNSW_TOMBSTONE_REBUILD_RATIO=See sourceHnsw tombstone rebuild ratioHnsw tombstone rebuild ratio
values: string
NORNICDB_HTTP_ADDRESS=(unset)HTTP API bind addressHTTP API bind address
values: string
NORNICDB_HTTP_ENABLED=trueEnable the HTTP API listenerEnable the HTTP API listener
values: boolean
NORNICDB_HTTP_PORT=7474HTTP API portHTTP API port
values: number
NORNICDB_HTTPS_ENABLED=falseEnable native TLS on the HTTP API listenerEnable native TLS on the HTTP API listener
values: boolean
NORNICDB_HTTPS_PORT=7473Native HTTPS API portNative HTTPS API port
values: number
NORNICDB_HTTP_TLS_CERT=(unset)Path to the native HTTPS certificate PEMPath to the native HTTPS certificate PEM
values: string
NORNICDB_HTTP_TLS_KEY=(unset)Path to the native HTTPS private key PEMPath to the native HTTPS private key PEM
values: string
NORNICDB_HTTP_TRUSTED_PROXIES=(unset)Immediate reverse-proxy IP addresses or CIDR ranges allowed to supply forwarded HTTP headersImmediate reverse-proxy IP addresses or CIDR ranges allowed to supply forwarded HTTP headers
values: string
NORNICDB_HTTP_TX_TIMEOUT=(unset)Http tx timeoutHttp tx timeout
values: string
NORNICDB_KALMAN_ENABLED=See sourceKalman enabledKalman enabled
values: string
NORNICDB_KEY=See sourceKeyKey
values: string
NORNICDB_KMEANS_CLUSTERING_ENABLED=See sourceKmeans clustering enabledKmeans clustering enabled
values: boolean
NORNICDB_KMEANS_CLUSTER_INTERVAL=See sourceKmeansClusterInterval is how often to run k-means clustering (0 = disabled)KmeansClusterInterval is how often to run k-means clustering (0 = disabled)
values: duration
NORNICDB_KMEANS_MAX_ITERATIONS=5Kmeans max iterationsKmeans max iterations
values: number
NORNICDB_KMEANS_MIN_EMBEDDINGS=0KmeansMinEmbeddings is minimum embeddings required for k-means clusteringKmeansMinEmbeddings is minimum embeddings required for k-means clustering
values: number
NORNICDB_KMEANS_NUM_CLUSTERS=0KmeansNumClusters is the number of k-means clusters (0 = auto from dataset size).KmeansNumClusters is the number of k-means clusters (0 = auto from dataset size).
values: number
NORNICDB_KMEANS_SEED_DOCS_PER_TERM=1Kmeans seed docs per termKmeans seed docs per term
values: number
NORNICDB_KMEANS_SEED_MAX_TERMS=256Kmeans seed max termsKmeans seed max terms
values: number
NORNICDB_LANGUAGE=autoProcess-default language for human-readable messages. Unset, empty, or `auto` uses ordered operating-system language preferences. Accepts BCP 47 tags and common POSIX locale forms.Process-default language for human-readable messages. Unset, empty, or `auto` uses ordered operating-system language preferences. Accepts BCP 47 tags and common POSIX locale forms.
values: string
NORNICDB_LIB=(unset)LibLib
values: string
NORNICDB_LOCKOUT_DURATION=See sourceLockout durationLockout duration
values: string
NORNICDB_LOG_FORMAT=See sourceLog formatLog format
values: string
NORNICDB_LOG_LEVEL=See sourceLog levelLog level
values: string
NORNICDB_LOG_OUTPUT=See sourceLog outputLog output
values: string
NORNICDB_LOG_QUERIES=falseLog all Bolt queries to stdout (for debugging)Log all Bolt queries to stdout (for debugging)
values: boolean
NORNICDB_LOW_MEMORY=falseUse minimal RAM (for resource constrained environments)Use minimal RAM (for resource constrained environments)
values: boolean
NORNICDB_MASTER_PASSWORD=(unset)Master passwordMaster password
values: string
NORNICDB_MAX_FAILED_LOGINS=0Max failed loginsMax failed logins
values: number
NORNICDB_MAX_TRANSACTIONS=0Max transactionsMax transactions
values: number
NORNICDB_MCP_ENABLED=trueEnable MCP (Model Context Protocol) server for LLM toolsEnable MCP (Model Context Protocol) server for LLM tools
values: boolean
NORNICDB_MEMORY_ARCHIVE_THRESHOLD=See sourceMemory archive thresholdMemory archive threshold
values: string
NORNICDB_MEMORY_DECAY_ENABLED=See sourceMemory decay enabledMemory decay enabled
values: string
NORNICDB_MEMORY_DECAY_INTERVAL=See sourceMemory decay intervalMemory decay interval
values: string
NORNICDB_MEMORY_LIMIT=See sourceMemory limitMemory limit
values: string
NORNICDB_MIN_PASSWORD_LENGTH=0Min password lengthMin password length
values: number
NORNICDB_MODELS_DIR=See sourceModelsDir is the directory containing local GGUF modelsModelsDir is the directory containing local GGUF models
values: string
NORNICDB_MVCC_RETENTION_MAX_VERSIONS=1MVCCRetentionMaxVersions keeps at most this many closed historical MVCC versions per key by default. The current head is preserved separately.MVCCRetentionMaxVersions keeps at most this many closed historical MVCC versions per key by default. The current head is preserved separately.
values: number
NORNICDB_MVCC_RETENTION_TTL=0MVCCRetentionTTL protects MVCC versions newer than now-TTL from pruning.MVCCRetentionTTL protects MVCC versions newer than now-TTL from pruning.
values: duration
NORNICDB_OAUTH_CALLBACK_URL=(unset)Oauth callback urlOauth callback url
values: string
NORNICDB_OAUTH_CLIENT_ID=(unset)Oauth client idOauth client id
values: string
NORNICDB_OAUTH_CLIENT_SECRET=(unset)Oauth client secretOauth client secret
values: string
NORNICDB_OAUTH_ISSUER=(unset)Oauth issuerOauth issuer
values: string
NORNICDB_PARSER=See sourceParserParser
values: string
NORNICDB_PER_NODE_CONFIG_AUTO_INTEGRATION_ENABLED=See sourcePer node config auto integration enabledPer node config auto integration enabled
values: string
NORNICDB_PER_NODE_CONFIG_ENABLED=See sourcePer node config enabledPer node config enabled
values: string
NORNICDB_PERSIST_SEARCH_INDEXES=See sourcePersistSearchIndexes (EXPERIMENTAL) when true saves BM25, vector, and HNSW indexes under DataDir and loads them on startup so BuildIndexes can skip the full storage iteration. Default: false. Note: if indexes are incompatible/missing and must be rebuilt, startup can be long for large datasets. For example, rebuilding IVF-HNSW for ~1M embeddings can take ~30 minutes on startup (hardware dependent).PersistSearchIndexes (EXPERIMENTAL) when true saves BM25, vector, and HNSW indexes under DataDir and loads them on startup so BuildIndexes can skip the full storage iteration. Default: false. Note: if indexes are incompatible/missing and must be rebuilt, startup can be long for large datasets. For example, rebuilding IVF-HNSW for ~1M embeddings can take ~30 minutes on startup (hardware dependent).
values: string
NORNICDB_PLUGINS_DIR=(unset)PluginsDir is the directory for APOC pluginsPluginsDir is the directory for APOC plugins
values: string
NORNICDB_POOL_ENABLED=See sourcePool enabledPool enabled
values: string
NORNICDB_POOL_MAX_SIZE=0Pool max sizePool max size
values: number
NORNICDB_PPROF_ENABLED=falseEnables the separate observability pprof listener. Disabled by default; profiles are served from the pprof listener, not the main HTTP API port.Enables the separate observability pprof listener. Disabled by default; profiles are served from the pprof listener, not the main HTTP API port.
values: boolean
NORNICDB_PPROF_LISTEN=127.0.0.1:9091Listen address for the pprof listener. Defaults to loopback; use `0.0.0.0:9091` only when intentionally publishing the profiling port, such as in a Docker profiling session.Listen address for the pprof listener. Defaults to loopback; use `0.0.0.0:9091` only when intentionally publishing the profiling port, such as in a Docker profiling session.
values: string
NORNICDB_QDRANT_GRPC_ENABLED=See sourceQdrant grpc enabledQdrant grpc enabled
values: string
NORNICDB_QDRANT_GRPC_LISTEN_ADDR=See sourceQdrant grpc listen addrQdrant grpc listen addr
values: string
NORNICDB_QDRANT_GRPC_MAX_BATCH_POINTS=0Qdrant grpc max batch pointsQdrant grpc max batch points
values: number
NORNICDB_QDRANT_GRPC_MAX_TOP_K=0Qdrant grpc max top kQdrant grpc max top k
values: number
NORNICDB_QDRANT_GRPC_MAX_VECTOR_DIM=0Qdrant grpc max vector dimQdrant grpc max vector dim
values: number
NORNICDB_QDRANT_GRPC_TLS_CERT=(unset)Server certificate path for the shared Qdrant/Nornic gRPC listenerServer certificate path for the shared Qdrant/Nornic gRPC listener
values: string
NORNICDB_QDRANT_GRPC_TLS_CLIENT_AUTH_MODE=noneClient-certificate policy for the shared Qdrant/Nornic gRPC TLS listenerClient-certificate policy for the shared Qdrant/Nornic gRPC TLS listener
values: string
NORNICDB_QDRANT_GRPC_TLS_CLIENT_CA=(unset)CA certificate path used to verify gRPC client certificatesCA certificate path used to verify gRPC client certificates
values: string
NORNICDB_QDRANT_GRPC_TLS_ENABLED=falseEnable native TLS on the shared Qdrant/Nornic gRPC listenerEnable native TLS on the shared Qdrant/Nornic gRPC listener
values: boolean
NORNICDB_QDRANT_GRPC_TLS_KEY=(unset)Server private-key path for the shared Qdrant/Nornic gRPC listenerServer private-key path for the shared Qdrant/Nornic gRPC listener
values: string
NORNICDB_QUERY_CACHE_ENABLED=See sourceQuery cache enabledQuery cache enabled
values: string
NORNICDB_QUERY_CACHE_SIZE=0Query cache sizeQuery cache size
values: number
NORNICDB_QUERY_CACHE_TTL=300000Per-database query result cache TTL in millisecondsPer-database query result cache TTL in milliseconds
values: number
NORNICDB_QUERY_LOG_ENABLED=See sourceQuery log enabledQuery log enabled
values: string
NORNICDB_READ_ONLY=falseRead onlyRead only
values: boolean
NORNICDB_REMOTE_CREDENTIALS_KEY=(unset)Remote credentials keyRemote credentials key
values: string
NORNICDB_RERANK_ATTENTION_TYPE=1Attention masking for rerank model (0=causal, 1=non-causal). Default: 1 (non-causal for reranking).Attention masking for rerank model (0=causal, 1=non-causal). Default: 1 (non-causal for reranking).
values: number
NORNICDB_RERANK_CTX_TYPE=0llama.cpp context type for rerank model (0=default, 1=MTP). Only set to 1 if the model has MTP layers.llama.cpp context type for rerank model (0=default, 1=MTP). Only set to 1 if the model has MTP layers.
values: number
NORNICDB_RERANK_DEBUG=(unset)Rerank debugRerank debug
values: string
NORNICDB_RERANK_FLASH_ATTN=0Flash attention for rerank model (-1=auto, 0=disabled, 1=enabled). Default: 0 (disabled).Flash attention for rerank model (-1=auto, 0=disabled, 1=enabled). Default: 0 (disabled).
values: number
NORNICDB_RERANK_LAZY_MODE=1llama.cpp lazy tensor loading for the rerank model (0=off, 1=auto, 2=on).llama.cpp lazy tensor loading for the rerank model (0=off, 1=auto, 2=on).
values: number
NORNICDB_RERANK_POOLING_TYPE=4Pooling strategy for rerank model (1=mean, 2=cls, 3=last, 4=rank). Default: 4 (rank/classifier-head pooling).Pooling strategy for rerank model (1=mean, 2=cls, 3=last, 4=rank). Default: 4 (rank/classifier-head pooling).
values: number
NORNICDB_RETENTION_AUTO_DELETE=falseRetention auto deleteRetention auto delete
values: boolean
NORNICDB_RETENTION_ENABLED=falseRetention enabledRetention enabled
values: boolean
NORNICDB_RETENTION_EXEMPT_ROLES=adminRetention exempt rolesRetention exempt roles
values: string
NORNICDB_RETENTION_POLICY_DAYS=0Retention policy daysRetention policy days
values: number
NORNICDB_SALT=See sourceSaltSalt
values: string
NORNICDB_SEARCH_BM25_ENABLED=trueMaster switch for BM25 fulltext search on this database. When false, no BM25 build runs and search returns no fulltext results. See § Precedence — CLI flags trump per-DB overrides; per-DB overrides trump this env var. Per-DB store edits via `PUT /admin/databases/{name}/config` are authoritative across restarts.Master switch for BM25 fulltext search on this database. When false, no BM25 build runs and search returns no fulltext results. See § Precedence — CLI flags trump per-DB overrides; per-DB overrides trump this env var. Per-DB store edits via `PUT /admin/databases/{name}/config` are authoritative across restarts.
values: boolean
NORNICDB_SEARCH_BM25_ENGINE=(unset)Search bm25 engineSearch bm25 engine
values: string
NORNICDB_SEARCH_BM25_LABELS=(unset)Comma-separated label allowlist for BM25 indexing: only nodes carrying at least one of the labels are keyword-indexed, as `NORNICDB_EMBEDDING_LABELS_INCLUDE` limits embeddings. Empty indexes every node. Changes invalidate persisted BM25 data.Comma-separated label allowlist for BM25 indexing: only nodes carrying at least one of the labels are keyword-indexed, as `NORNICDB_EMBEDDING_LABELS_INCLUDE` limits embeddings. Empty indexes every node. Changes invalidate persisted BM25 data.
values: string
NORNICDB_SEARCH_BM25_PROPERTIES=(unset)Comma-separated property allowlist for BM25 indexing and rerank text. Empty indexes labels and all properties. Changes invalidate persisted BM25 data.Comma-separated property allowlist for BM25 indexing and rerank text. Empty indexes labels and all properties. Changes invalidate persisted BM25 data.
values: string
NORNICDB_SEARCH_BM25_WARMING=startupWhen BM25 is enabled, choose `startup` (build at boot) or `lazy` (defer build until first inbound search query, blocks the request synchronously while warming). Health checks must NOT target /nornicdb/search for `lazy` databases.When BM25 is enabled, choose `startup` (build at boot) or `lazy` (defer build until first inbound search query, blocks the request synchronously while warming). Health checks must NOT target /nornicdb/search for `lazy` databases.
values: enum
NORNICDB_SEARCH_BUILD_PROGRESS_LOG_SEC=15Search build progress log secSearch build progress log sec
values: number
NORNICDB_SEARCH_CURSOR_MAX=0Process-wide retained search cursor limit; zero disables durable continuationProcess-wide retained search cursor limit; zero disables durable continuation
values: number
NORNICDB_SEARCH_CURSOR_TTL=300000Fixed search cursor lifetime in millisecondsFixed search cursor lifetime in milliseconds
values: number
NORNICDB_SEARCH_DIAG_TIMINGS=(unset)Search diag timingsSearch diag timings
values: string
NORNICDB_SEARCH_INDEX_PERSIST_DELAY_SEC=See sourceSearch index persist delay secSearch index persist delay sec
values: number
NORNICDB_SEARCH_LOG_TIMINGS=See sourceSearch log timingsSearch log timings
values: string
NORNICDB_SEARCH_MIN_SIMILARITY=See sourceSearchMinSimilarity is the minimum cosine similarity threshold for vector search results. Apple Intelligence embeddings produce scores in 0.2-0.8 range, bge-m3/mxbai produce 0.7-0.99. Default: 0.0 (let RRF ranking handle relevance filtering)SearchMinSimilarity is the minimum cosine similarity threshold for vector search results. Apple Intelligence embeddings produce scores in 0.2-0.8 range, bge-m3/mxbai produce 0.7-0.99. Default: 0.0 (let RRF ranking handle relevance filtering)
values: number
NORNICDB_SEARCH_QUERY_CHUNK_OVERFLOW=truncateWhat a search query with more chunks than `NORNICDB_SEARCH_QUERY_MAX_CHUNKS` does: `truncate` searches its first chunks and reports the rest as dropped (`fallback_reason: query_chunks_dropped`, `query_chunks_searched` / `query_chunks_total`); `error` fails the search. A text query to the vector procedures fails over the limit in either mode.What a search query with more chunks than `NORNICDB_SEARCH_QUERY_MAX_CHUNKS` does: `truncate` searches its first chunks and reports the rest as dropped (`fallback_reason: query_chunks_dropped`, `query_chunks_searched` / `query_chunks_total`); `error` fails the search. A text query to the vector procedures fails over the limit in either mode.
values: string
NORNICDB_SEARCH_QUERY_MAX_CHUNKS=32Most chunks of 512 characters of one search query that are embedded and searched; each costs an embedding call, and a rerank call when reranking.Most chunks of 512 characters of one search query that are embedded and searched; each costs an embedding call, and a rerank call when reranking.
values: int
NORNICDB_SEARCH_RELATIONSHIP_BM25_PROPERTIES=(unset)Property allowlist for relationship search keyword indexing. Unset, `NORNICDB_SEARCH_BM25_PROPERTIES` applies; a relationship with none of the listed properties isn't keyword-indexed.Property allowlist for relationship search keyword indexing. Unset, `NORNICDB_SEARCH_BM25_PROPERTIES` applies; a relationship with none of the listed properties isn't keyword-indexed.
values: string
NORNICDB_SEARCH_RELATIONSHIPS_ENABLED=falseIndex relationship properties for keyword (BM25) and vector search, in indexes apart from the nodes'. Searches with `relationships: true` (HTTP) or `db.retrieveRelationships` (Cypher) then return relationships with their type and endpoints. Keyword text follows `NORNICDB_SEARCH_RELATIONSHIP_BM25_PROPERTIES` (default `NORNICDB_SEARCH_BM25_PROPERTIES`), embedding text `NORNICDB_EMBEDDING_RELATIONSHIIndex relationship properties for keyword (BM25) and vector search, in indexes apart from the nodes'. Searches with `relationships: true` (HTTP) or `db.retrieveRelationships` (Cypher) then return relationships with their type and endpoints. Keyword text follows `NORNICDB_SEARCH_RELATIONSHIP_BM25_PROPERTIES` (default `NORNICDB_SEARCH_BM25_PROPERTIES`), embedding text `NORNICDB_EMBEDDING_RELATIONSHI
values: bool
NORNICDB_SEARCH_RERANK_API_KEY=See sourceSearch rerank api keySearch rerank api key
values: string
NORNICDB_SEARCH_RERANK_API_URL=See sourceSearch rerank api urlSearch rerank api url
values: string
NORNICDB_SEARCH_RERANK_ENABLED=See sourceSearch rerank enabledSearch rerank enabled
values: boolean
NORNICDB_SEARCH_RERANK_MAX_DOCUMENT_CHARSMaximum characters (not bytes) sent for each Stage-2 rerank candidate: identifying properties plus the matched chunk extended with its neighbours (default 2048). `NORNICDB_SEARCH_RERANK_MAX_DOCUMENT_BYTES` is deprecated and, when set alone, read as a character countMaximum characters (not bytes) sent for each Stage-2 rerank candidate: identifying properties plus the matched chunk extended with its neighbours (default 2048). `NORNICDB_SEARCH_RERANK_MAX_DOCUMENT_BYTES` is deprecated and, when set alone, read as a character count
NORNICDB_SEARCH_RERANK_MODEL=See sourceSearch rerank modelSearch rerank model
values: string
NORNICDB_SEARCH_RERANK_PROVIDER=See sourceSearch rerank providerSearch rerank provider
values: string
NORNICDB_SEARCH_RERANK_TRUNCATION=trueVoyage reranker only: `true` lets the provider shorten a query or a query-document pair over the model's token limit; `false` makes such a rerank fail instead (an error from `db.rerank`, the rerank-failure signal in search), so a ranking is always for the whole query and documents.Voyage reranker only: `true` lets the provider shorten a query or a query-document pair over the model's token limit; `false` makes such a rerank fail instead (an error from `db.rerank`, the rerank-failure signal in search), so a ranking is always for the whole query and documents.
values: bool
NORNICDB_SEARCH_RESULT_CACHE_ENABLED=trueEnables caching of complete search responses. Set to `false` when every request must execute the retrieval pipeline or when cache residency is undesirable.Enables caching of complete search responses. Set to `false` when every request must execute the retrieval pipeline or when cache residency is undesirable.
values: boolean
NORNICDB_SEARCH_VECTOR_ENABLED=trueMaster switch for vector search across every ANN strategy (HNSW, IVF-HNSW, brute-force, GPU, Metal, Qdrant pass-through). When false, node embeddings are NOT iterated into the in-memory ANN substrate — the strongest available memory-pressure lever. `NORNICDB_EMBEDDING_ENABLED=false` only stops the embed worker; user-set embedding properties are still iterated today.Master switch for vector search across every ANN strategy (HNSW, IVF-HNSW, brute-force, GPU, Metal, Qdrant pass-through). When false, node embeddings are NOT iterated into the in-memory ANN substrate — the strongest available memory-pressure lever. `NORNICDB_EMBEDDING_ENABLED=false` only stops the embed worker; user-set embedding properties are still iterated today.
values: boolean
NORNICDB_SEARCH_VECTOR_WARMING=startupWhen vector search is enabled, choose `startup` or `lazy`. Lazy defers the build until the first inbound search query and blocks the request synchronously while warming. Health checks must NOT target /nornicdb/search for `lazy` databases — use /nornicdb/health instead.When vector search is enabled, choose `startup` or `lazy`. Lazy defers the build until the first inbound search query and blocks the request synchronously while warming. Health checks must NOT target /nornicdb/search for `lazy` databases — use /nornicdb/health instead.
values: enum
NORNICDB_SESSION_TIMEOUT=See sourceSession timeoutSession timeout
values: string
NORNICDB_SLOW_QUERY_THRESHOLD=See sourceSlow query thresholdSlow query threshold
values: string
NORNICDB_STDIO_LOG_COMPACT_SECONDS=3600Interval in seconds for automatic stdout/stderr log size checksInterval in seconds for automatic stdout/stderr log size checks
values: number
NORNICDB_STDIO_LOG_MAX_KB=20480Max size of stdout/stderr log files in KB before automatic truncation (0 disables)Max size of stdout/stderr log files in KB before automatic truncation (0 disables)
values: number
NORNICDB_STORAGE_SERIALIZER=See sourceStorageSerializer selects the primary storage serialization format ("gob", "msgpack"). MVCC version records and MVCC head metadata use Msgpack on the hot path.StorageSerializer selects the primary storage serialization format ("gob", "msgpack"). MVCC version records and MVCC head metadata use Msgpack on the hot path.
values: string
NORNICDB_STRICT_DURABILITY=See sourceStrict durabilityStrict durability
values: string
NORNICDB_TLS_DIR=See sourceTls dirTls dir
values: string
NORNICDB_TOPOLOGY_AB_TEST_ENABLED=See sourceTopology ab test enabledTopology ab test enabled
values: string
NORNICDB_TOPOLOGY_AB_TEST_PERCENTAGE=0Topology ab test percentageTopology ab test percentage
values: number
NORNICDB_TOPOLOGY_ALGORITHM=See sourceTopology algorithmTopology algorithm
values: string
NORNICDB_TOPOLOGY_AUTO_INTEGRATION_ENABLED=See sourceTopology auto integration enabledTopology auto integration enabled
values: string
NORNICDB_TOPOLOGY_GRAPH_REFRESH_INTERVAL=0Topology graph refresh intervalTopology graph refresh interval
values: number
NORNICDB_TOPOLOGY_MIN_SCORE=See sourceTopology min scoreTopology min score
values: string
NORNICDB_TOPOLOGY_TOPK=0Topology topkTopology topk
values: number
NORNICDB_TOPOLOGY_WEIGHT=See sourceTopology weightTopology weight
values: string
NORNICDB_TRACE_AUTH=(unset)Trace authTrace auth
values: string
NORNICDB_TRACE_GRAPHQL=(unset)Trace graphqlTrace graphql
values: string
NORNICDB_TRANSACTION_TIMEOUT=See sourceTransaction timeoutTransaction timeout
values: string
NORNICDB_VECTOR_ANN_QUALITY=See sourceVector ann qualityVector ann quality
values: string
NORNICDB_VECTOR_CPU_BRUTE_MAX_N=0Vector cpu brute max nVector cpu brute max n
values: number
NORNICDB_VECTOR_GPU_BRUTE_MAX_N=15000Vector gpu brute max nVector gpu brute max n
values: number
NORNICDB_VECTOR_GPU_BRUTE_MIN_N=5000Vector gpu brute min nVector gpu brute min n
values: number
NORNICDB_VECTOR_HNSW_BEAM_FACTOR=4HNSW search beam multiplier relative to requested candidate depthHNSW search beam multiplier relative to requested candidate depth
values: number
NORNICDB_VECTOR_HNSW_EF_CONSTRUCTION=0Vector hnsw ef constructionVector hnsw ef construction
values: number
NORNICDB_VECTOR_HNSW_EF_SEARCH=0Vector hnsw ef searchVector hnsw ef search
values: number
NORNICDB_VECTOR_HNSW_M=0Vector hnsw mVector hnsw m
values: number
NORNICDB_VECTOR_HNSW_METAL_MIN_CANDIDATES=0Vector hnsw metal min candidatesVector hnsw metal min candidates
values: number
NORNICDB_VECTOR_HYBRID_ROUTING_LEX_TOP_TERMS=64Vector hybrid routing lex top termsVector hybrid routing lex top terms
values: number
NORNICDB_VECTOR_HYBRID_ROUTING_W_LEX=See sourceVector hybrid routing w lexVector hybrid routing w lex
values: string
NORNICDB_VECTOR_HYBRID_ROUTING_W_SEM=See sourceVector hybrid routing w semVector hybrid routing w sem
values: string
NORNICDB_VECTOR_IVF_HNSW_ENABLED=falseVector ivf hnsw enabledVector ivf hnsw enabled
values: boolean
NORNICDB_VECTOR_IVF_HNSW_MAX_CLUSTERS=1024Vector ivf hnsw max clustersVector ivf hnsw max clusters
values: number
NORNICDB_VECTOR_IVF_HNSW_MIN_CLUSTER_SIZE=200Vector ivf hnsw min cluster sizeVector ivf hnsw min cluster size
values: number
NORNICDB_VECTOR_IVF_LISTS=0Vector ivf listsVector ivf lists
values: number
NORNICDB_VECTOR_IVFPQ_NPROBE=(auto)IVF/PQ lists probed per query; unset uses max(16, one eighth of the lists)IVF/PQ lists probed per query; unset uses max(16, one eighth of the lists)
values: number
NORNICDB_VECTOR_IVFPQ_OVERFLOW_MAX=512Maximum exact coarse-centroid outliers retained beside IVF/PQ; 0 disablesMaximum exact coarse-centroid outliers retained beside IVF/PQ; 0 disables
values: number
NORNICDB_VECTOR_IVFPQ_RERANK_TOPK=2000Minimum IVF/PQ candidates exact-rescored before applying the requested result limitMinimum IVF/PQ candidates exact-rescored before applying the requested result limit
values: number
NORNICDB_VECTOR_IVFPQ_TRAINING_SAMPLE_MAX=200000Vector ivfpq training sample maxVector ivfpq training sample max
values: number
NORNICDB_VECTOR_PQ_BITS=8Vector pq bitsVector pq bits
values: number
NORNICDB_VECTOR_PQ_SEGMENTS=See sourceVector pq segmentsVector pq segments
values: string
NORNICDB_VECTOR_ROUTING_MODE=hybridVector routing modeVector routing mode
values: string
NORNICDB_VECTOR_VFS_COMPACT_DEAD_RATIO=See sourceVector vfs compact dead ratioVector vfs compact dead ratio
values: string
NORNICDB_VECTOR_VFS_COMPACT_MIN_OBSOLETE=50000Vector vfs compact min obsoleteVector vfs compact min obsolete
values: number
NORNICDB_VECTOR_VFS_COMPACT_MIN_SIZE_MB=256Vector vfs compact min size mbVector vfs compact min size mb
values: number
NORNICDB_WAL_AUTO_COMPACTION_ENABLED=See sourceWal auto compaction enabledWal auto compaction enabled
values: string
NORNICDB_WAL_ENABLED=See sourceWal enabledWal enabled
values: string
NORNICDB_WAL_LEDGER_RETENTION_DEFAULTS=See sourceWal ledger retention defaultsWal ledger retention defaults
values: string
NORNICDB_WAL_RETENTION_MAX_AGE=See sourceWal retention max ageWal retention max age
values: string
NORNICDB_WAL_RETENTION_MAX_SEGMENTS=0Wal retention max segmentsWal retention max segments
values: number
NORNICDB_WAL_SNAPSHOT_INTERVAL=300000Milliseconds between checks for WAL changes that require a new snapshot; idle checks do not rewrite storageMilliseconds between checks for WAL changes that require a new snapshot; idle checks do not rewrite storage
values: number
NORNICDB_WAL_SNAPSHOT_RETENTION_MAX_AGE=See sourceWal snapshot retention max ageWal snapshot retention max age
values: string
NORNICDB_WAL_SNAPSHOT_RETENTION_MAX_COUNT=0Wal snapshot retention max countWal snapshot retention max count
values: number
NORNICDB_WAL_SYNC_INTERVAL=See sourceWal sync intervalWal sync interval
values: string
NORNICDB_WAL_SYNC_MODE=See sourceWal sync modeWal sync mode
values: string
NornicDB releases & version history
AI summary Faster reads, writes, and Neo4j compatibility
More in Databases & storage
OpenVikingOpenViking gives AI agents one self-hosted, browsable viking:// filesystem for memory, knowledge RAG and skills; open-source (AGPL-3.0), deployed via Docker or pip.
Percona Server for MySQLOpen-source, self-hosted drop-in replacement for MySQL adding enterprise-style high availability, online backups, encryption and performance tooling under GPLv2.
pgvectorOpen-source vector similarity search for Postgres
tdengineSelf-hosted open-source time-series database for IoT and industrial data, offering clustering, stream processing, subscriptions, TDgpt AI and Grafana or Kafka links.
TimescaleDBA time-series database for high-performance real-time analytics packaged as a Postgres extension
VitessVitess enables unlimited horizontal scaling through generalized sharding while maintaining MySQL compatibility.
Zenko CloudServerZenko CloudServer, an open-source Node.js implementation of the Amazon S3 protocol on the front-end and backend storage capabilities to multiple clouds, including Azure and Google.
ZincSearchSelf-hosted, open-source full-text search engine written in Go; a lightweight Elasticsearch alternative with an embedded web UI, ES-compatible APIs and a single binary.
Apache PinotOpen-source distributed OLAP database for user-facing apps and AI agents. Provides sub-second queries on fresh streaming data with high concurrency.
Apache SolrA self-hosted, open-source search platform offering full-text, vector, and geospatial search used by major organizations worldwide.
Docker Distribution RegistrySelf-hosted, open-source container registry implementing the OCI Distribution Specification for managing container images and artifacts.
garage-s3-webuiOpen-source admin web UI for Garage, the self-hosted S3-compatible object store: health status, cluster layout, buckets, object browser and access keys.
0 comments