Initial skills documentation — 25 categories, all SKILL.md + references + scripts
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
# Open WebUI ConfigVar Cheat Sheet
|
||||
|
||||
Open WebUI persists connection settings in `webui.db` → `config` table as `ConfigVar` values. After first launch, env vars are **ignored** — the DB is authoritative. Changing `-e OPENAI_API_BASE_URL=...` and restarting does nothing.
|
||||
|
||||
## Config Table Schema
|
||||
|
||||
The `config` table is key-value with JSON values:
|
||||
```sql
|
||||
SELECT key, value FROM config WHERE key LIKE '%ollama%' OR key LIKE '%openai%';
|
||||
```
|
||||
|
||||
## Connection Keys (as of Jul 2026)
|
||||
|
||||
### Ollama Connection
|
||||
| Key | Type | Example |
|
||||
|-----|------|---------|
|
||||
| `ollama.enable` | bool | `true` / `false` |
|
||||
| `ollama.base_urls` | JSON array | `["http://ollama:11434"]` |
|
||||
| `ollama.api_configs` | JSON object | `{"0": {"enable": true, "tags": [], "prefix_id": "", "model_ids": [], "connection_type": "local", "auth_type": "bearer", "key": ""}}` |
|
||||
|
||||
### OpenAI Connection (used for admin-ai / LiteLLM)
|
||||
| Key | Type | Example |
|
||||
|-----|------|---------|
|
||||
| `openai.enable` | bool | `true` / `false` |
|
||||
| `openai.api_base_urls` | JSON array | `["https://admin-ai.itpropartner.com/v1"]` |
|
||||
| `openai.api_keys` | JSON array | `["sk-lg_..."]` |
|
||||
| `openai.api_configs` | JSON object | `{"0": {"enable": true, "tags": [], "prefix_id": "", "model_ids": [], "connection_type": "external", "auth_type": "bearer"}}` |
|
||||
|
||||
### RAG / Embeddings
|
||||
| Key | Type | Example |
|
||||
|-----|------|---------|
|
||||
| `rag.ollama.base_url` | string | `"http://host.docker.internal:11434"` |
|
||||
| `rag.ollama.api_key` | string | `""` |
|
||||
| `rag.openai.api_base_url` | string | `"http://litellm:4000/v1"` |
|
||||
| `rag.openai.api_key` | string | `"sk-..."` |
|
||||
|
||||
### Audio (TTS/STT)
|
||||
| Key | Type | Example |
|
||||
|-----|------|---------|
|
||||
| `audio.tts.openai.api_base_url` | string | `"http://litellm:4000/v1"` |
|
||||
| `audio.tts.openai.api_key` | string | `"sk-..."` |
|
||||
| `audio.stt.openai.api_base_url` | string | `"http://litellm:4000/v1"` |
|
||||
| `audio.stt.openai.api_key` | string | `"sk-..."` |
|
||||
|
||||
### Image Generation
|
||||
| Key | Type | Example |
|
||||
|-----|------|---------|
|
||||
| `image_generation.openai.api_base_url` | string | `"http://127.0.0.0:4000/v1"` |
|
||||
| `image_generation.openai.api_key` | string | `"sk-..."` |
|
||||
|
||||
## Common Operations
|
||||
|
||||
### Disable Ollama (stop pointing to Ollama)
|
||||
```bash
|
||||
sqlite3 /var/lib/docker/volumes/openwebui_data/_data/webui.db \
|
||||
"UPDATE config SET value = 'false' WHERE key = 'ollama.enable';"
|
||||
sqlite3 /var/lib/docker/volumes/openwebui_data/_data/webui.db \
|
||||
"UPDATE config SET value = json_set(value, '\$.\"0\".enable', json('false')) WHERE key = 'ollama.api_configs';"
|
||||
docker restart openwebui
|
||||
```
|
||||
|
||||
### Change OpenAI base URL (switch admin-ai endpoint)
|
||||
```bash
|
||||
sqlite3 /var/lib/docker/volumes/openwebui_data/_data/webui.db \
|
||||
"UPDATE config SET value = json_set(value, '\$[0]', 'https://new-url/v1') WHERE key = 'openai.api_base_urls';"
|
||||
docker restart openwebui
|
||||
```
|
||||
|
||||
### Verify changes took effect
|
||||
```bash
|
||||
sqlite3 /var/lib/docker/volumes/openwebui_data/_data/webui.db \
|
||||
"SELECT key, value FROM config WHERE key IN ('ollama.enable', 'openai.api_base_urls', 'ollama.api_configs');"
|
||||
```
|
||||
|
||||
### Full audit — dump all connection-related config
|
||||
```bash
|
||||
sqlite3 /var/lib/docker/volumes/openwebui_data/_data/webui.db \
|
||||
"SELECT key, value FROM config WHERE key LIKE '%ollama%' OR key LIKE '%openai%' ORDER BY key;"
|
||||
```
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- **`OLLAMA_BASE_URL=/ollama` is baked into the image** — omitting the env var doesn't clear it; the image default applies. After first launch, it's persisted in `ollama.base_urls` in the DB.
|
||||
- **`ENABLE_PERSISTENT_CONFIG=false` disables ALL UI settings persistence** — use only for one-off fixes, not as permanent config.
|
||||
- **The container image doesn't include `sqlite3`** — install on the host: `apt-get install -y sqlite3`.
|
||||
- **After DB changes, `docker restart` is required** — the config is read at startup.
|
||||
- **JSON path syntax is strict** — `\$.\"0\".enable` for object keys that start with digits (SQLite's `json_set` requires double-quoted keys for numeric-looking keys).
|
||||
Reference in New Issue
Block a user