feat: group env vars

This commit is contained in:
Jun Siang Cheah 2024-05-08 20:14:51 +08:00
parent deb44338d2
commit 296fc9a1f1

View File

@ -4,7 +4,9 @@
Here is a list of supported environment variables used by `backend/config.py` intended to provide Open WebUI startup configurability. See also the [logging environment variables](/getting-started/logging#appbackend). There may be different defaults depending if launched directly, or via Docker. Here is a list of supported environment variables used by `backend/config.py` intended to provide Open WebUI startup configurability. See also the [logging environment variables](/getting-started/logging#appbackend). There may be different defaults depending if launched directly, or via Docker.
### `ENV` ### General
#### `ENV`
* Options: * Options:
* `dev` - Enables the FastAPI API docs on `/docs` * `dev` - Enables the FastAPI API docs on `/docs`
@ -14,209 +16,241 @@ Here is a list of supported environment variables used by `backend/config.py` in
* **Docker Default**: `prod` * **Docker Default**: `prod`
* Description: Environment setting. * Description: Environment setting.
### `WEBUI_NAME` #### `WEBUI_NAME`
* Default: `Open WebUI` * Default: `Open WebUI`
* Description: Sets the main WebUI name. Appends `(Open WebUI)` if overridden. * Description: Sets the main WebUI name. Appends `(Open WebUI)` if overridden.
### `WEBUI_URL` #### `WEBUI_URL`
* Default: `http://localhost:3000` * Default: `http://localhost:3000`
* Description: Specifies the URL where the Open WebUI is reachable. Currently used for search engine support. * Description: Specifies the URL where the Open WebUI is reachable. Currently used for search engine support.
### `DATA_DIR` #### `DATA_DIR`
* Default: `./data` * Default: `./data`
* Description: Specifies the base directory for data storage, including uploads, cache, vector database, etc. * Description: Specifies the base directory for data storage, including uploads, cache, vector database, etc.
### `FRONTEND_BUILD_DIR` #### `FRONTEND_BUILD_DIR`
* Default: `../build` * Default: `../build`
* Description: Specifies the location of the built frontend files. * Description: Specifies the location of the built frontend files.
### `STATIC_DIR` #### `STATIC_DIR`
* Default: `./static` * Default: `./static`
* Description: Specifies the directory for static files, such as the favicon. * Description: Specifies the directory for static files, such as the favicon.
### `CUSTOM_NAME` #### `CUSTOM_NAME`
* Description: Sets `WEBUI_NAME` but polls _api.openwebui.com_ for metadata. * Description: Sets `WEBUI_NAME` but polls _api.openwebui.com_ for metadata.
### `DOCS_DIR` #### `ENABLE_SIGNUP`
* Default: `${DATA_DIR}/docs`
* Description: Specifies the directory scanned for documents to add to the RAG database when triggered.
### `OLLAMA_API_BASE_URL`
* Default: `http://localhost:11434/api`
* Description: Deprecated, see `OLLAMA_BASE_URL`.
### `OLLAMA_BASE_URL`
* Default: `http://localhost:11434`
* Description: Configures the Ollama backend URL.
* Docker Default:
* If `K8S_FLAG` is set: `http://ollama-service.open-webui.svc.cluster.local:11434`
* If `USE_OLLAMA_DOCKER=true`: `http://localhost:11434`
* Else `http://host.docker.internal:11434`
### `USE_OLLAMA_DOCKER`
* Default: `False`
* Description: Builds the Docker image with a bundled Ollama instance.
### `K8S_FLAG`
* Description: If set, assumes Helm chart deployment and sets `OLLAMA_BASE_URL` to `http://ollama-service.open-webui.svc.cluster.local:11434`
### `OLLAMA_BASE_URLS`
* Description: Configures load-balanced Ollama backend hosts, separated by `;`. See `OLLAMA_BASE_URL`. Takes precedence over `OLLAMA_BASE_URL`.
### `OPENAI_API_KEY`
* Description: Sets the OpenAI API key.
### `OPENAI_API_BASE_URL`
* Default: `https://api.openai.com/v1`
* Description: Configures the OpenAI base API URL.
### `OPENAI_API_BASE_URLS`
* Description: Supports balanced OpenAI base API URLs, semicolon-separated: `http://host-one:11434;http://host-two:11434`
### `OPENAI_API_KEYS`
* Description: Supports multiple OpenAI API keys, semicolon-separated.
### `ENABLE_SIGNUP`
* Default: `True` * Default: `True`
* Description: Toggles user account creation. * Description: Toggles user account creation.
### `DEFAULT_MODELS` #### `DEFAULT_MODELS`
* Description: Sets a default Language Model. * Description: Sets a default Language Model.
### `DEFAULT_USER_ROLE` #### `DEFAULT_USER_ROLE`
* Options: `pending`, `user`, `admin`
* Default: `pending` * Default: `pending`
* Description: Sets the default role assigned to new users. Options: `pending`, `user`, `admin` * Description: Sets the default role assigned to new users.
### `USER_PERMISSIONS_CHAT_DELETION` #### `USER_PERMISSIONS_CHAT_DELETION`
* Default: `True` * Default: `True`
* Description: Toggles user permission to delete chats. * Description: Toggles user permission to delete chats.
### `ENABLE_MODEL_FILTER` #### `ENABLE_MODEL_FILTER`
* Default: `False` * Default: `False`
* Description: Toggles Language Model filtering. * Description: Toggles Language Model filtering.
### `MODEL_FILTER_LIST` #### `MODEL_FILTER_LIST`
* Description: Sets the Language Model filter list, semicolon-separated: `llama3:instruct;gemma:instruct` * Description: Sets the Language Model filter list, semicolon-separated
* Example: `llama3:instruct;gemma:instruct`
### `WEBHOOK_URL` #### `WEBHOOK_URL`
* Description: Sets a webhook for integration with Slack/Microsoft Teams. * Description: Sets a webhook for integration with Slack/Microsoft Teams.
### `ENABLE_ADMIN_EXPORT` #### `ENABLE_ADMIN_EXPORT`
* Default: `True` * Default: `True`
* Description: Controls whether admin users can export data. * Description: Controls whether admin users can export data.
### `WEBUI_VERSION` #### `WEBUI_VERSION`
* Default: `v1.0.0-alpha.100` * Default: `v1.0.0-alpha.100`
* Description: Overrides the WebUI version. Currently unused. * Description: Overrides the WebUI version. Currently unused.
### `WEBUI_AUTH_TRUSTED_EMAIL_HEADER` #### `WEBUI_AUTH_TRUSTED_EMAIL_HEADER`
* Description: Defines the trusted request header for authentication. See [SSO docs](/tutorial/sso). * Description: Defines the trusted request header for authentication. See [SSO docs](/tutorial/sso).
### `WEBUI_SECRET_KEY` #### `WEBUI_SECRET_KEY`
* Default: `t0p-s3cr3t` * Default: `t0p-s3cr3t`
* Docker Default: Randomly generated on first start * Docker Default: Randomly generated on first start
* Description: Overrides the randomly generated string used for JSON Web Token. * Description: Overrides the randomly generated string used for JSON Web Token.
### `CHROMA_TENANT` #### `USE_CUDA_DOCKER`
* Default: `False`
* Description: Builds the Docker image with NVIDIA CUDA support. Enables GPU acceleration for local Whisper and embeddings.
#### `DATABASE_URL`
* Default: `sqlite:///${DATA_DIR}/webui.db`
* Description: Specifies the database URL to connect to. Supports SQLite and Postgres. Changing the URL does not migrate data between databases. Documentation on URL scheme available [here](https://docs.peewee-orm.com/en/latest/peewee/playhouse.html#db-url).
#### `PORT`
* Default: `8080`
* Description: Sets the port to run Open WebUI from.
### Ollama
#### `OLLAMA_BASE_URL`
* Default: `http://localhost:11434`
* Docker Default:
* If `K8S_FLAG` is set: `http://ollama-service.open-webui.svc.cluster.local:11434`
* If `USE_OLLAMA_DOCKER=true`: `http://localhost:11434`
* Else `http://host.docker.internal:11434`
* Description: Configures the Ollama backend URL.
#### `OLLAMA_BASE_URLS`
* Description: Configures load-balanced Ollama backend hosts, separated by `;`. See [`OLLAMA_BASE_URL`](#ollama_base_url). Takes precedence over[`OLLAMA_BASE_URL`](#ollama_base_url).
#### `K8S_FLAG`
* Description: If set, assumes Helm chart deployment and sets [`OLLAMA_BASE_URL`](#ollama_base_url) to `http://ollama-service.open-webui.svc.cluster.local:11434`
#### `USE_OLLAMA_DOCKER`
* Default: `False`
* Description: Builds the Docker image with a bundled Ollama instance.
#### `OLLAMA_API_BASE_URL`
* Default: `http://localhost:11434/api`
* Description: Deprecated, see [`OLLAMA_BASE_URL`](#ollama_base_url).
### OpenAI
#### `OPENAI_API_KEY`
* Description: Sets the OpenAI API key.
#### `OPENAI_API_BASE_URL`
* Default: `https://api.openai.com/v1`
* Description: Configures the OpenAI base API URL.
#### `OPENAI_API_BASE_URLS`
* Description: Supports balanced OpenAI base API URLs, semicolon-separated.
* Example: `http://host-one:11434;http://host-two:11434`
#### `OPENAI_API_KEYS`
* Description: Supports multiple OpenAI API keys, semicolon-separated.
* Example: `sk-124781258123;sk-4389759834759834`
### RAG
#### `DOCS_DIR`
* Default: `${DATA_DIR}/docs`
* Description: Specifies the directory scanned for documents to add to the RAG database when triggered.
#### `CHROMA_TENANT`
* Default: `default_tenant` * Default: `default_tenant`
* Description: Sets the tenant for ChromaDB to use for RAG embeddings. * Description: Sets the tenant for ChromaDB to use for RAG embeddings.
### `CHROMA_DATABASE` #### `CHROMA_DATABASE`
* Default: `default_database` * Default: `default_database`
* Description: Sets the database in the ChromaDB tenant to use for RAG embeddings. * Description: Sets the database in the ChromaDB tenant to use for RAG embeddings.
### `CHROMA_HTTP_HOST` #### `CHROMA_HTTP_HOST`
* Description: Specifies the hostname of a remote ChromaDB Server. Uses a local ChromaDB instance if not set. * Description: Specifies the hostname of a remote ChromaDB Server. Uses a local ChromaDB instance if not set.
### `CHROMA_HTTP_PORT` #### `CHROMA_HTTP_PORT`
* Default: `8000` * Default: `8000`
* Description: Specifies the port of a remote ChromaDB Server. * Description: Specifies the port of a remote ChromaDB Server.
### `CHROMA_HTTP_HEADERS` #### `CHROMA_HTTP_HEADERS`
* Description: Comma-separated list of HTTP headers to include with every ChromaDB request, for example, `Authorization=Bearer heuhagfuahefj,User-Agent=OpenWebUI`. * Description: Comma-separated list of HTTP headers to include with every ChromaDB request.
* Example: `Authorization=Bearer heuhagfuahefj,User-Agent=OpenWebUI`.
### `CHROMA_HTTP_SSL` #### `CHROMA_HTTP_SSL`
* Default: `False` * Default: `False`
* Description: Controls whether or not SSL is used for ChromaDB Server connections. * Description: Controls whether or not SSL is used for ChromaDB Server connections.
### `RAG_TOP_K` #### `RAG_TOP_K`
* Default: `5` * Default: `5`
* Description: Sets the default number of results to consider when using RAG. * Description: Sets the default number of results to consider when using RAG.
### `RAG_RELEVANCE_THRESHOLD` #### `RAG_RELEVANCE_THRESHOLD`
* Default: `0.0` * Default: `0.0`
* Description: Sets the relevance threshold to consider for documents when used with reranking. * Description: Sets the relevance threshold to consider for documents when used with reranking.
### `ENABLE_RAG_HYBRID_SEARCH` #### `ENABLE_RAG_HYBRID_SEARCH`
* Default: `False` * Default: `False`
* Description: Enables the use of ensemble search with `BM25` + `ChromaDB`, with reranking using `sentence_transformers` models. * Description: Enables the use of ensemble search with `BM25` + `ChromaDB`, with reranking using `sentence_transformers` models.
### `ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION` #### `ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION`
* Default: `True` * Default: `True`
* Description: Enables TLS certification verification when browsing web pages for RAG. * Description: Enables TLS certification verification when browsing web pages for RAG.
### `RAG_EMBEDDING_ENGINE` #### `RAG_EMBEDDING_ENGINE`
* Description: Selects an embedding engine to use for RAG. Options: ` ` (empty for local model), `ollama`, `openai`. * Options:
* ` ` (empty for local model)
* `ollama`
* `openai`
* Description: Selects an embedding engine to use for RAG.
### `PDF_EXTRACT_IMAGES` #### `PDF_EXTRACT_IMAGES`
* Default: `False` * Default: `False`
* Description: Extracts images from PDFs using OCR when loading documents. * Description: Extracts images from PDFs using OCR when loading documents.
### `RAG_EMBEDDING_MODEL` #### `RAG_EMBEDDING_MODEL`
* Default: `sentence-transformers/all-MiniLM-L6` * Default: `sentence-transformers/all-MiniLM-L6`
* Description: Configures a Sentence-Transformer model for embeddings. * Description: Sets a model for embeddings. Locally, a Sentence-Transformer model is used.
### `RAG_EMBEDDING_MODEL_AUTO_UPDATE` #### `RAG_EMBEDDING_MODEL_AUTO_UPDATE`
* Default: `False` * Default: `False`
* Description: Toggles automatic update of the Sentence-Transformer model. * Description: Toggles automatic update of the Sentence-Transformer model.
### `RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE` #### `RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE`
* Default: `False` * Default: `False`
* Description: Determines whether or not to allow custom models defined on the Hub in their own modeling files. * Description: Determines whether or not to allow custom models defined on the Hub in their own modeling files.
### `RAG_TEMPLATE` #### `RAG_TEMPLATE`
* Default: * Default:
``` ```
@ -236,110 +270,103 @@ Query: [query]
``` ```
* Description: Template to use when injecting RAG documents into chat completion * Description: Template to use when injecting RAG documents into chat completion
#### `CHUNK_SIZE`
### `USE_CUDA_DOCKER`
* Default: `False`
* Description: Builds the Docker image with NVIDIA CUDA support.
### `CHUNK_SIZE`
* Default: `1500` * Default: `1500`
* Description: Sets the document chunk size for embeddings. * Description: Sets the document chunk size for embeddings.
### `CHUNK_OVERLAP` #### `CHUNK_OVERLAP`
* Default: `100` * Default: `100`
* Description: Specifies how much overlap there should be between chunks. * Description: Specifies how much overlap there should be between chunks.
### `WHISPER_MODEL` ### Speech to Text
#### `WHISPER_MODEL`
* Default: `base` * Default: `base`
* Description: Sets the Whisper model to use for Speech-to-Text. * Description: Sets the Whisper model to use for Speech-to-Text.
### `WHISPER_MODEL_DIR` #### `WHISPER_MODEL_DIR`
* Default: `${DATA_DIR}/cache/whisper/models` * Default: `${DATA_DIR}/cache/whisper/models`
* Description: Specifies the directory to store Whisper model files. * Description: Specifies the directory to store Whisper model files.
### `WHISPER_MODEL_AUTO_UPDATE` #### `WHISPER_MODEL_AUTO_UPDATE`
* Default: `False` * Default: `False`
* Description: Toggles automatic update of the Whisper model. * Description: Toggles automatic update of the Whisper model.
### `ENABLE_IMAGE_GENERATION` ### Text to Speech
* Default: `False` #### `AUDIO_OPENAI_API_BASE_URL`
* Description: Enables or disables image generation features.
### `IMAGE_GENERATION_ENGINE`
* Default: `automatic1111`
* Description: Specifies the engine to use for image generation. Options: `openai`, `comfyui`, `automatic1111`.
### `AUTOMATIC1111_BASE_URL`
* Description: Specifies the URL to Automatic1111's Stable Diffusion API.
### `COMFYUI_BASE_URL`
* Description: Specifies the URL to the ComfyUI image generation API.
### `IMAGES_OPENAI_API_KEY`
* Default: `${OPENAI_API_KEY}`
* Description: Sets the API key to use for DALL-E image generation.
### `IMAGES_OPENAI_API_BASE_URL`
* Default: `${OPENAI_API_BASE_URL}`
* Description: Sets the OpenAI-compatible base URL to use for DALL-E image generation.
### `IMAGE_SIZE`
* Default: `512x512`
* Description: Sets the default image size to generate.
### `IMAGE_STEPS`
* Default: `50`
* Description: Sets the default iteration steps for image generation. Used for ComfyUI and AUTOMATIC1111.
### `IMAGE_GENERATION_MODEL`
* Description: Default model to use for image generation
### `AUDIO_OPENAI_API_BASE_URL`
* Default: `${OPENAI_API_BASE_URL}` * Default: `${OPENAI_API_BASE_URL}`
* Description: Sets the OpenAI-compatible base URL to use for text-to-speech. * Description: Sets the OpenAI-compatible base URL to use for text-to-speech.
### `AUDIO_OPENAI_API_KEY` #### `AUDIO_OPENAI_API_KEY`
* Default: `${OPENAI_API_KEY}` * Default: `${OPENAI_API_KEY}`
* Description: Sets the API key to use for text-to-speech. * Description: Sets the API key to use for text-to-speech.
### `ENABLE_LITELLM` ### Image Generation
#### `ENABLE_IMAGE_GENERATION`
* Default: `False`
* Description: Enables or disables image generation features.
#### `IMAGE_GENERATION_ENGINE`
* Options: `openai`, `comfyui`, `automatic1111`
* Default: `automatic1111`
* Description: Specifies the engine to use for image generation.
#### `AUTOMATIC1111_BASE_URL`
* Description: Specifies the URL to Automatic1111's Stable Diffusion API.
#### `COMFYUI_BASE_URL`
* Description: Specifies the URL to the ComfyUI image generation API.
#### `IMAGES_OPENAI_API_KEY`
* Default: `${OPENAI_API_KEY}`
* Description: Sets the API key to use for DALL-E image generation.
#### `IMAGES_OPENAI_API_BASE_URL`
* Default: `${OPENAI_API_BASE_URL}`
* Description: Sets the OpenAI-compatible base URL to use for DALL-E image generation.
#### `IMAGE_SIZE`
* Default: `512x512`
* Description: Sets the default image size to generate.
#### `IMAGE_STEPS`
* Default: `50`
* Description: Sets the default iteration steps for image generation. Used for ComfyUI and AUTOMATIC1111.
#### `IMAGE_GENERATION_MODEL`
* Description: Default model to use for image generation
### LiteLLM
#### `ENABLE_LITELLM`
* Default: `True` * Default: `True`
* Description: Enables the bundled LiteLLM instance. * Description: Enables the bundled LiteLLM instance.
### `LITELLM_PROXY_PORT` #### `LITELLM_PROXY_PORT`
* Default: `14365` * Default: `14365`
* Description: Sets the port to run the bundled LiteLLM instance on. * Description: Sets the port to run the bundled LiteLLM instance on.
### `LITELLM_PROXY_HOST` #### `LITELLM_PROXY_HOST`
* Default: `127.0.0.1` * Default: `127.0.0.1`
* Description: Sets the address to run the bundled LiteLLM instance on. * Description: Sets the address to run the bundled LiteLLM instance on.
### `DATABASE_URL`
* Default: `sqlite:///${DATA_DIR}/webui.db`
* Description: Specifies the database URL to connect to. Supports SQLite and Postgres. Changing the URL does not migrate data between databases. Documentation on URL scheme available [here](https://docs.peewee-orm.com/en/latest/peewee/playhouse.html#db-url).
### `PORT`
* Default: `8080`
* Description: Sets the port to run Open WebUI from.