Skip to content

Configuration

jade reads a .env file. In development, copy .env.example to .env. On an installed machine the wizard writes backend\.env next to the backend executable. The defaults live in ragagent/config.py. A secret left empty switches off the matching feature.

These keys are sealed with DPAPI (machine scope) by jade seal-env: CF_ACCESS_CLIENT_SECRET, SEARXNG_CF_ACCESS_CLIENT_SECRET, LICENSE_CF_ACCESS_CLIENT_SECRET, LICENSE_KEY, GITEA_TOKEN, SETUP_PASSWORD. Values already sealed or empty are left alone.

Booleans are false for 0, false or an empty value.

KeyDefaultMeaning
DOCS_DIR.\testdata in dev, <ProgramData>\Jade\documents installedFallback folder to index when none was configured in the app
DATA_DIR.\data, installed <ProgramData>\Jade\dataIndex (chroma), manifest, folder list
LOG_DIR.\logs, installed <ProgramData>\Jade\logsjade.log
MODEL_CACHE_DIR.\models, installed <ProgramData>\Jade\modelsSearch models

Relative paths are resolved from the project root, or from the folder of the backend executable when installed.

KeyDefaultMeaning
EMBED_MODELintfloat/multilingual-e5-largeEmbedding model. Changing it forces a full reindex
CHUNK_TOKENS / CHUNK_OVERLAP400 / 60Chunking
TOP_K / MIN_SCORE10 / 0.35Candidates and relevance threshold
HYBRID_ENABLED1Add BM25 to vector search
RERANK_ENABLED1Cross-encoder reranking
RERANK_MODELjinaai/jina-reranker-v2-base-multilingualReranker
CPU_THREADS2ONNX threads, kept low for shared servers
REINDEX_MINUTES30Automatic reindex period
NTFS_FILTER1Filter excerpts by the user’s file rights
OCR_ENABLED / OCR_INDEX1 / 1Local OCR, needs the ocr extra
KeyDefaultMeaning
OLLAMA_URLhttps://llm.example.comOllama server (placeholder: set your own)
OLLAMA_MODELqwen3.5:4bStandard model
ROUTER_MODELempty (uses OLLAMA_MODEL)Small model for the first pass
STRONG_MODELempty (uses OLLAMA_MODEL)Model for complex questions
VISION_MODELqwen3.5:9bMultimodal model for images
NUM_CTX8192Context size
REQUEST_TIMEOUT120Seconds
KEEP_ALIVE30mHow long the model stays loaded
CF_ACCESS_CLIENT_ID / CF_ACCESS_CLIENT_SECRETemptyCloudflare Access service token
KeyDefaultMeaning
WEB_FALLBACK1Allow web search when documents do not answer
WEB_RESULTS3Number of results
SEARXNG_URLemptyYour SearXNG. Empty means DuckDuckGo
SEARXNG_CF_ACCESS_CLIENT_ID / SEARXNG_CF_ACCESS_CLIENT_SECRETemptyService token for SearXNG
KeyDefaultMeaning
UI_HOST127.0.0.1Only 127.0.0.1, localhost and ::1 are accepted. Anything else is refused
UI_PORT8765 in code, auto in the installer and .env.exampleauto picks a free port per session
CLIENT_NAMEJadeLabel used in the feedback subject
FEEDBACK_EMAILfeedback@example.comRecipient of feedback mail (placeholder: set your own)
KeyDefaultMeaning
UPDATE_ENABLED1Check for updates
UPDATE_MODEmanualmanual shows a button, scheduled hides it (RDS)
GITEA_API_URLhttps://git.example.comGitea that publishes releases (placeholder)
GITEA_REPOexample/jadeowner/repo (placeholder)
GITEA_TOKENemptyRead token for a private repository
SETUP_PASSWORDemptyInstaller password, so silent updates work
MODELS_URLhttps://models.example.com/jade-models.tarArchive of the models (placeholder)
MODELS_SHA256emptyExpected SHA-256 of the archive, checked before extraction

See Licensing: LICENSE_ENABLED (0), LICENSE_URL, LICENSE_KEY, LICENSE_PUBLIC_KEY, LICENSE_CF_ACCESS_CLIENT_ID, LICENSE_CF_ACCESS_CLIENT_SECRET, GRACE_DAYS (7).