mirror of
https://github.com/tiennm99/composes.git
synced 2026-10-14 18:18:28 +00:00
feat(open-webui): add Open WebUI chat interface
This commit is contained in:
1 parent
40a234e2ff
commit
8bd14da5ca
4 files changed
+85
No files matched your search
@@ -83,6 +83,7 @@ Each links to its own README for variables, ports, and storage.
|
|||||||
| [gitea-mirror](gitea-mirror/README.md) | Gitea + PostgreSQL + gitea-mirror, mirroring GitHub repos |
|
| [gitea-mirror](gitea-mirror/README.md) | Gitea + PostgreSQL + gitea-mirror, mirroring GitHub repos |
|
||||||
| [goclaw](goclaw/README.md) | Multi-tenant AI agent gateway, with pgvector PostgreSQL |
|
| [goclaw](goclaw/README.md) | Multi-tenant AI agent gateway, with pgvector PostgreSQL |
|
||||||
| [litellm](litellm/README.md) | LiteLLM proxy in front of many LLM providers, with PostgreSQL and Redis |
|
| [litellm](litellm/README.md) | LiteLLM proxy in front of many LLM providers, with PostgreSQL and Redis |
|
||||||
|
| [open-webui](open-webui/README.md) | Open WebUI chat interface for OpenAI-compatible and Ollama providers |
|
||||||
| [opencode](opencode/README.md) | opencode coding agent, served as a browser UI |
|
| [opencode](opencode/README.md) | opencode coding agent, served as a browser UI |
|
||||||
| [paseo](paseo/README.md) | Paseo coding-agent daemon and web UI |
|
| [paseo](paseo/README.md) | Paseo coding-agent daemon and web UI |
|
||||||
| [traffmonetizer](traffmonetizer/README.md) | TraffMonetizer bandwidth-sharing client |
|
| [traffmonetizer](traffmonetizer/README.md) | TraffMonetizer bandwidth-sharing client |
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Copy to .env and fill in. Never commit .env.
|
||||||
|
#
|
||||||
|
# cp .env.example .env
|
||||||
|
|
||||||
|
# Signs login sessions and encrypts stored secrets. Keep it stable.
|
||||||
|
# Generate one with: openssl rand -hex 32
|
||||||
|
WEBUI_SECRET_KEY=
|
||||||
|
|
||||||
|
# Let every user see every model, without per-model access grants.
|
||||||
|
BYPASS_MODEL_ACCESS_CONTROL=true
|
||||||
|
|
||||||
|
# Connections seeded on first start; afterwards they are managed in the admin UI.
|
||||||
|
# OPENAI_API_BASE_URL=
|
||||||
|
# OPENAI_API_KEY=
|
||||||
|
# OLLAMA_BASE_URL=
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
# open-webui
|
||||||
|
|
||||||
|
[Open WebUI](https://docs.openwebui.com): a chat UI for OpenAI-compatible and
|
||||||
|
Ollama model providers, with users, chat history, documents and RAG.
|
||||||
|
|
||||||
|
One container, serving on port `8080`. It stores everything in SQLite and a
|
||||||
|
local vector database under `/app/backend/data`.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
1. Set `WEBUI_SECRET_KEY`.
|
||||||
|
2. Map the domain to port `8080` and deploy.
|
||||||
|
3. Open the domain. The first account to sign up becomes the admin.
|
||||||
|
4. Add model connections in **Admin Settings → Connections**.
|
||||||
|
|
||||||
|
Health check: `GET /`, also the compose healthcheck.
|
||||||
|
|
||||||
|
## Environment
|
||||||
|
|
||||||
|
| Variable | Default | Purpose |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `WEBUI_SECRET_KEY` | — | Signs login tokens and encrypts stored secrets |
|
||||||
|
| `BYPASS_MODEL_ACCESS_CONTROL` | `true` | Every user sees every model |
|
||||||
|
| `OPENAI_API_BASE_URL` / `OPENAI_API_KEY` | optional | OpenAI-compatible connection seeded on first start |
|
||||||
|
| `OLLAMA_BASE_URL` | optional | Ollama connection seeded on first start |
|
||||||
|
|
||||||
|
`WEBUI_SECRET_KEY` is required. Without it, `start.sh` generates a key into
|
||||||
|
`/app/backend/.webui_secret_key`, outside the data volume, so every
|
||||||
|
recreated container gets a new key: everyone is logged out, and anything
|
||||||
|
encrypted with the old key can no longer be read.
|
||||||
|
|
||||||
|
`BYPASS_MODEL_ACCESS_CONTROL` is on because this is a single-person instance:
|
||||||
|
models do not need to be shared with users one by one.
|
||||||
|
|
||||||
|
The connection variables are optional because Open WebUI keeps its
|
||||||
|
connections in the database. They seed it only on first start, so once
|
||||||
|
connections exist the admin UI is where they change.
|
||||||
|
|
||||||
|
## Storage
|
||||||
|
|
||||||
|
| Volume | Mount | Holds |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `open-webui` | `/app/backend/data` | `webui.db`, uploads, the vector database, and model cache |
|
||||||
|
|
||||||
|
## Image
|
||||||
|
|
||||||
|
`ghcr.io/open-webui/open-webui:latest` is the latest release. Upstream
|
||||||
|
publishes no major tag; `main` is built from every commit on the development
|
||||||
|
branch, so `latest` is the stable moving tag.
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
services:
|
||||||
|
open-webui:
|
||||||
|
image: ghcr.io/open-webui/open-webui:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY:?required}
|
||||||
|
- BYPASS_MODEL_ACCESS_CONTROL=${BYPASS_MODEL_ACCESS_CONTROL:-true}
|
||||||
|
# - OPENAI_API_BASE_URL=${OPENAI_API_BASE_URL:-}
|
||||||
|
# - OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
||||||
|
# - OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-}
|
||||||
|
volumes:
|
||||||
|
- open-webui:/app/backend/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://127.0.0.1:8080"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 30s
|
||||||
|
retries: 10
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
open-webui:
|
||||||
Reference in new issue
Block a user