Skip to main content

Environment variables

OpenRAG's .env file is the primary configuration file for OpenRAG. Environment variables in .env always take precedence over other sources.

For deployments managed with an OpenRAG terminal session, this file is located at ~/.openrag/tui, and it can be created automatically during installation.

For self-managed deployments, this file can be located at the root of your OpenRAG project directory or referenced from another location.

For an example, see .env.example in the OpenRAG repository.

tip

OpenRAG's Docker Compose files are populated automatically using values from the .env file, so you don't need to edit the Docker Compose files manually.

If a variable isn't set, OpenRAG uses default or fallback values where available. Not all variables have default values, and errors can occur if required variables aren't set. Default values can be found in the reference tables on this page and in config_manager.py, settings.py, and logging_config.py.

You can temporarily set Langflow variables at runtime. However, these temporary overrides don't overlap with most OpenRAG environment variables. The only exceptions are flow-level Langflow settings, such as the language model used in a flow.

Edit the .env file and apply configuration changes

During installation, you prepare an initial .env file. For terminal-managed deployments, this file is created automatically. For self-managed deployments, you create this file manually.

After installation, you can edit the .env file to change your OpenRAG configuration.

tip

For terminal-managed deployments, many environment variables can be set through the Reconfigure option in the terminal session. The terminal session updates the .env file automatically.

Most OpenRAG environment variables are mutable, and you can apply changes to these settings by stopping and restarting the OpenRAG services after editing the .env file.

If a change doesn't take effect after restarting the services, then the variable is immutable, and you must redeploy OpenRAG with your modified .env file. This is typically only required for critical configuration changes that affect the core OpenRAG infrastructure.

Model provider settings

Configure which models and providers OpenRAG uses to generate text and embeddings. You only need to provide credentials for the providers you are using in OpenRAG.

These variables are initially set during the application onboarding process.

VariableDefaultDescription
EMBEDDING_PROVIDERopenaiEmbedding model provider, as one of openai, watsonx, or ollama.
EMBEDDING_MODELtext-embedding-3-smallEmbedding model for generating vector embeddings for documents in the knowledge base and similarity search queries. Can be changed after the application onboarding process.
OPENRAG_LEGACY_EMBEDDING_PROVIDER_MAP{}JSON object mapping model names from legacy OpenSearch documents to their original provider, for example {"ibm/slate-125m-english-rtrvr":"watsonx"}. Legacy text-embedding-3-small is inferred as OpenAI automatically.
LLM_PROVIDERopenaiLanguage model provider, as one of openai, watsonx, ollama, or anthropic.
LLM_MODELgpt-4o-miniLanguage model for language processing and text generation in the Chat feature. Can be changed after the application onboarding process.
ANTHROPIC_API_KEYNot setAPI key for the Anthropic model provider.
OPENAI_API_KEYNot setAPI key for the OpenAI model provider, which is also the default model provider.
OLLAMA_ENDPOINTNot setCustom provider endpoint for the Ollama model provider.
WATSONX_API_KEYNot setAPI key for the IBM watsonx.ai model provider.
WATSONX_ENDPOINTNot setCustom provider endpoint for the IBM watsonx.ai model provider.
WATSONX_PROJECT_IDNot setProject ID for the IBM watsonx.ai model provider.

Newly indexed chunks keep the model name in embedding_model for compatibility and also store embedding_provider plus the unambiguous embedding_space_id (provider:model). Retrieval queries each indexed space whose provider is configured. Chunks created before this metadata existed remain searchable: text-embedding-3-small is treated as OpenAI, while other legacy model names require OPENRAG_LEGACY_EMBEDDING_PROVIDER_MAP. If a legacy provider cannot be resolved, OpenRAG skips its vector query but keeps those documents eligible for keyword search.

Provider visibility per run mode

Which providers appear in Settings, in onboarding, and in the model pickers is not hardcoded. src/config/model_providers.yaml lists each provider and whether it is shown in each run mode, and the backend filters that list by OPENRAG_RUN_MODE (oss, on_prem, or saas). The UI renders whatever the API returns, so there is no separate frontend list to keep in step.

