mirror of
https://github.com/open-webui/docs.git
synced 2026-11-05 01:38:13 +00:00
[PR #1395] [MERGED] docs: correct env-reference defaults that drifted from config.py and env.py #1361
Labels
No labels
bug
documentation
documentation
duplicate
enhancement
enhancement
good first issue
good first issue
good first issue
help wanted
help wanted
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/docs#1361
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/open-webui/docs/pull/1395
Author: @silentoplayz
Created: 9/18/2026
Status: ✅ Merged
Merged: 9/18/2026
Merged by: @silentoplayz
Base:
main← Head:docs/env-defaults📝 Commits (5)
6ab08a8docs: correct env-reference defaults that drifted from config.py and env.py8077917docs: the local web fetch gate is a startup setting, not a persisted one934f3c3docs: label persisted and startup-only settings the way config.py registers them1c48d27docs: fix env-reference types, the Azure search value, and the splitter options against the code70e49fedocs: use the variable names the code reads for Google Drive and the Playwright websocket📊 Changes
1 file changed (+123 additions, -123 deletions)
View changed files
📝
docs/reference/env-configuration.mdx(+123 -123)📄 Description
Summary
I compared every
- Default:line in the environment variable reference againstbackend/open_webui/config.pyandbackend/open_webui/env.py, ondevand at the v0.11.3 tag. Most entries match. These did not, and each one below now states what the code does:ENABLE_DIRECT_CONNECTIONSandENABLE_AUTOCOMPLETE_GENERATIONdefault toFalse, notTrue.RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODEandRAG_RERANKING_MODEL_TRUST_REMOTE_CODEdefault toTrue, notFalse.DATABASE_ENABLE_SQLITE_WALdefaults toTrue, notFalse.ENABLE_IMAGE_EDITdefaults toFalse, nottrue.USER_PERMISSIONS_WORKSPACE_{MODELS,PROMPTS}_{IMPORT,EXPORT}flags default toFalse, notTrue, and are booleans.TIKA_SERVER_URLdefaults tohttp://tika:9998, nothttp://localhost:9998.DOCUMENT_INTELLIGENCE_MODELdefaults toprebuilt-layout, notNone.CODE_EXECUTION_JUPYTER_TIMEOUTdefaults to60, and the fiveCODE_INTERPRETER_JUPYTER_*settings fall back to theirCODE_EXECUTION_JUPYTER_*counterparts, which the page did not say.PLAYWRIGHT_TIMEOUTdefaults to10000milliseconds, not empty.AIOHTTP_CLIENT_TIMEOUTis unset by default, which means no timeout.300is only the fallback for a value that fails to parse. The page had the two the other way round.WEBUI_URL,DEFAULT_LOCALEandAUDIO_STT_MODELdefault to an empty string, nothttp://localhost:3000,enandwhisper-1. For the locale the page now says what an empty value does (the browser's language, thenen-US).BING_SEARCH_V7_SUBSCRIPTION_KEYlisted the endpoint URL as its default. The URL now sits onBING_SEARCH_V7_ENDPOINT, where the code has it.VECTOR_DBdefaults topgvectoron the slim image.ENABLE_LOCAL_WEB_FETCHis the current name of the SSRF gate and was missing.ENABLE_RAG_LOCAL_WEB_FETCHis kept as the deprecated alias the code still reads, and keeps its anchor. Both are startup settings, not persisted ones.OAUTH_GROUP_CLAIMnow notes thatOAUTH_GROUPS_CLAIMis read too and takes precedence.Persistence labels
Each entry also says whether the setting is persisted (a
ConfigVar, stored in the database after first start and editable in the admin panel) or applied from the environment at every start. The authoritative list is theDEFAULT_CONFIGregistry inconfig.py, whichConfig.seed_defaultsloads. I compared every label against it:LICENSE_KEY,SSL_ASSERT_FINGERPRINT,ENABLE_PUBLIC_ACTIVE_USERS_COUNT,ELEVENLABS_API_BASE_URL,ENABLE_ONEDRIVE_PERSONAL,ENABLE_ONEDRIVE_BUSINESS, all sevenELASTICSEARCH_*, fiveMILVUS_*and fourPGVECTOR_*index settings, and the three SCIM settings.AUTOMATION_AUTH_TOKEN_EXPIRES_IN, the six prompt templates (TITLE_GENERATION_PROMPT_TEMPLATE,FOLLOW_UP_GENERATION_PROMPT_TEMPLATE,AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE,TAGS_GENERATION_PROMPT_TEMPLATE,QUERY_GENERATION_PROMPT_TEMPLATE,RAG_TEMPLATE) andOAUTH_AUDIENCE.ENABLE_SCIMname and once in its own section under the oldSCIM_ENABLEDname, so the page had twoSCIM_TOKENand twoSCIM_AUTH_PROVIDERheadings. The SCIM section now holds the newer three entries (which already note theSCIM_ENABLEDalias) and the copies in the OAuth section are gone.IMAGES_OPENAI_API_PARAMSis the admin config key. The environment variable isIMAGES_OPENAI_PARAMS. The entry now says both.Types and option lists
strwhere the code casts the value to a boolean at assignment: 25 of theUSER_PERMISSIONS_*flags,S3_USE_ACCELERATE_ENDPOINT,S3_ENABLE_TAGGINGandPGVECTOR_CREATE_EXTENSION.PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTHis anint.WEB_SEARCH_ENGINElistedazure_ai_search. The value the backend matches isazure.WEB_LOADER_ENGINEwas missingmicrosoft_web_iq, which the loader accepts alongside the five listed values.RAG_TEXT_SPLITTERwas missingtoken_transformers, and both it andRAG_TOKENIZER_MODELsaid the HuggingFace tokenizer applies to thetokensplitter. In the codetokenis Tiktoken only, and the tokenizer model is read bytoken_transformers.Related issue or discussion
None.
Checklist
Notes for reviewers
Every default was read from the
os.getenvcall inconfig.pyorenv.pyatdevHEAD and again at the v0.11.3 tag, and the two agree on all of the above. The locale fallback comes fromsrc/routes/+layout.svelte. Existing anchors are unchanged, so the links from the hardening guide and the SSO tutorials still resolve. For every relabeled persistence entry I checked both whether the name appears as a value inDEFAULT_CONFIG(directly, through the parsed JSON variable it feeds, or through the user permissions object) and whether the routers read it asapp.state.config.NAMEor import the module constant. The two agree in every case. Settings that feed a persisted list under another name (OPENAI_API_BASE_URLintoopenai.api_base_urls) keep their persisted label.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.