mirror of
https://github.com/open-webui/docs.git
synced 2025-12-12 07:29:49 +07:00
Compare commits
18 Commits
a8b88bce34
...
ef117cfebf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef117cfebf | ||
|
|
d56be4c247 | ||
|
|
c6b1a83d7e | ||
|
|
fd288d3f2e | ||
|
|
b83be510fe | ||
|
|
f7d55528af | ||
|
|
b1fb7f9f5a | ||
|
|
2f3768eaba | ||
|
|
1d27a09ef3 | ||
|
|
88cfaa45c5 | ||
|
|
f259caed08 | ||
|
|
7e59becd58 | ||
|
|
80662a5af7 | ||
|
|
7e748f922b | ||
|
|
160cacb4a9 | ||
|
|
37a6efa2d3 | ||
|
|
5adf72e0ec | ||
|
|
1f3124525e |
@@ -63,11 +63,11 @@ If you are a **consulting agency**, **AI services provider**, **solutions provid
|
||||
|
||||
Please understand:
|
||||
|
||||
- We proactively select partners who align with our mission, vision, and values.
|
||||
- Being on our waitlist does not guarantee a response. If we feel there’s a strong fit, you’ll hear from us.
|
||||
- We receive a high volume of requests and cannot respond to every inquiry. Please do not follow up or send additional messages.
|
||||
- We prioritize mature organizations, companies less than 5 years old are not eligible, except in truly exceptional cases.
|
||||
- Our program is currently at full capacity. We will reach out at our discretion should an opportunity arise.
|
||||
- We proactively select partners who **align with our mission, vision, and values**.
|
||||
- Being on our waitlist **does not guarantee a response**. If we feel there’s a strong fit, you’ll hear from us.
|
||||
- We receive **a high volume of requests** and cannot respond to every inquiry. Please **do not follow up** or send additional messages.
|
||||
- We prioritize mature organizations, companies **less than 5 years old are not eligible**, except in truly exceptional cases.
|
||||
- Our program is currently at **full capacity**. We will reach out at our discretion should an opportunity arise.
|
||||
|
||||
<details>
|
||||
<summary>**If you have an end-client** who is ready to move forward with us and is committed to purchasing a rebrand (enterprise) license immediately...</summary>
|
||||
|
||||
@@ -12,7 +12,7 @@ As new variables are introduced, this page will be updated to reflect the growin
|
||||
|
||||
:::info
|
||||
|
||||
This page is up-to-date with Open WebUI release version [v0.6.35](https://github.com/open-webui/open-webui/releases/tag/v0.6.35), but is still a work in progress to later include more accurate descriptions, listing out options available for environment variables, defaults, and improving descriptions.
|
||||
This page is up-to-date with Open WebUI release version [v0.6.39](https://github.com/open-webui/open-webui/releases/tag/v0.6.39), but is still a work in progress to later include more accurate descriptions, listing out options available for environment variables, defaults, and improving descriptions.
|
||||
|
||||
:::
|
||||
|
||||
@@ -200,6 +200,12 @@ is also being used and set to `True`. **Never disable this if OAUTH/SSO is not b
|
||||
- Default: `0`
|
||||
- Description: Sets the thread pool size for FastAPI/AnyIO blocking calls. By default (when set to `0`) FastAPI/AnyIO use `40` threads. In case of large instances and many concurrent users, it may be needed to increase `THREAD_POOL_SIZE` to prevent blocking.
|
||||
|
||||
:::info
|
||||
|
||||
If you are running larger instances, you WILL NEED to set this to a higher value like multiple hundreds if not thousands (e.g. `1000`) otherwise your app may get stuck the default pool size (which is 40 threads) is full and will not react anymore.
|
||||
|
||||
:::
|
||||
|
||||
#### `MODELS_CACHE_TTL`
|
||||
|
||||
- Type: `int`
|
||||
@@ -1614,6 +1620,14 @@ If you want to use Milvus, be careful when upgrading Open WebUI (crate backups a
|
||||
|
||||
:::
|
||||
|
||||
| Collection Variable | Default Name (Suffix) | Trigger / Routing Logic in the Code | Purpose |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `HASH_BASED_COLLECTION` | `_hash_based` | Collection name is a **63-char hex string** (SHA256 hash). | Caching direct URL fetches (Websites) with the `#` feature. |
|
||||
| `MEMORY_COLLECTION` | `_memories` | Collection name starts with **`user-memory-`**. | Storing user-specific long-term memories of the experimental memory system. |
|
||||
| `FILE_COLLECTION` | `_files` | Collection name starts with **`file-`**. | Storing uploaded documents (PDFs, DOCX, etc.). |
|
||||
| `WEB_SEARCH_COLLECTION`| `_web_search` | Collection name starts with **`web-search-`**. | Storing transient results from search engine queries. |
|
||||
| `KNOWLEDGE_COLLECTION` | `_knowledge` | **Everything else** (Default fallback). | Storing explicitly created Knowledge Bases. |
|
||||
|
||||
:::info
|
||||
|
||||
**Migration from Legacy Mode to Multitenancy**
|
||||
@@ -2153,25 +2167,94 @@ Note: this configuration assumes that AWS credentials will be available to your
|
||||
|
||||
- Type: `str`
|
||||
- Default: `http://docling:5001`
|
||||
- Description: Specifies the URL for the Docling server. Requires Docling version 1.0.0 or later.
|
||||
- Description: Specifies the URL for the Docling server. Requires Docling version 2.0.0 or later for full compatibility with the new parameter-based configuration system.
|
||||
- Persistence: This environment variable is a `PersistentConfig` variable.
|
||||
|
||||
#### `DOCLING_OCR_ENGINE`
|
||||
:::warning
|
||||
|
||||
**Docling 2.0.0+ Required**
|
||||
|
||||
The Docling integration has been refactored to use server-side parameter passing. If you are using Docling:
|
||||
|
||||
1. Upgrade to Docling server version 2.0.0 or later
|
||||
2. Migrate all individual `DOCLING_*` configuration variables to the `DOCLING_PARAMS` JSON object
|
||||
3. Remove all deprecated `DOCLING_*` environment variables from your configuration
|
||||
4. Add `DOCLING_API_KEY` if your server requires authentication
|
||||
|
||||
The old individual environment variables (`DOCLING_OCR_ENGINE`, `DOCLING_OCR_LANG`, etc.) are no longer supported and will be ignored.
|
||||
|
||||
:::
|
||||
|
||||
#### `DOCLING_API_KEY`
|
||||
|
||||
- Type: `str`
|
||||
- Default: `tesseract`
|
||||
- Description: Specifies the OCR engine used by Docling.
|
||||
Supported values include: `tesseract` (default), `easyocr`, `ocrmac`, `rapidocr`, and `tesserocr`.
|
||||
- Default: `None`
|
||||
- Description: Sets the API key for authenticating with the Docling server. Required when the Docling server has authentication enabled.
|
||||
- Persistence: This environment variable is a `PersistentConfig` variable.
|
||||
|
||||
#### `DOCLING_OCR_LANG`
|
||||
#### `DOCLING_PARAMS`
|
||||
|
||||
- Type: `str` (JSON)
|
||||
- Default: `{}`
|
||||
- Description: Specifies all Docling processing parameters in JSON format. This is the primary configuration method for Docling processing options. All previously individual Docling settings are now configured through this single JSON object.
|
||||
|
||||
**Supported Parameters:**
|
||||
- `do_ocr` (bool): Enable OCR processing
|
||||
- `force_ocr` (bool): Force OCR even when text layer exists
|
||||
- `ocr_engine` (str): OCR engine to use (`tesseract`, `easyocr`, `ocrmac`, `rapidocr`, `tesserocr`)
|
||||
- `ocr_lang` (str): OCR language codes (e.g., `eng,fra,deu,spa`)
|
||||
- `pdf_backend` (str): PDF processing backend
|
||||
- `table_mode` (str): Table extraction mode
|
||||
- `pipeline` (str): Processing pipeline to use
|
||||
- `do_picture_description` (bool): Enable image description generation
|
||||
- `picture_description_mode` (str): Mode for picture descriptions
|
||||
- `picture_description_local` (str): Local model for picture descriptions
|
||||
- `picture_description_api` (str): API endpoint for picture descriptions
|
||||
- `vlm_pipeline_model_api` (str): Vision-language model API configuration
|
||||
|
||||
- Example:
|
||||
```json
|
||||
{
|
||||
"do_ocr": true,
|
||||
"ocr_engine": "tesseract",
|
||||
"ocr_lang": "eng,fra,deu,spa",
|
||||
"force_ocr": false,
|
||||
"do_picture_description": true,
|
||||
"picture_description_mode": "api",
|
||||
"vlm_pipeline_model_api": "openai://gpt-4o"
|
||||
}
|
||||
```
|
||||
|
||||
- Type: `str`
|
||||
- Default: `eng,fra,deu,spa` (when using the default `tesseract` engine)
|
||||
- Description: Specifies the OCR language(s) to be used with the configured `DOCLING_OCR_ENGINE`.
|
||||
The format and available language codes depend on the selected OCR engine.
|
||||
- Persistence: This environment variable is a `PersistentConfig` variable.
|
||||
|
||||
:::info
|
||||
|
||||
**Migration from Individual Docling Variables**
|
||||
|
||||
If you were previously using individual `DOCLING_*` environment variables (such as `DOCLING_OCR_ENGINE`, `DOCLING_OCR_LANG`, etc.), these are now deprecated. You must migrate to using `DOCLING_PARAMS` as a single JSON configuration object.
|
||||
|
||||
**Example Migration:**
|
||||
```bash
|
||||
# Old configuration (deprecated)
|
||||
DOCLING_OCR_ENGINE=tesseract
|
||||
DOCLING_OCR_LANG=eng,fra
|
||||
DOCLING_DO_OCR=true
|
||||
|
||||
# New configuration (required)
|
||||
DOCLING_PARAMS='{"do_ocr": true, "ocr_engine": "tesseract", "ocr_lang": "eng,fra"}'
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
:::warning
|
||||
|
||||
When setting this environment variable in a `.env` file, ensure proper JSON formatting and escape quotes as needed:
|
||||
```
|
||||
DOCLING_PARAMS="{\"do_ocr\": true, \"ocr_engine\": \"tesseract\", \"ocr_lang\": \"eng,fra,deu,spa\"}"
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Retrieval Augmented Generation (RAG)
|
||||
|
||||
### Core Configuration
|
||||
@@ -2369,9 +2452,36 @@ When configuring `RAG_FILE_MAX_SIZE` and `RAG_FILE_MAX_COUNT`, ensure that the v
|
||||
|
||||
- Type: `int`
|
||||
- Default: `1`
|
||||
- Description: Controls how many text chunks are embedded in a single API request when using external embedding providers (Ollama, OpenAI, or Azure OpenAI). Higher values (20-100+; max 16000) process documents faster by sending more API requests, but may exceed API rate limits, while lower values (1-10) are more stable but slower. Default is 1 (safest option if you are API rate limit constrained, but slowest option). This setting only applies to external embedding engines, not the default SentenceTransformers engine.
|
||||
- Description: Controls how many text chunks are embedded in a single API request when using external embedding providers (Ollama, OpenAI, or Azure OpenAI). Higher values (20-100+; max 16000 (not recommended)) may process documents faster by sending less, but larger API requests. Some external APIs do not support batching or sending more than 1 chunk per request. In such casey you must leave this at `1`. Default is 1 (safest option if the API does not support batching / more than 1 chunk per request). This setting only applies to external embedding engines, not the default SentenceTransformers engine.
|
||||
- Persistence: This environment variable is a `PersistentConfig` variable.
|
||||
|
||||
:::info
|
||||
|
||||
Check if your API and embedding model supports batched processing.
|
||||
Only increase this variable's value if it does - otherwise you might run into unexpected issues.
|
||||
|
||||
:::
|
||||
|
||||
#### `ENABLE_ASYNC_EMBEDDING`
|
||||
|
||||
- Type: `bool`
|
||||
- Default: `true`
|
||||
- Description: Runs embedding tasks asynchronously (parallelized) for maximum performance. Only works for Ollama, OpenAI and Azure OpenAI, does not affect sentence transformer setups.
|
||||
- Persistence: This environment variable is a `PersistentConfig` variable.
|
||||
|
||||
:::tip
|
||||
|
||||
It may be needed to increase the value of `THREAD_POOL_SIZE` if many other users are simultaneously using your Open WebUI instance while having async embeddings turned on to prevent
|
||||
|
||||
:::warning
|
||||
|
||||
Enabling this will potentially send thousands of requests per minute.
|
||||
If you are embedding locally, ensure that you can handle this amount of requests, otherwise turn this off to return to sequential embedding (slower but will always work).
|
||||
If you are embedding externally via API, ensure your rate limits are high enough to handle parallel embedding.
|
||||
(Usually, OpenAI can handle thousands of embedding requests per minute, even on the lowest API tier).
|
||||
|
||||
:::
|
||||
|
||||
#### `RAG_EMBEDDING_CONTENT_PREFIX`
|
||||
|
||||
- Type: `str`
|
||||
|
||||
@@ -13,20 +13,18 @@ import { TopBanners } from "@site/src/components/TopBanners";
|
||||
:::tip
|
||||
**Here's the TL;DR:**
|
||||
|
||||
To keep Open WebUI thriving for the long term, we’ve introduced a **lightweight branding protection clause** that helps us sustain the project while ensuring **every user** continues to benefit from rapid innovation **without resorting to gated features or paywalled functionality**. Branding requirements **only apply to larger deployments (50+ users)**. Deployments with 50 or fewer users may fully rebrand if they choose.
|
||||
To keep Open WebUI thriving for the long term, we’ve introduced a **lightweight branding protection clause** with Open WebUI v0.6.6+ that helps us sustain the project while ensuring **every user** continues to benefit from rapid innovation **without resorting to gated features or paywalled functionality**. Branding requirements **only apply to larger deployments (50+ users)**. Deployments with 50 or fewer users may fully rebrand if they choose.
|
||||
|
||||
As a small, independent team building mission-critical AI tooling, we rely on fair attribution to **support ongoing development, security, and quality**, all without restricting real users, contributors, or businesses who use Open WebUI responsibly.
|
||||
|
||||
And for those who prefer a fully permissive path, **[anyone can still fork from v0.6.5 with zero restrictions and build from there however they choose](https://github.com/open-webui/open-webui/blob/main/LICENSE_HISTORY)**. It’s a simple, balanced step that protects the ecosystem, strengthens the project, and **ensures we can sustain our mission of empowering everyone**.
|
||||
:::
|
||||
|
||||
|
||||
|
||||
If you've been following Open WebUI’s journey, you know our mission has always been: empower everyone with cutting-edge AI, no strings attached. Open WebUI is an independent project, built and maintained by a small, dedicated core team. Over the last year, we’ve poured **countless hours, late nights, and real financial resources** into making this tool world-class, **and we trust our users enough to keep it free and open**.
|
||||
|
||||
But with Open WebUI’s rapid growth and success, we started seeing a pattern we couldn’t ignore: **bad actors taking our work, stripping the branding, selling it as their own, and giving nothing back.** That’s not open source, that’s exploitation. When organizations profit off our efforts, misrepresent our work, and box out the real community, it threatens the very spirit of what we’re trying to build.
|
||||
But with Open WebUI’s rapid growth, we began seeing a pattern that put real pressure on the project’s **long-term sustainability**: some groups were stripping out the branding, repackaging our work as their own, and monetizing it without any acknowledgment or participation. This wasn’t just about credit, it created confusion for end users, **obscured the project’s availability as a free software**, and made it harder for people to understand where the software came from. Worse, these same groups often came back to us for fixes, support, and updates, effectively turning our small team into **unpaid labor** for products they were profiting from, quietly shifting the burden of their commercial offerings. That dynamic ultimately drained time, focus, our limited bandwidth and resources away from the people we’re actually here to serve: **the real community**.
|
||||
|
||||
That’s why we’ve acted: **with Open WebUI v0.6.6+ (April 2025), our license remains permissive, but now adds a fair-use branding protection clause**. This update does **not** impact genuine users, contributors, or anyone who simply wants to use the software in good faith. If you’re a real contributor, a small team, or an organization adopting Open WebUI for internal use, **nothing changes for you**. This change **only affects those who intend to exploit the project’s goodwill**: stripping away its identity, falsely representing it, and never giving back.
|
||||
That’s why we’ve acted: **with Open WebUI v0.6.6+ (April 2025), our license remains permissive, but now adds a fair-use branding protection clause**. This update does **not** impact genuine users, contributors, or anyone who simply wants to use the software in good faith. If you’re a real contributor, a small team, or an organization adopting Open WebUI for internal use, **nothing changes for you**. This change **only affects those who intend to exploit the project’s goodwill**.
|
||||
|
||||
In plain terms:
|
||||
- **Open WebUI is still free and permissively licensed.**
|
||||
@@ -55,7 +53,7 @@ Open WebUI’s license now:
|
||||
- **You may NOT alter, remove, or obscure any “Open WebUI” branding** (name, logo, UI marks, etc.) in any deployment or distribution, except in the circumstances below.
|
||||
- Branding must remain clearly visible, unless:
|
||||
1. **You have 50 or fewer users** in a 30-day period;
|
||||
2. **You are a substantive contributor**, and have gotten written permission from us for an internal deployment;
|
||||
2. **You qualify as a substantive contributor [^1]**, meaning someone who has maintained at least a full year or more of consistent, non-trivial weekly contributions to the project, and have gotten written permission from us for an internal deployment;
|
||||
3. **You’ve secured an enterprise license** from us which explicitly allows branding changes.
|
||||
- **CLA required for new contributions** after v0.6.5 (v0.6.6+) under the updated license.
|
||||
|
||||
@@ -75,11 +73,13 @@ This is not legal advice, refer to the full [LICENSE](https://github.com/open-we
|
||||
|
||||
**Absolutely.** You can change, extend, and customize the code or the user interface for your organization’s needs, but you’re required to keep “Open WebUI” branding visible *unless*:
|
||||
- Your deployment is for **50 or fewer users in any 30-day window**; or
|
||||
- You’re a substantive project contributor **and** have received written permission to adjust branding for an internal deployment; or
|
||||
- You qualify as a substantive project contributor [^1] **and** have received written permission to adjust branding for an internal deployment; or
|
||||
- You’ve secured an **enterprise license** with us that explicitly allows branding changes.
|
||||
|
||||
If you remove or modify branding without meeting these criteria, that’s a material breach of the license.
|
||||
|
||||
[^1]: “Substantive contributor” refers to individuals who have demonstrated **long-term, high-quality, non-trivial weekly contributions for a minimum of a full year or more**, with further criteria determined by our internal policy. As external contributions often introduce more overhead than value, this status **applies only in exceptional cases and is evaluated individually**.
|
||||
|
||||
### 3. Aren’t these clauses contradictory? BSD-3 says you can’t use your name to promote forks, but also requires branding?!
|
||||
|
||||
**Good question!** Our branding requirement means you **mayn’t falsely promote** your fork as “endorsed by” or “officially part of” Open WebUI (BSD-3-Clause, section 3), but it *must* still acknowledge its origins for transparency.
|
||||
|
||||
@@ -17,7 +17,7 @@ Passionate about open-source AI? [Join our team →](https://careers.openwebui.c
|
||||
|
||||
:::
|
||||
|
||||
Our team is led by the dedicated creator and founder, [Tim J. Baek](https://github.com/tjbck). Although Tim is currently the only official full-time member of the core development team, we’re also supported by talented team members from our company who work hard behind the scenes to make this project great. In addition, we are incredibly fortunate to have a community of **[amazing contributors](https://github.com/open-webui/open-webui/graphs/contributors)** who find this project valuable and actively participate in its continued success.
|
||||
Our team is led by the dedicated creator and founder, [Tim J. Baek](https://github.com/tjbck). We’re supported by talented team members from our company who work hard behind the scenes to make this project great. In addition, we are incredibly fortunate to have a community of **[amazing contributors](https://github.com/open-webui/open-webui/graphs/contributors)** who find this project valuable and actively participate in its continued success.
|
||||
|
||||
### 💓 Our Contributors
|
||||
|
||||
@@ -38,7 +38,5 @@ Beyond our contributors, Open WebUI, Inc. has an incredible global team working
|
||||
|
||||
We greatly appreciate enthusiasm and thoughtful suggestions from our community. At the same time, **we're not looking for unsolicited governance recommendations or guidance on how to operate**—we know exactly how we want to run our project (just as, for example, you wouldn't tell OpenAI how to run theirs). Open WebUI maintains strong, opinionated leadership because that's precisely what we believe is necessary to build something truly great, fast-moving, and purposeful.
|
||||
|
||||
If our leadership and governance style align with your views, we're thrilled to have your continued support and contributions. However, if you fundamentally disagree with our direction, **one of the key benefits of our open-source license is the freedom to fork the project and implement your preferred approach.**
|
||||
|
||||
Thank you for respecting our perspective and for your continued support and contributions. We're excited to keep building with the community around the vision we've established together!
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ The `CORS_ALLOW_ORIGIN` setting is crucial for WebSocket functionality. If you s
|
||||
|
||||
### Reverse Proxy / SSL/TLS Configuration
|
||||
|
||||
For reverse proxy and TLS setups, check our [tutorials here](docs/tutorials/https).
|
||||
For reverse proxy and TLS setups, check our [tutorials here](/category/https).
|
||||
|
||||
### WebSocket Troubleshooting
|
||||
|
||||
|
||||
Reference in New Issue
Block a user