Skip to main content

Open WebUI

Chat interface for LLMs, talking straight to the stack's chat model and to WhisperX for speech-to-text.

Enable​

Not part of Core. The chat model already answers by voice (Home Assistant), from code-server's terminal (pi, opencode), and from decree routines. Turn this on when you want a chat window in a browser tab:

EXIST_IS_AI_OPEN_WEBUI=true

Then ./existential.sh && docker compose up -d from the repo root. Admin credentials are generated into ai/open-webui/.env (OPEN_WEBUI_ADMIN_EMAIL / OPEN_WEBUI_ADMIN_PASSWORD).

ToolUse for
Open WebUIDay-to-day conversations
pi in code-server's terminalThe same model with tools: the workspace, search and the web
decree routinesWork with nobody present — agent_task files the answer into workspace/ai/

Backend Wiring​

Container env varValue
OPENAI_API_BASE_URLSthe chat role's endpoint, EXIST_MODEL_URL_CHAT (else EXIST_MODEL_URL), resolved at render
OPENAI_API_KEYSnone — the model server takes no key
AUDIO_STT_OPENAI_API_BASE_URLhttp://whisperx:8000/v1

A rendered file is never re-rendered, so moving the chat role later means editing ai/open-webui/docker-compose.yml too (or ./existential.sh reset).

Admin Account​

Set on first boot via ai/open-webui/.env:

OPEN_WEBUI_ADMIN_NAME
OPEN_WEBUI_ADMIN_EMAIL
OPEN_WEBUI_ADMIN_PASSWORD

These default to EXIST_USERNAME / EXIST_EMAIL / EXIST_PASSWORD from the root .env.shared.

Debugging​

docker compose logs open-webui