Skip to content

Commit e98bfa0

Browse files
committed
Merge branch 'dev'
# Conflicts: # docs/getting-started/advanced-topics/scaling.md # docs/reference/env-configuration.mdx # docs/troubleshooting/multi-replica.mdx # docs/troubleshooting/performance.md
2 parents d6daabf + a4e16df commit e98bfa0

148 files changed

Lines changed: 2371 additions & 673 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/ecosystem/computer/automate/open-webui.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Computer's gateway exposes each workspace as an OpenAI-compatible model, so you
1010
## Connect it
1111

1212
1. In Computer, open **Settings → Admin → Gateway** and create a gateway API key. Copy it immediately; it's shown once and stored hashed.
13-
2. In Open WebUI, go to **Admin Settings → Connections** and add an **OpenAI API** connection:
13+
2. In Open WebUI, go to **Settings → Admin → Connections** and add an **OpenAI API** connection:
1414
- Base URL: `http(s)://<computer-host>/v1`
1515
- API key: the `sk-cptr-...` key from step 1
1616
3. Add these custom headers to the connection so Computer can track chat lineage and filter Open WebUI's utility requests:

docs/ecosystem/computer/troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ The setup token is printed once when `cptr run` starts, and the setup URL only w
3333

3434
## I forgot my password / I'm locked out
3535

36-
If another admin exists, they can reset your password in **Settings → Admin Users**. Two things that trip people up first:
36+
If another admin exists, they can reset your password in **Admin Panel > Users**. Two things that trip people up first:
3737

3838
- Login is rate-limited to **5 attempts per minute per IP**. If you're getting `429`, wait a minute and try again.
3939
- Rotating `[server] secret` in `config.toml` signs out every session; it does **not** reset any password.

docs/ecosystem/computer/use-cases/open-webui-hands.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Open WebUI is where you already chat: your models, your prompts, your history. B
1313

1414
1. **Mint the key.** In Computer, go to **Settings → Admin → Gateway** and create an API key. Copy it now; it's shown once and stored hashed.
1515

16-
2. **Add the connection in Open WebUI.** Admin Settings → Connections → add an OpenAI API connection:
16+
2. **Add the connection in Open WebUI.** Settings → Admin → Connections → add an OpenAI API connection:
1717

1818
- **Base URL:** `http://<computer-host>:8000/v1`
1919
- **API Key:** the `sk-cptr-...` key

