From 1d043702ef136e8f2e516c5304a57be5718f1f6f Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Thu, 9 Jul 2026 21:49:56 -0700 Subject: Initial commit: docker compose files for all self-hosted services 12 services: adguard, ampache, azuracast, flood, glance, glances, grafana, immich, invidious, jellyfin, openwebui, watchtower Each service includes a docker-compose.yml, README.md with setup instructions, and .env.example where applicable. --- openwebui/.env.example | 1 + openwebui/README.md | 35 +++++++++++++++++++++++++++++++++++ openwebui/docker-compose.yml | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 openwebui/.env.example create mode 100644 openwebui/README.md create mode 100644 openwebui/docker-compose.yml (limited to 'openwebui') 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://:3000` | +| Open Terminal | `http://:8001` | +| Tika | `http://: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: -- cgit v1.3-2-g0d8e