[PR #1368] [MERGED] docs: correct OFFLINE_MODE scope and document the requirements skip #1335

Closed
opened 2026-10-18 14:18:56 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/docs/pull/1368
Author: @silentoplayz
Created: 9/1/2026
Status: ✅ Merged
Merged: 9/1/2026
Merged by: @Classic298

Base: main ← Head: docs/offline-mode-scope


📝 Commits (1)

  • fcca4dd docs: correct OFFLINE_MODE scope and document the requirements skip

📊 Changes

2 files changed (+8 additions, -2 deletions)

View changed files

📝 docs/getting-started/advanced-topics/hardening.md (+4 -2)
📝 docs/reference/env-configuration.mdx (+4 -0)

📄 Description

Summary

OFFLINE_MODE is currently described in two ways that contradict each other, and one of its effects is not documented at all.

The scope is overstated on the hardening page. It says offline mode disables "other outbound calls" and, in the production checklist, that it disables "all outbound calls". The environment reference on the same site lists external LLM APIs, OAuth providers, and web search as still functional. A reader following the hardening page can reasonably conclude that setting one variable seals the instance, when the connections they configure themselves are untouched.

The requirements skip is undocumented. OFFLINE_MODE also skips installing the Python packages declared in function and tool requirements frontmatter, and it does so even when ENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTS is left enabled. Nothing on the site connects those two. The pages that document the auto-install attribute it to ENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTS alone and do not mention offline mode, and the offline mode pages never mention requirements. Anyone running custom Tools or Functions who enables offline mode gets a behavior change that only appears as an INFO log line, followed by a ModuleNotFoundError when the plugin loads.

This PR corrects the scope wording and documents the skip, without changing any behavior or recommending anything new.

None.

Checklist

  • I have reviewed the relevant documentation and matched the existing style.
  • This PR meets Open WebUI's contribution standards: it is accurate, relevant to users, narrowly scoped, maintainable, and not promotional content, advertising, lead generation, SEO placement, or a request to list a product, service, provider, integration, gateway, tool, or company primarily for visibility.
  • I understand that PRs that do not meet these standards may be closed without review and will not be merged. Repeated, low-quality, off-topic, promotional, or intentionally misleading submissions may result in the contributor being blocked from future participation in Open WebUI repositories.

Notes for reviewers

Every claim was checked against the code at tag v0.11.3, where OFFLINE_MODE appears in five files:

  • backend/open_webui/env.py:1180-1184 sets HF_HUB_OFFLINE=1 and forces ENABLE_VERSION_UPDATE_CHECK off.
  • backend/open_webui/config.py:1008, :1035, :1551 gate the embedding, reranking, and Whisper auto-updates.
  • backend/open_webui/retrieval/utils.py:1691, :1719 force local_files_only for the embedding snapshot and re-raise instead of falling back.
  • backend/open_webui/utils/plugin.py:428 returns early from install_frontmatter_requirements(), after the ENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTS check, so offline mode skips the install independently of that variable. Called from :225 (tools), :275 (functions), and :482 (startup).
  • backend/open_webui/utils/auth.py:27 imports the flag and never uses it.

Nothing gates web search, external model APIs, OAuth, tool servers, or object storage, which is why the wording moved to "the connections Open WebUI makes on its own behalf".

Two files change. The two links added point at anchors already used elsewhere in the docs, and npx prettier --check passes on both.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/docs/pull/1368 **Author:** [@silentoplayz](https://github.com/silentoplayz) **Created:** 9/1/2026 **Status:** ✅ Merged **Merged:** 9/1/2026 **Merged by:** [@Classic298](https://github.com/Classic298) **Base:** `main` ← **Head:** `docs/offline-mode-scope` --- ### 📝 Commits (1) - [`fcca4dd`](https://github.com/open-webui/docs/commit/fcca4dd079938e44e9dbab5857cb6ffd24b1825c) docs: correct OFFLINE_MODE scope and document the requirements skip ### 📊 Changes **2 files changed** (+8 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `docs/getting-started/advanced-topics/hardening.md` (+4 -2) 📝 `docs/reference/env-configuration.mdx` (+4 -0) </details> ### 📄 Description ## Summary `OFFLINE_MODE` is currently described in two ways that contradict each other, and one of its effects is not documented at all. **The scope is overstated on the hardening page.** It says offline mode disables "other outbound calls" and, in the production checklist, that it disables "all outbound calls". The environment reference on the same site lists external LLM APIs, OAuth providers, and web search as still functional. A reader following the hardening page can reasonably conclude that setting one variable seals the instance, when the connections they configure themselves are untouched. **The requirements skip is undocumented.** `OFFLINE_MODE` also skips installing the Python packages declared in function and tool `requirements` frontmatter, and it does so even when `ENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTS` is left enabled. Nothing on the site connects those two. The pages that document the auto-install attribute it to `ENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTS` alone and do not mention offline mode, and the offline mode pages never mention `requirements`. Anyone running custom Tools or Functions who enables offline mode gets a behavior change that only appears as an INFO log line, followed by a `ModuleNotFoundError` when the plugin loads. This PR corrects the scope wording and documents the skip, without changing any behavior or recommending anything new. ## Related issue or discussion None. ## Checklist - [x] I have reviewed the relevant documentation and matched the existing style. - [x] This PR meets Open WebUI's contribution standards: it is accurate, relevant to users, narrowly scoped, maintainable, and not promotional content, advertising, lead generation, SEO placement, or a request to list a product, service, provider, integration, gateway, tool, or company primarily for visibility. - [x] I understand that PRs that do not meet these standards may be closed without review and will not be merged. Repeated, low-quality, off-topic, promotional, or intentionally misleading submissions may result in the contributor being blocked from future participation in Open WebUI repositories. ## Notes for reviewers Every claim was checked against the code at tag `v0.11.3`, where `OFFLINE_MODE` appears in five files: - `backend/open_webui/env.py:1180-1184` sets `HF_HUB_OFFLINE=1` and forces `ENABLE_VERSION_UPDATE_CHECK` off. - `backend/open_webui/config.py:1008`, `:1035`, `:1551` gate the embedding, reranking, and Whisper auto-updates. - `backend/open_webui/retrieval/utils.py:1691`, `:1719` force `local_files_only` for the embedding snapshot and re-raise instead of falling back. - `backend/open_webui/utils/plugin.py:428` returns early from `install_frontmatter_requirements()`, after the `ENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTS` check, so offline mode skips the install independently of that variable. Called from `:225` (tools), `:275` (functions), and `:482` (startup). - `backend/open_webui/utils/auth.py:27` imports the flag and never uses it. Nothing gates web search, external model APIs, OAuth, tool servers, or object storage, which is why the wording moved to "the connections Open WebUI makes on its own behalf". Two files change. The two links added point at anchors already used elsewhere in the docs, and `npx prettier --check` passes on both. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-18 14:18:56 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-webui/docs#1335
No description provided.