Per ajnart's review (and CodeRabbit withdrawing its own MCP comment on the
predecessor PR), the Open WebUI chat isn't a meaningful MCP surface:
- remove the .meta({ mcp }) metadata from every openWebUi procedure
Remaining CodeRabbit comments from the predecessor PR that weren't carried over:
- processWeb: constrain the URL to http(s) and reject loopback/metadata hosts
(private LAN ranges stay allowed for self-hosters); it is also creator-gated
- uploadFile/transcribe: bound the base64 payload and validate filename/type
- docs: align the example URL with the integration default port (8080)
- new chat: clear the composer draft so it doesn't leak into the fresh chat
- web ingestion: keep the typed URL when ingestion fails
- persistence: fall back to the default title for image-only opening turns, and
don't persist a partial reply from a failed turn as finished history
- multimodal round-trip: make the native chat/history contracts accept the same
text-or-parts content union as completions, and flatten (not drop) non-text
nodes when rebuilding transcripts so attachment-backed chats aren't lost.
Image data URLs are still kept out of persisted history by design.
40 lines
1.3 KiB
Plaintext
40 lines
1.3 KiB
Plaintext
---
|
|
title: "Open WebUI"
|
|
description: "Self-hosted AI chat interface for local and remote LLM providers"
|
|
hide_title: true
|
|
---
|
|
|
|
import { IntegrationHeader } from "@site/src/components/integrations/header";
|
|
import { IntegrationCapabilites } from "@site/src/components/integrations/widgets";
|
|
import { AddingIntegration } from "@site/src/components/integrations/adding";
|
|
import { IntegrationSecrets } from "@site/src/components/integrations/secrets";
|
|
import { openWebUiIntegration } from ".";
|
|
import { openWebUiWidget } from "../../widgets/open-webui";
|
|
|
|
<IntegrationHeader integration={openWebUiIntegration} categories={["AI", "Chat"]} />
|
|
|
|
[Open WebUI](https://openwebui.com/) is a self-hosted AI chat interface that aggregates multiple LLM providers (Ollama, OpenAI-compatible APIs, and more) behind a single API. Homarr connects to it so you can chat with your models directly from your dashboard.
|
|
|
|
### Widgets & Capabilities
|
|
|
|
<IntegrationCapabilites items={[{ widget: openWebUiWidget }]} />
|
|
|
|
### Adding the integration
|
|
|
|
<AddingIntegration />
|
|
|
|
:::info URL configuration
|
|
Use the root URL of your Open WebUI instance, for example `http://localhost:8080` (Open WebUI's default port). Homarr calls the Open WebUI API under `/api` automatically.
|
|
:::
|
|
|
|
### Secrets
|
|
|
|
<IntegrationSecrets
|
|
secrets={[
|
|
{
|
|
credentials: ["apiKey"],
|
|
steps: [],
|
|
},
|
|
]}
|
|
/>
|