providers:
- name: ollama
display_name: Ollama
modes:
oss: true
on_prem: true
saas: false # local inference is not offered in SaaS

A mode key that is missing means the provider is hidden, so adding a run mode never exposes a provider by accident. A provider the file does not list is not offered in the UI at all, though a model id for it can still be typed by hand if the gateway already routes it.

The shipped defaults are:

Providerosson_premsaas
openaiYesYesYes
ollamaYesYesNo
watsonxYesYesYes
anthropicYesYesYes
azure_aiYesYesYes
azureYesYesYes

LiteLLM keys Azure twice, and the two are not interchangeable: azure_ai is the Azure AI Foundry catalogue (Llama, Phi, Mistral, Cohere, and the gpt-5.x entries Foundry serves), while azure is Azure OpenAI Service — the only one of the two that carries the gpt-4.1 family. Offer both unless a deployment uses just one.

To change what a deployment offers, edit the modes values and restart, or point OPENRAG_MODEL_PROVIDERS_CONFIG at your own YAML file. The file is read once per process, so the restart is what applies the edit; reload the console afterwards to pick up the new list.

VariableDefaultDescription
OPENRAG_MODEL_PROVIDERS_CONFIGNot setPath to a YAML file that replaces the shipped model_providers.yaml. If the file cannot be read, the shipped list is used.

Hide specific models

