summaryrefslogtreecommitdiff
path: root/openwebui
diff options
context:
space:
mode:
Diffstat (limited to 'openwebui')
-rw-r--r--openwebui/.env.example1
-rw-r--r--openwebui/README.md35
-rw-r--r--openwebui/docker-compose.yml38
3 files changed, 74 insertions, 0 deletions
diff --git a/openwebui/.env.example b/openwebui/.env.example
new file mode 100644
index 0000000..7f95b8f
--- /dev/null
+++ b/openwebui/.env.example
@@ -0,0 +1 @@
+OPEN_TERMINAL_API_KEY=your_api_key_here
diff --git a/openwebui/README.md b/openwebui/README.md
new file mode 100644
index 0000000..dd8de37
--- /dev/null
+++ b/openwebui/README.md
@@ -0,0 +1,35 @@
+# Open WebUI
+
+Self-hosted web interface for interacting with LLMs (Ollama, OpenAI-compatible APIs, etc.).
+
+Includes:
+- **Open WebUI** — Main chat interface
+- **Open Terminal** — Browser-based terminal
+- **Apache Tika** — Document parsing for RAG
+
+## Setup
+
+1. Copy `.env.example` to `.env` and set your API key:
+ ```
+ cp .env.example .env
+ ```
+
+2. Start:
+ ```
+ docker compose up -d
+ ```
+
+## Access
+
+| Service | URL |
+|---------------|--------------------------|
+| Open WebUI | `http://<host>:3000` |
+| Open Terminal | `http://<host>:8001` |
+| Tika | `http://<host>:9998` |
+
+## What to Configure
+
+- **`.env`** — Set `OPEN_TERMINAL_API_KEY` to a secure random string.
+- **Ollama / LLM backend** — The `host.docker.internal` extra host is configured to reach a local Ollama instance. If your LLM backend runs elsewhere, update the host or add environment variables like `OPENAI_API_BASE_URL`.
+- **RAG settings** — `RAG_EMBEDDING_ENGINE=openai` uses OpenAI-compatible embeddings. Change if using a different engine.
+- **Persistent volumes** — `open-webui` and `open-terminal` are named Docker volumes. Data persists across container restarts.
diff --git a/openwebui/docker-compose.yml b/openwebui/docker-compose.yml
new file mode 100644
index 0000000..ff2832b
--- /dev/null
+++ b/openwebui/docker-compose.yml
@@ -0,0 +1,38 @@
+services:
+ openwebui:
+ image: ghcr.io/open-webui/open-webui:main
+ ports:
+ - "3000:8080"
+ volumes:
+ - open-webui:/app/backend/data
+ environment:
+ - ENABLE_KB_EXEC=true
+ - MODELS_CACHE_TTL=300
+ - ENABLE_REALTIME_CHAT_SAVE=False
+ - RAG_EMBEDDING_ENGINE=openai
+ extra_hosts:
+ - "host.docker.internal:host-gateway"
+ restart: unless-stopped
+
+ open-terminal:
+ image: ghcr.io/open-webui/open-terminal
+ container_name: open-terminal
+ ports:
+ - "8001:8000"
+ volumes:
+ - open-terminal:/home/user
+ environment:
+ - OPEN_TERMINAL_MULTI_USER=true
+ - OPEN_TERMINAL_API_KEY=${OPEN_TERMINAL_API_KEY}
+ restart: unless-stopped
+ tika:
+ image: apache/tika:latest-full
+ container_name: tika
+ ports:
+ - "9998:9998"
+ restart: unless-stopped
+
+
+volumes:
+ open-webui:
+ open-terminal: