Merge pull request #765 from open-webui/main

Sync
This commit is contained in:
Classic298
2025-10-15 07:41:34 +02:00
committed by GitHub
7 changed files with 64 additions and 36 deletions

View File

@@ -0,0 +1,6 @@
---
sidebar_position: 7
title: "📢 Channels"
---
Soon...

View File

@@ -46,7 +46,11 @@ Browser-based, multi-user deployments increase the surface area (CORS/CSRF, per-
## ❓ FAQ
**Do you support stdio or SSE transports?**
No. Open WebUI only supports **MCP via Streamable HTTP**.
Native MCP support in Open WebUI is **Streamable HTTP only**. This design choice reflects our architecture: Open WebUI is a **web-based, multi-tenant environment**, not a local desktop process.
Browsers operate within strict **sandboxed and event-driven HTTP constraints**, making long-lived stdio or SSE connections difficult to maintain securely across users and sessions.
If you need to bridge those other MCP transports, check out [**mcpo**](https://github.com/open-webui/mcpo) — an open-source proxy that translates **stdio or SSE-based MCP servers into OpenAPI-compatible endpoints**. It effectively lets you run traditional MCP tools inside Open WebUI without modifying their transport layer.
**Is MCP considered stable here?**
Supported and improving. The broader ecosystem is still evolving; expect occasional breaking changes.

View File

@@ -921,7 +921,9 @@ The value of `API_KEY_ALLOWED_ENDPOINTS` should be a comma-separated list of end
Setting `JWT_EXPIRES_IN` to `-1` disables JWT expiration, making issued tokens valid forever. **This is extremely dangerous in production** and exposes your system to severe security risks if tokens are leaked or compromised.
**Always set a reasonable expiration time (e.g., `3600s`, `1h`, etc.) in production to limit the lifespan of authentication tokens.** Never use `-1` in a production environment.
**Always set a reasonable expiration time in production environments (e.g., `3600s`, `1h`, `7d` etc.) to limit the lifespan of authentication tokens.**
**NEVER use `-1` in a production environment.**
If you have already deployed with `JWT_EXPIRES_IN=-1`, you can rotate or change your `WEBUI_SECRET_KEY` to immediately invalidate all existing tokens.

View File

@@ -36,7 +36,7 @@ Open WebUIs 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 contributor**, and have gotten written permission from us for an internal deployment;
2. **You are a substantive contributor**, and have gotten written permission from us for an internal deployment;
3. **Youve 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.
@@ -62,7 +62,7 @@ This is not legal advice—refer to the full [LICENSE](https://github.com/open-w
**Absolutely.** You can change, extend, and customize the code or the user interface for your organizations needs—but youre required to keep “Open WebUI” branding visible *unless*:
- Your deployment is for **50 or fewer users in any 30-day window**; or
- Youre a recognized project contributor **and** have received written permission to adjust branding for an internal deployment; or
- Youre a substantive project contributor **and** have received written permission to adjust branding for an internal deployment; or
- Youve secured an **enterprise license** with us that explicitly allows branding changes.
If you remove or modify branding without meeting these criteria, thats a material breach of the license.

View File

@@ -35,22 +35,30 @@ export const SidebarBanners = () => {
description: "The intelligent terminal for developers",
},
{
imgSrc: "/sponsors/banners/tailscale-banner.png",
mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
name: "Tailscale",
description: "Connect self-hosted AI to any device with Tailscale",
},
// {
// imgSrc: "/sponsors/banners/tailscale-banner.png",
// mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
// url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
// name: "Tailscale",
// description: "Connect self-hosted AI to any device with Tailscale",
// },
// {
// imgSrc: "/sponsors/banners/tailscale-banner.png",
// mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
// url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
// name: "Tailscale",
// description: "Connect self-hosted AI to any device with Tailscale",
// },
{
imgSrc: "/sponsors/banners/tailscale-banner.png",
mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
name: "Tailscale",
description: "Connect self-hosted AI to any device with Tailscale",
imgSrc: "/sponsors/banners/placeholder.png",
mobileImgSrc: "/sponsors/banners/placeholder-mobile.png",
url: "https://forms.gle/92mvG3ESYj47zzRL9",
name: "Open WebUI",
description:
"The top banner spot is reserved for Emerald+ Enterprise sponsors",
},
{
imgSrc: "/sponsors/banners/placeholder.png",
mobileImgSrc: "/sponsors/banners/placeholder-mobile.png",

View File

@@ -15,12 +15,12 @@ export const SponsorList = () => {
name: "Warp",
description: "The intelligent terminal for developers",
},
{
imgSrc: "/sponsors/logos/tailscale.png",
url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
name: "Tailscale",
description: "Connect self-hosted AI to any device with Tailscale",
},
// {
// imgSrc: "/sponsors/logos/tailscale.png",
// url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
// name: "Tailscale",
// description: "Connect self-hosted AI to any device with Tailscale",
// },
];
const sponsors = [

View File

@@ -40,22 +40,30 @@ export const TopBanners = ({
description: "The intelligent terminal for developers",
},
{
imgSrc: "/sponsors/banners/tailscale-banner.png",
mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
name: "Tailscale",
description: "Connect self-hosted AI to any device with Tailscale",
},
// {
// imgSrc: "/sponsors/banners/tailscale-banner.png",
// mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
// url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
// name: "Tailscale",
// description: "Connect self-hosted AI to any device with Tailscale",
// },
// {
// imgSrc: "/sponsors/banners/tailscale-banner.png",
// mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
// url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
// name: "Tailscale",
// description: "Connect self-hosted AI to any device with Tailscale",
// },
{
imgSrc: "/sponsors/banners/tailscale-banner.png",
mobileImgSrc: "/sponsors/banners/tailscale-banner-mobile.png",
url: "https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs",
name: "Tailscale",
description: "Connect self-hosted AI to any device with Tailscale",
imgSrc: "/sponsors/banners/placeholder.png",
mobileImgSrc: "/sponsors/banners/placeholder-mobile.png",
url: "https://forms.gle/92mvG3ESYj47zzRL9",
name: "Open WebUI",
description:
"The top banner spot is reserved for Emerald+ Enterprise sponsors",
},
{
imgSrc: "/sponsors/banners/placeholder.png",
mobileImgSrc: "/sponsors/banners/placeholder-mobile.png",