A row can also keep ids out of the pickers. * and ? wildcards work, and matching is against the id as the picker shows it — gpt-3.5-turbo, not openai/gpt-3.5-turbo. The id's last path segment is matched too, so a plain name also covers Azure's regional listings (eu/gpt-5.6-luna, us/gpt-5.6-luna); write eu/* to reach one region on its own.

Exclusions are per provider row. Azure OpenAI serves the same models as OpenAI, so a model you want gone from both needs the pattern on both rows.

- name: openai
display_name: OpenAI
modes:
oss: true
exclude_models:
- gpt-3.5-* # a whole generation
- gpt-5.6-luna # one model

Exclusion is applied last, so it also overrides a models entry on the same provider, and it covers the live /models/{provider} lists as well as the catalogue — otherwise an id hidden in Settings would reappear in onboarding.

Two other mechanisms already run without configuration, so reach for exclude_models only when neither covers you:

SituationHandled by
The provider has already retired the modelDropped from the catalogue automatically
The provider has announced a retirement within 90 daysHidden behind a Show N retiring row in the picker
This deployment does not want the model offered at allexclude_models

Credentials for a provider without a purpose-built form — Azure AI Foundry today — are entered in Settings through a form built from the provider's own credential fields. Configuring one needs no code change beyond its row in this file.

Add a custom OpenAI-compatible provider

To offer a self-hosted OpenAI-compatible endpoint — vLLM, LM Studio, or an internal gateway — add a row that declares the model ids it serves. The public vendors need no models list because LiteLLM already ships one, but a private gateway serves whatever its operator deployed, so those ids can only come from this file.

- name: openai_like
display_name: Internal LLM Gateway
modes:
oss: true
on_prem: true
saas: false
models:
- llama-3.3-70b-instruct
- qwen2.5-coder-32b
embedding_models:
- bge-m3

Restart, then open Settings and configure the new card with the gateway's API base (for example https://gateway.internal/v1) and API key. The declared models then appear in the agent and ingestion pickers, and are served from /v1/models as openai_like:llama-3.3-70b-instruct.

Use one of LiteLLM's passthrough provider keys for nameopenai_like, hosted_vllm, lm_studio, llamafile, or custom_openai — rather than inventing one. The key must be a provider LiteLLM can route, or the provider:model ids OpenRAG publishes resolve to the default provider and are called with the wrong credentials. A name that is not routable is logged as a warning when the catalogue is built.

Declaring models on a public vendor row also works, and is how you surface a fine-tune or a private deployment that is not in LiteLLM's table. Ids that the table already lists are not duplicated.

Document processing settings

Controls some aspects of how OpenRAG processes and ingests documents into your knowledge base.

For the embedding model and Docling engine variables that you can set on the OpenRAG Settings page, see Configure ingestion.

For Langflow flow IDs and Langflow timeout settings, see Langflow settings.

VariableDefaultDescription
DISABLE_INGEST_WITH_LANGFLOWfalseDisable Langflow ingestion pipeline if you don't want to use the default Docling Serve instance.
DOCLING_SERVE_URLhttp://HOST_IP:5001URL for the Docling Serve instance. By default, OpenRAG starts a local docling serve process and auto-detects the host. To use your own local or remote Docling Serve instance, set this variable to the full path to the target instance. The service must run on port 5001.
OPENRAG_DOCUMENTS_PATH~/.openrag/documentsThe local documents path for ingestion.
HOST_DOCKER_INTERNALhost.docker.internalHost address for accessing services running on the host machine from within Docker containers. This is used to connect to the local Docling Serve instance started by OpenRAG. If your system uses a different hostname for this purpose, set this variable accordingly.
INGESTION_TIMEOUT3600Document ingestion timeout limit in seconds for each file. Increase this value if you experience timeouts when ingesting very large documents. Must be greater than or equal to LANGFLOW_TIMEOUT.
UPLOAD_BATCH_SIZE25When ingesting folders, set the maximum number of files to ingest per batch. Each batch is an ingestion task. Increase this value to ingest more files per batch. If this value is too high, performance issues can occur.

Langflow settings

Configure the OpenRAG Langflow server's authentication, contact point, and built-in flow definitions.

info

The LANGFLOW_SUPERUSER_PASSWORD is set in your .env file, and this value determines the default values for several other Langflow authentication variables.

If the LANGFLOW_SUPERUSER_PASSWORD variable isn't set, then the Langflow server starts without authentication enabled.

For better security, it is recommended to set LANGFLOW_SUPERUSER_PASSWORD so the Langflow server starts with authentication enabled.

VariableDefaultDescription
LANGFLOW_DATA_PATH./langflow-dataThe path where OpenRAG persists the Langflow database (flows, credentials, settings) across container restarts.
LANGFLOW_AUTO_LOGINDetermined by LANGFLOW_SUPERUSER_PASSWORDWhether to enable auto-login mode for the Langflow visual editor and CLI. If LANGFLOW_SUPERUSER_PASSWORD isn't set, then LANGFLOW_AUTO_LOGIN is True and auto-login mode is enabled. If LANGFLOW_SUPERUSER_PASSWORD is set, then LANGFLOW_AUTO_LOGIN is False and auto-login mode is disabled. Langflow API calls always require authentication with a Langflow API key regardless of the auto-login setting.
LANGFLOW_ENABLE_SUPERUSER_CLIDetermined by LANGFLOW_SUPERUSER_PASSWORDWhether to enable the Langflow CLI langflow superuser command. If LANGFLOW_SUPERUSER_PASSWORD isn't set, then LANGFLOW_ENABLE_SUPERUSER_CLI is True and superuser accounts can be created with the Langflow CLI. If LANGFLOW_SUPERUSER_PASSWORD is set, then LANGFLOW_ENABLE_SUPERUSER_CLI is False and the langflow superuser command is disabled.
LANGFLOW_NEW_USER_IS_ACTIVEDetermined by LANGFLOW_SUPERUSER_PASSWORDWhether new Langflow user accounts are active by default. If LANGFLOW_SUPERUSER_PASSWORD isn't set, then LANGFLOW_NEW_USER_IS_ACTIVE is True and new user accounts are active by default. If LANGFLOW_SUPERUSER_PASSWORD is set, then LANGFLOW_NEW_USER_IS_ACTIVE is False and new user accounts are inactive by default.
LANGFLOW_PORT7860Host port for the Langflow service. Change this if port 7860 is already in use on your system. If you change this, you must also set LANGFLOW_PUBLIC_URL to the new port.
LANGFLOW_PUBLIC_URLhttp://localhost:7860Public URL for the Langflow instance. Forms the base URL for Langflow API calls and other interfaces with your OpenRAG Langflow instance. Can also be set in the terminal's Reconfigure option at the Cloud connector and advanced settings prompt.
LANGFLOW_SECRET_KEYAutomatically generatedSecret encryption key for Langflow internal operations. It is recommended to generate your own Langflow secret key for this variable. If this variable isn't set, then Langflow generates a secret key automatically.
LANGFLOW_SUPERUSERadminUsername for the Langflow administrator user.
LANGFLOW_SUPERUSER_PASSWORDNot setLangflow administrator password. If this variable isn't set, then the Langflow server starts without authentication enabled. It is recommended to set LANGFLOW_SUPERUSER_PASSWORD so the Langflow server starts with authentication enabled.
LANGFLOW_CHAT_FLOW_ID, LANGFLOW_INGEST_FLOW_ID, NUDGES_FLOW_ID, LANGFLOW_URL_INGEST_FLOW_IDBuilt-in flow IDsThese variables are set automatically to the IDs of the chat, Docling ingestion, URL ingestion, and nudges flows. The default values are found in .env.example. Only change these values if you want to replace a built-in flow with your own custom flow. The flow JSON must be present in your version of the OpenRAG codebase. For example, if you deploy self-managed services, you can add the flow JSON to your local clone of the OpenRAG repository before deploying OpenRAG.
LANGFUSE_SECRET_KEYNot setOptional Langfuse secret key to enable the Langflow integration with Langfuse.
LANGFUSE_PUBLIC_KEYNot setOptional Langfuse public key to enable the Langflow integration with Langfuse.
LANGFUSE_HOSTNot setLeave empty for Langfuse Cloud. Required for self-hosted Langfuse deployments if LANGFUSE_SECRET_KEY and LANGFUSE_PUBLIC_KEY are set. The address must be relative to the OpenRAG container deployment. For example, http://localhost:3002 or http://host.docker.internal:3000.
LANGFLOW_TIMEOUT2400Total Langflow HTTP timeout limit in seconds. Increase this value if you experience timeouts when ingesting very large PDFs. See also INGESTION_TIMEOUT.
LANGFLOW_CONNECT_TIMEOUT30Langflow HTTP connection timeout limit in seconds. Increase this value if you experience timeouts when ingesting very large PDFs.
LANGFLOW_KEYAutomatically generatedA Langflow API key to run flows with Langflow API calls. Because Langflow API keys are server-specific, allow OpenRAG to generate this key initially. You can create additional Langflow API keys after deploying OpenRAG.
LANGFLOW_KEY_RETRIES15Number of retries for Langflow key generation.
LANGFLOW_KEY_RETRY_DELAY2.0Delay between retries in seconds.
LANGFLOW_VERSIONOPENRAG_VERSIONLangflow Docker image version. By default, OpenRAG uses the OPENRAG_VERSION for the Langflow Docker image version. This variable is currently inactive and for information purposes only.

OAuth and cloud storage connector settings

Use these variables to enable OAuth mode and configure cloud storage connectors. You can also set these options through the terminal's Reconfigure option at the Cloud connector and advanced settings prompt.

warning

Additional configuration is required for these features. For more information, see Configure connectors.

VariableDefaultDescription
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
Not setAuthorize OpenRAG to ingest documents from AWS S3 with an AWS OAuth app integration.
GOOGLE_OAUTH_CLIENT_ID
GOOGLE_OAUTH_CLIENT_SECRET
Not setEnable OAuth mode and the Google Drive cloud storage connector with the Google OAuth client integration. You can generate these values in the Google Cloud Console.
MICROSOFT_GRAPH_OAUTH_CLIENT_ID
MICROSOFT_GRAPH_OAUTH_CLIENT_SECRET
Not setEnable the Microsoft Graph OAuth client integration by providing Azure application registration credentials for SharePoint and OneDrive.
WEBHOOK_BASE_URLNot setOptional base URL for OAuth connector webhook endpoints. If not set, a default base URL is used. This variable is required to enable automatic cloud storage ingestion.

Security and Encryption settings

Configure cryptographic parameters and connection data isolation protocols.

VariableDefaultDescription
OPENRAG_ENCRYPTION_KEYNot set32-byte Base64 AES-256-GCM master key locking all database index payloads. Automatically generated when you run the TUI or CLI configuration wizard. If left completely unset, the master encryption wrapper remains inactive and credentials remain in plaintext matrices. Warning: Cannot be lost or rotated without risking data-loss.
OPENRAG_TENANT_IDopenragIdentifier for AAD (Additional Authenticated Data) tenant binding. Ensures that encrypted files are correctly associated with the expected tenant environment.
IBM_AUTH_ENABLEDfalseEnabling this feature queries the IBM Secrets Manager API for your decryption keys natively. If the IBM API request is unauthorized, misconfigured, or fails, the system automatically falls back to evaluating your local OPENRAG_ENCRYPTION_KEY.

OpenSearch settings

Configure OpenSearch database authentication.

VariableDefaultDescription
OPENSEARCH_PASSWORDNot setRequired. OpenSearch administrator password. Must adhere to the OpenSearch password complexity requirements. You must set this directly in the .env or in the terminal's Reconfigure option.
OPENSEARCH_NODE_COUNT_CHECK_ENABLEDfalse in local single-node setups; otherwise trueEnables the startup readiness gate that waits for the expected OpenSearch node counts. Keep this false for local single-node compose/dev environments.
OPENSEARCH_INDEX_NAMEdocumentsThe name of the OpenSearch index.
OPENSEARCH_HOSTlocalhostOpenSearch service host.
OPENSEARCH_PORT9200OpenSearch service port.
OPENSEARCH_USERNAMEadminOpenSearch administrator username.
OPENRAG_OPENSEARCH_NUMBER_OF_SHARDS2Primary shard count for newly-created OpenRAG indices. Existing indices must be reindexed to change shard count.
OPENRAG_OPENSEARCH_NUMBER_OF_REPLICAS2Replica shard count for OpenRAG indices. OpenRAG reconciles existing managed indices to this value at startup.
LANGFLOW_OPENSEARCH_HOSTNot setBy default, OpenRAG passes the OPENSEARCH_HOST value to Langflow. Use the LANGFLOW_OPENSEARCH_* variables to set a different OpenSearch endpoint for Langflow specifically. OpenRAG itself still uses the OPENSEARCH_HOST value.
LANGFLOW_OPENSEARCH_PORTNot setBy default, OpenRAG passes the OPENSEARCH_PORT value to Langflow. Use the LANGFLOW_OPENSEARCH_* variables to set a different OpenSearch endpoint for Langflow specifically. OpenRAG itself still uses the OPENSEARCH_PORT value.

Container image and registry settings

By default, OpenRAG pulls its container images from Docker Hub under the langflowai organization. Use these variables to pull images from a private registry or an internal mirror instead, such as in an enterprise or air-gapped environment.

For a complete walkthrough, including how to mirror the images, see Deploy OpenRAG from a private registry.

VariableDefaultDescription
IMAGE_REGISTRYdocker.ioRegistry host for the OpenRAG-owned images (openrag-backend, openrag-frontend, openrag-langflow, and openrag-opensearch). Set this to your registry hostname, and include the port if your registry uses a non-standard one, such as registry.example.com:5000. Don't include a scheme (https://) or a trailing slash. This variable doesn't affect the OpenSearch Dashboards image; use DASHBOARDS_REGISTRY for that image.
IMAGE_ORGlangflowaiOrganization or namespace that contains the OpenRAG-owned images within IMAGE_REGISTRY. Together, these variables form the repository path IMAGE_REGISTRY/IMAGE_ORG/IMAGE_NAME. For example, IMAGE_REGISTRY=registry.example.com and IMAGE_ORG=platform-team resolves the backend image to registry.example.com/platform-team/openrag-backend.
OPENRAG_IMAGE_TAGNot setOverrides the image tag applied to all OpenRAG-owned images. When set, this variable takes precedence over OPENRAG_VERSION. When it isn't set, OpenRAG falls back to OPENRAG_VERSION, and then to latest. Use this variable when your mirror re-tags images and the tags don't match the OpenRAG release versions.
DASHBOARDS_REGISTRYdocker.ioRegistry host for the OpenSearch Dashboards image only. This lets you point Dashboards at a mirror without redirecting the OpenRAG-owned images. The repository path and tag within the registry are fixed, so the mirrored image must be available at DASHBOARDS_REGISTRY/opensearchproject/opensearch-dashboards:3.6.0.
important

These variables are read by Docker Compose, so they apply to self-managed deployments. Terminal-managed deployments read them from ~/.openrag/tui/.env, where they determine which images the terminal session treats as OpenRAG-owned when it pulls or cleans up images.

Setting IMAGE_REGISTRY to a host other than docker.io also disables the terminal session's update check, because that check queries the Docker Hub API. The Status page reports neither an available upgrade nor an up-to-date confirmation. Track new releases through your registry or the OpenRAG releases page instead.

Kubernetes deployments don't use these variables. The Helm charts in kubernetes/helm configure images through their own global.imageRegistry, global.imageTag, and global.imagePullSecrets values. Note that the chart's global.imageRegistry value holds the organization (langflowai by default), which is the equivalent of IMAGE_ORG rather than IMAGE_REGISTRY.

System settings

Configure general system components, session management, and logging.

VariableDefaultDescription
FRONTEND_PORT3000Host port for the OpenRAG frontend web interface. Change this if port 3000 is already in use on your system.
OPENRAG_VERSIONlatestThe version of the OpenRAG Docker images to run. If OPENRAG_IMAGE_TAG is set, it takes precedence over this variable. For more information, see Upgrade OpenRAG
NEXT_ALLOWED_DEV_ORIGINShttp://localhost:3000Only used when running OpenRAG in development mode. Accepts a comma-separated list of hostnames to allow additional origins to make requests to the Next.js development server.
MAX_WORKERSmin(4, CPU_COUNT // 2)Number of Backend worker processes for concurrent request handling. Be mindful of hardware limitations to avoid overtaxing system resources.
LANGFLOW_WORKERS1Number of Langflow worker processes for concurrent request handling. Be mindful of hardware limitations to avoid overtaxing system resources.
DOCLING_WORKERS1Number of Docling worker processes for concurrent request handling. Be mindful of hardware limitations to avoid overtaxing system resources.
ACCESS_LOGtrueWhether to enable access logging for OpenRAG services, such as INFO: 127.0.0.1:45132 - "GET /tasks HTTP/1.1" 200 OK. Access logs provide information about incoming requests, and they can be useful for monitoring and debugging.
LOG_FORMATjsonSet to json to enable JSON-formatted log output, or text for standard text logs.
LOG_LEVELINFOLogging level. Can be one of DEBUG, INFO, WARNING, ERROR, or CRITICAL. DEBUG provides the most detailed logs but can impact performance.
SERVICE_NAMEopenragService name used in log entries.
SESSION_SECRETAutomatically generatedSecret key for session management. If not provided, a secure random key is generated automatically.

Observability and APM settings

Instrument OpenRAG Backend with IBM Instana for application performance monitoring and distributed tracing. Instrumentation is off by default.

For a complete walkthrough, including how to obtain an agent key and how to configure Kubernetes deployments, see Monitor OpenRAG with IBM Instana.

The first group configures OpenRAG Backend, which sends traces to an Instana host agent.

VariableDefaultDescription
INSTANA_ENABLEDfalseWhether to load the Instana Python tracer in OpenRAG Backend. Accepts true, 1, or yes to enable. This variable is read once at process start, so the backend must be restarted for a change to take effect. The tracer is an optional dependency: the backend container image includes it, and a backend run from source needs uv sync --extra apm. If it isn't installed, the backend logs a warning and runs untraced.
INSTANA_AGENT_HOSThost.docker.internal for containerized deployments; localhost for a backend that runs directly on the hostAddress of the Instana host agent that the tracer sends spans to. In Kubernetes, leave this unset. The Helm chart and the operator inject the pod's own node IP, which is the address of the per-node agent DaemonSet.
INSTANA_AGENT_PORT42699Port of the Instana host agent.
INSTANA_SERVICE_NAMENot setService name that OpenRAG Backend reports to Instana, shown in the Applications and Analyze Traces views. Leave this unset rather than setting it to an empty value, because the tracer checks it for presence rather than for a value, and an empty value registers a service with a blank name.
INSTANA_ZONENot setCustom zone that the host and process are grouped under in the Instana Infrastructure view. Presence-sensitive in the same way as INSTANA_SERVICE_NAME.
INSTANA_LOG_LEVELinfoVerbosity of the tracer's own logging, as one of debug, info, warn, or error. This is unrelated to LOG_LEVEL, which controls OpenRAG's application logs. Presence-sensitive in the same way as INSTANA_SERVICE_NAME: an empty value logs an Unknown INSTANA_LOG_LEVEL warning on every start.
INSTANA_SECRETSregex:.*key.*,.*pass.*,.*secret.*,.*token.*,q\Z,search\Z,filename\ZQuery-string parameters that the tracer replaces with <redacted> before a span is sent, as <matcher>:<name>[,<name>] where the matcher is one of equals, equals-ignore-case, contains, contains-ignore-case, or regex. OpenRAG sets this rather than leaving it at the tracer's own contains-ignore-case:key,pass,secret, which only covers credential-shaped parameter names and not free-text ones such as the q of GET /v2/files/search. See Redact query parameters.
INSTANA_TRACING_DISABLEloggingSpan categories or types that the tracer skips, as a comma-separated list, or true to disable tracing entirely. OpenRAG sets logging rather than leaving it empty, because a logging span is created for every WARNING and ERROR logged inside a request trace, at a cost that grows for as long as the process runs. See Performance guardrails.
INSTANA_STACK_TRACEerrorWhen the tracer captures a Python stack trace for an exit span, as one of all, error, or none. OpenRAG sets error rather than the tracer's own all, which captures a full stack on every outbound HTTP call, OpenSearch query, and database query. Any other value logs a warning and falls back to all, so use all to opt out rather than an empty value. See Performance guardrails.
INSTANA_STACK_TRACE_LENGTH30Maximum number of frames kept in a captured stack trace, between 1 and 40. Only has an effect when INSTANA_STACK_TRACE captures a stack.

The second group configures the optional local Instana host agent that make instana-agent-up starts. These variables don't affect the backend, and they aren't used by Kubernetes deployments, where the agent is installed separately as a DaemonSet.

VariableDefaultDescription
INSTANA_AGENT_KEYNot setAgent key for your Instana tenant, from Infrastructure > Add a Host in the Instana UI. Required by make instana-agent-up, which fails if the key isn't set.
INSTANA_AGENT_ENDPOINTingress-coral-saas.instana.ioIngress endpoint that the host agent forwards data to. This value is region-specific, so use the endpoint that your tenant's Add a Host wizard shows rather than the default.
INSTANA_AGENT_ENDPOINT_PORT443Port of the ingress endpoint.
INSTANA_AGENT_IMAGE_TAG1.323.1Tag of the icr.io/instana/agent image that the local host agent runs. The tag is pinned rather than tracked on latest because the agent container runs privileged. For available tags, see the agent's tag list.
warning

make instana-agent-up starts a privileged container in the host PID namespace with access to the Docker socket, which is effectively root access to the host. It's intended for local development machines only. Don't run it on a shared or production host.