docs/ecosystem/knowledge-base-sync/daemon.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ It serves a spec at `GET /openapi.json` exposing exactly three actions (the dash
223223
To connect it:
224224

225225
1. **Secure it first.** Set `OIKB_API_KEY` so `/sync` and `/history` are not open to anyone who can reach the daemon.
226-
2. Add the daemon's URL (for example `http://oikb:8080`) as a tool server: **Admin Settings → Integrations** for an instance-wide connection, or **Settings → Integrations** for a personal one. Supply the same `OIKB_API_KEY` as the connection's API key.
226+
2. Add the daemon's URL (for example `http://oikb:8080`) as a tool server: **Settings → Admin → Integrations** for an instance-wide connection, or **Settings → Integrations** for a personal one. Supply the same `OIKB_API_KEY` as the connection's API key.
227227

228228
This is a standard OpenAPI tool-server connection, the same mechanism described on the [OpenAPI / MCP tool servers](/features/extensibility/mcp) page; oikb just happens to be the thing on the other end.
229229

docs/enterprise/deployment/container-service.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Avoid the `:main` tag in production. It tracks the latest development build and
6565
| **Storage** | Use object storage (S3, GCS, Azure Blob) or a shared filesystem (such as EFS). Container-local storage is ephemeral and not shared across tasks. |
6666
| **Tika sidecar** | Run Tika as a sidecar container in the same task definition, or as a separate service. Sidecar pattern keeps extraction traffic local. |
6767
| **Secrets management** | Use your platform's secrets manager (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) for `DATABASE_URL`, `REDIS_URL`, and `WEBUI_SECRET_KEY`. |
68-
| **Updates** | Perform a rolling deployment with a single task first. This task runs migrations (`ENABLE_DB_MIGRATIONS=true`). Once healthy, scale the remaining tasks with `ENABLE_DB_MIGRATIONS=false`. |
68+
| **Updates** | Scale the service down to a single task, deploy the new image on it (`ENABLE_DB_MIGRATIONS=true`), wait for it to become healthy, then scale the remaining tasks back up (`ENABLE_DB_MIGRATIONS=false`). Rolling updates are not supported across a release that changes the schema, so old and new tasks must never serve traffic at the same time. See [Updates and Migrations](/troubleshooting/multi-replica#updates-and-migrations). |
6969

7070
## Anti-Patterns to Avoid
7171

docs/enterprise/deployment/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ ENABLE_DB_MIGRATIONS=false
7171

7272
:::warning Database Migrations
7373
Set `ENABLE_DB_MIGRATIONS=false` on **all instances except one**. During updates, scale down to a single instance, allow migrations to complete, then scale back up. Concurrent migrations can corrupt your database.
74+
75+
Rolling updates are not supported across a release that changes the schema, whatever rolling-deployment machinery your platform offers: every instance has to move to the new version at once, and old and new instances must never serve traffic against the same database at the same time. Back the database up before you start. See [Updates and Migrations](/troubleshooting/multi-replica#updates-and-migrations).
7476
:::
7577

7678
For the complete step-by-step scaling walkthrough, see [Scaling Open WebUI](/getting-started/advanced-topics/scaling). For the full environment variable reference, see [Environment Variable Configuration](/reference/env-configuration).

docs/faq.mdx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ For more details on enterprise solutions and branding customizations, [click her
4848

4949
Open WebUI intentionally does **not** ship a built-in context trimmer. Every model has a different tokenizer and a different context window, and every deployment wants a different truncation policy (by tokens, by turns, by message count, file-attachments-first, summarize-and-replace, per-model budgets, and so on). There is no single policy that is correct for every user, so we expose the hook instead of choosing one for you.
5050

51-
Context management is done with [filter Functions](/features/extensibility/plugin/functions/filter): `inlet()` receives the full `body["messages"]` on every request and can modify it freely (drop old turns, enforce a turn limit, summarize, trim attachments, etc.). Many published context filters are already available one-click on [openwebui.com](https://openwebui.com/): browse, install, and tune the valves. If none fits, copy the closest one into **Admin Panel Functions** and edit it.
51+
Context management is done with [filter Functions](/features/extensibility/plugin/functions/filter): `inlet()` receives the full `body["messages"]` on every request and can modify it freely (drop old turns, enforce a turn limit, summarize, trim attachments, etc.). Many published context filters are already available one-click on [openwebui.com](https://openwebui.com/): browse, install, and tune the valves. If none fits, copy the closest one into **Admin Panel > Functions** and edit it.
5252

5353
For the full write-up with examples, see [Context Window / Prompt Too Long](/troubleshooting/context-window).
5454

@@ -214,7 +214,7 @@ Models frequently:
214214

215215
**To verify which model you're actually using:**
216216
1. Check the model selector in the Open WebUI interface
217-
2. Look at the **Settings > Admin > AI > Connections** to confirm your API endpoints
217+
2. Look at the **Settings > Admin > Connections** to confirm your API endpoints
218218
3. Check your provider's dashboard/logs for the actual API calls being made
219219

220220
Asking the model itself is **not** a valid way to diagnose routing issues. If you suspect a configuration problem, check your connection settings and API keys instead.
@@ -240,9 +240,10 @@ This is also why the same model accessed through different interfaces might give
240240
By default, these tasks use the **same model** you're chatting with. If you're using an expensive API model (like GPT-5.6 Sol or Claude Opus 5), this can significantly increase your costs.
241241

242242
**To reduce API costs:**
243-
1. Go to **Settings > Admin > Experience > Interface** (for title/tag generation settings)
244-
2. Configure a **Task Model** under **Settings > Admin > Experience > Interface > Tasks** to use a smaller, cheaper model (like GPT-5.6 Luna) or a local model for background tasks
243+
1. Go to **Settings > Admin > Interface** (for title/tag generation settings)
244+
2. Configure a **Task Model** under **Settings > Admin > Interface > Tasks** to use a smaller, cheaper model (like GPT-5.6 Luna) or a local model for background tasks
245245
3. Disable features you don't need (auto-title, auto-tags, etc.)
246+
4. Cap what those requests can spend by setting `max_tokens` under **Task Model Parameters** in the same **Tasks** section. Tag, follow-up and search query generation otherwise send no output limit at all. See [Task Models](/features/administration/task-models#task-model-parameters)
246247

247248
:::tip Cost-Saving Recommendation
248249
Set your Task Model to a fast, inexpensive model (or a local model via Ollama) while keeping your primary chat model as a more capable one. This gives you the best of both worlds: smart responses for your conversations, cheap/free processing for background tasks.

docs/features/administration/analytics/index.mdx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ The dashboard described here is the instance-wide admin view. Separately, **ever
4848

4949
It is scoped strictly to the signed-in user's own data:
5050

51-
- Token totals (input and output), both lifetime and for the selected period
51+
- Token totals (input and output), both lifetime and for the period covered
5252
- Message and chat counts, and the number of days they were active
5353
- An activity heatmap, viewable by day, by week, or as a cumulative total
5454
- Current and longest activity streaks
5555
- Their most-used models and tools
5656

57-
The period is selectable, and the data is bucketed in the user's own timezone. Because it only ever reports the requesting user's own activity, it exposes nothing about anyone else's.
57+
The period covered is the past two years (the last 730 days), the same window for every account regardless of when it was created, and the data is bucketed in the user's own timezone. Because it only ever reports the requesting user's own activity, it exposes nothing about anyone else's.
5858

5959
## Dashboard Features
6060

@@ -67,8 +67,11 @@ At the top right of the Analytics dashboard, you can filter all data by time per
6767
- **Last 30 days** - Monthly snapshot
6868
- **Last 90 days** - Quarterly trends
6969
- **All time** - Complete historical data
70+
- **Custom range** - A start and an end date you choose
7071

71-
Your selected time period is **automatically saved** and persists across browser sessions.
72+
Choosing **Custom range** puts two date fields next to the period dropdown. Nothing is queried until both are filled in, so while you are still picking, the dashboard sits idle instead of showing a spinner, and it loads as soon as the second date is set. The end date is inclusive, so it covers the whole of that day.
73+
74+
Your selected time period is **automatically saved** and persists across browser sessions, the custom dates included. If you leave Analytics on **Custom range** with the dates incomplete and come back to it later, the dashboard shows empty figures until you fill the range in, rather than loading indefinitely.
7275

7376
### Group Filtering
7477

@@ -213,6 +216,12 @@ Open WebUI automatically captures token usage from model responses and stores it
213216

214217
Token data is normalized across different model providers (OpenAI, Ollama, llama.cpp, etc.) to provide consistent metrics regardless of which backend you're using.
215218

219+
The figures are the ones the provider reports, and most OpenAI-compatible providers report nothing on a streamed reply unless they are asked. Asking is what the **Usage** capability in **Workspace > Models > Edit** does, so a model without it can show no tokens at all. See [Capabilities and bindings](/features/workspace/models#capabilities-and-bindings).
220+
221+
:::info Scheduled and delegated runs are counted too
222+
The request for token counts is added server-side, so a model with **Usage** enabled reports its tokens in every chat it runs, including the ones Open WebUI starts on a user's behalf through [automations](/features/chat-conversations/chat-features/automations), [timers](/features/chat-conversations/chat-features/timers), [sub-agents](/features/chat-conversations/chat-features/subagents) and [channels](/features/channels). Those runs are part of the same totals as the chats people type in.
223+
:::
224+
216225
### Token Usage Metrics
217226

218227
The **Token Usage** section (accessible via the Tokens endpoint or dashboard) provides:
@@ -344,7 +353,7 @@ GET /api/v1/analytics/models/{model_id}/overview # Get feedback history and tags
344353
```
345354
GET /api/v1/users/usage
346355
```
347-
Accepts either `days` (7-732) or an explicit `start_date` / `end_date` range, and buckets results in the requesting user's timezone. This one is not admin-gated, because it reports nothing beyond the caller's own activity.
356+
Accepts either `days` (7-732) or an explicit `start_date` / `end_date` range, and buckets results in the requesting user's timezone. Called with none of them, as the **Settings > Usage** page does, it returns the last 730 days ending now. This one is not admin-gated, because it reports nothing beyond the caller's own activity.
348357

349358
**Common Query Parameters:**
350359

docs/features/administration/evaluation/index.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,17 @@ Need more depth? You can even replicate a [**Chatbot Arena**](https://lmarena.ai
6666

6767
![Chatbot Arena Example](/images/evaluation/arena-many.png)
6868

69+
#### Configuring an Arena Model
70+
71+
Arena models live in **Settings > Admin > Evaluations**. Switch **Arena Models** on and a **Models** section appears listing the arena models you have created. Until you add one, a single default arena model is used and it draws from every model on the instance.
72+
73+
Use the **+** button to add an arena model, or the gear icon on an existing row to edit it. Alongside the name, ID, description and access control, each arena model carries its own pool of models:
74+
75+
- Pick models one at a time from the **Select a model** dropdown and click **+**. Leave the list empty to draw from every model.
76+
- The **Include** / **Exclude** button above the list flips whether the models you listed are the pool or are the ones kept out of it.
77+
78+
A model can sit in the list only once. The dropdown offers only models that are not already listed, so there is nothing left to pick twice. That matters in **Include** mode, where every message draws one model from the list at random and an ID stored twice is drawn twice as often. Opening an arena model whose stored list still contains duplicates collapses them, and saving writes the cleaned list back.
79+
6980
### **2. Normal Interaction**
7081

7182
No need to switch to “arena mode” if you don't want to. You can use Open WebUI normally and rate the AI model responses as you would in everyday operations. Just thumbs up/down the model responses, whenever you feel like it. However, **if you want your feedback to be used for ranking on the leaderboard**, you'll need to **swap out the model and interact with a different one**. This ensures there's a **sibling response** to compare it with. Only comparisons between two different models will influence rankings.

docs/features/administration/index.mdx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,27 @@ Open WebUI gives administrators a full operational toolkit. Track which models y
2727

2828
| | |
2929
| :--- | :--- |
30+
| 🎛️ **[Task Models](./task-models)** | The model and parameters behind titles, tags, follow-ups, autocomplete, search queries and compaction summaries |
3031
| 📊 **[Analytics](./analytics)** | Usage dashboards with message volume, token consumption, model breakdowns, and per-user activity |
3132
| 🏆 **[Evaluation](./evaluation)** | Model arena, blind A/B testing, ELO-based leaderboards, and chat snapshots for fine-tuning |
3233
| 📢 **[Banners](./banners)** | Customizable system-wide announcements with dismissible notifications |
34+
| 🎚️ **[Default Interface Settings](./interface-defaults)** | Instance-wide starting values for the options on everyone's Settings > Interface page |
3335
| 🔔 **[Webhooks](./webhooks)** | Automated notifications for user sign-ups, chat completions, and external service integration |
3436

3537
---
3638

3739
![Admin settings, General](/images/admin/admin-general.png)
3840

41+
## Task Models
42+
43+
Chat titles, tags, follow-up suggestions, autocomplete, search query rewriting and context compaction summaries all run as separate model calls in the background. Out of the box they run on whatever model the user is chatting with, which is why a flagship model can quietly write a lot of three-word titles.
44+
45+
**Use it for:** moving that work onto a small, fast model, capping what those requests are allowed to spend, and switching off the ones your instance does not want.
46+
47+
[**Learn about Task Models →**](./task-models)
48+
49+
---
50+
3951
## Analytics
4052

4153
Get a bird's-eye view of how your instance is being used. The analytics dashboard shows message volume, token consumption, model popularity, and user activity, filterable by time period and user group.
@@ -73,6 +85,16 @@ Push high-visibility messages to every logged-in user. Use banners for maintenan
7385

7486
---
7587

88+
## Default Interface Settings
89+
90+
Choose what everyone's **Settings > Interface** page starts on, instead of leaving each account on the stock values. Set it in the Admin Panel or with the `DEFAULT_INTERFACE_SETTINGS` environment variable for GitOps workflows.
91+
92+
**Use it for:** giving a team a consistent look on day one, turning a distracting option off by default, or pushing a house style that people can still adjust for themselves. Untouched options keep following your defaults, so a later change reaches everyone who has not overridden it.
93+
94+
[**Learn about Default Interface Settings →**](./interface-defaults)
95+
96+
---
97+
7698
## Webhooks
7799

78100
Three types of webhook integrations keep your external services in sync:

0 commit comments

Comments
 (0)