Skip to content

Configuration

FluidRAG uses a two-layer configuration system:

  1. .env file — Infrastructure connectivity (Docker Compose reads these at container start). Requires a restart to change.
  2. etcd — Runtime configuration (LLM models, API keys, feature flags, search tuning). Managed via Admin UI with hot-reload — no restart.

These are set in your .env file at the project root. See .env.example for the full annotated reference.

VariableDefaultDescription
USE_ETCDtrueEnable etcd-based configuration
ETCD_HOSTetcdetcd container hostname
ETCD_PORT2379etcd client port
ETCD_CONFIG_PREFIX/configKey prefix for configuration
ETCD_SECRETS_PREFIX/secretsKey prefix for secrets
VariableDefaultDescription
FALKORDB_HOSTlocalhostYour FalkorDB instance host
FALKORDB_PORT6379Your FalkorDB instance port
FALKORDB_PASSWORDManaged as etcd secret; set here only if needed before etcd bootstrap
KG_NAMEDEFAULT_KG_v1Knowledge graph name in FalkorDB
VariableDefaultDescription
REDIS_HOSTredisRedis container hostname
REDIS_PORT6379Redis port
REDIS_PASSWORDredis123Redis auth; managed as etcd secret in production
REDIS_DB0Redis database number
VariableDefaultDescription
API_HOST0.0.0.0Bind address
API_PORT8000API server port
LOG_LEVELINFOLogging verbosity
SERVICE_VERSION0.4.1Reported in health endpoint
VariableDefaultDescription
FRONTEND_URLhttp://localhost/config-ui/Admin UI URL (used for OAuth redirects)
CORS_ORIGINShttp://localhost,...Allowed CORS origins (comma-separated)
ADMIN_ALLOWED_EMAILSEmail allowlist for Admin UI login
SECRET_KEYchange-me-...Session secret (generate with python -c "import secrets; print(secrets.token_hex(32))")
VariableDefaultDescription
NGINX_ENABLE_SSLfalseEnable HTTPS mode
NGINX_SERVER_NAME_Server name (use your domain for SSL)
SSL_CERT_PATHHost path to SSL certificate (required when SSL enabled)
SSL_KEY_PATHHost path to SSL key (required when SSL enabled)

When SSL is enabled, the gateway runs two HTTP server blocks — one for internal Docker traffic (no redirect) and one that redirects external traffic to HTTPS.

These settings are configured through the Admin UI at http://localhost/config-ui and stored in etcd. Changes take effect immediately via hot-reload.

Each pipeline layer can use a different provider and model:

SettingDescriptionExample
llm.logic_layer_providerAgent execution provideropenai, anthropic, google
llm.logic_layer_modelAgent execution modelgpt-4o-mini, gemini-2.5-flash-latest
llm.route_layer_providerQuery classification provideropenai
llm.synthesis_layer_providerResponse generation provideropenai
llm.entity_extraction_providerIngestion pipeline provideropenai
llm.embedding_providerEmbedding provideropenai, google, cohere, voyageai
llm.embedding_modelEmbedding modeltext-embedding-3-large
llm.embedding_dimensionsVector dimensions3072 (hot-reload supported)

Supported providers: OpenAI, Anthropic, Google, AWS Bedrock, Groq, OpenRouter, DeepSeek, Fireworks, OpenAI-Compatible.

FlagDefaultDescription
features.sourcebot_enabledfalseEnable code search (Sourcebot/Zoekt)
features.mcp_enabledfalseEnable MCP endpoint
features.enable_multi_instance_trackingtrueMulti-instance file tracking
features.classify_llm_fallbackLLM fallback for query classification
features.classify_default_actionDefault classification behavior
SettingDefaultDescription
search.strategygraph_denseSearch strategy: graph_only, dense_only, graph_dense, code_only, graph_dense_code
search.fusion_weight_graph0.4Graph score weight in fusion
search.fusion_weight_dense0.6Dense score weight in fusion
search.fusion_multimodal_bonus1.1Bonus for results found in both graph and dense
SettingDefaultDescription
chunking.strategysemantic_llamaindexChunking strategy
chunking.pre_segmentation_threshold32000Token threshold for pre-segmenting large docs

All API keys and credentials are stored under /secrets/ in etcd:

KeyDescription
/secrets/OPENAI_API_KEYOpenAI API key
/secrets/FALKORDB_PASSWORDFalkorDB auth password
/secrets/SLACK_BOT_TOKENSlack bot token (xoxb-...)
/secrets/SLACK_USER_TOKENSlack user token (xoxp-...)
/secrets/JIRA_CLIENT_IDJira OAuth client ID
/secrets/JIRA_CLIENT_SECRETJira OAuth client secret
/secrets/GITHUB_TOKENGitHub PAT

Configure these through the Admin UI Settings → Secrets tab. Never commit secrets to .env or version control.

The following directories are mounted from the host into containers:

Host PathContainer PathPurpose
./data/app/dataApplication data
./logs/app/logsLog files
./ingestion_data/app/ingestion_dataIngested document storage
./extraction_data/app/extraction_dataExtracted source data
./config/ontologies/app/config/ontologiesOntology files (read-write for generated ontologies)

Docker-managed volumes survive container recreation:

VolumeUsed ByPurpose
etcd_dataetcdConfiguration store data
redis_dataRedisJob queue state, AOF persistence

The nginx gateway routes traffic based on URL path:

PathUpstreamDescription
/config-ui/admin-ui:80Admin dashboard
/config-api/config-api:8001Admin backend API
/backend-api/api:8000FluidRAG backend API
/mcp/api:8000/mcp/MCP endpoint (long-lived connections)
/jobqueue/rq-dashboard:9181RQ Dashboard (via host.docker.internal)
/host.docker.internal:3080FluidLibreUI chat (catch-all)