Professionaalne LLM veebiliides. Vestlus, RAG (dokumentide põhine küsimine), veebiotsing.
| Komponent | Asukoht | Staatus |
|---|---|---|
| Open WebUI | Docker konteiner (open-webui) |
port 3010 |
| Ollama | Native systemd teenus (ollama.service) |
port 11434 |
| Ollama GPU | ROCm 7.2.2, gfx1151 (Radeon 8060S) | hostil |
| mcp-filesystem | Docker konteiner (mcp-filesystem-sse) |
port 3100 |
| mcp-terminal | Docker konteiner (mcp-terminal) |
port 3110 |
| tika | Docker konteiner (tika) |
port 9998 |
| Qdrant | Docker konteiner (qdrant) |
port 6333-6334 |
| SearXNG | Docker konteiner (searxng) |
port 8888 |
| PostgreSQL | Docker konteiner (postgres_postgis) |
port 5432 |
NB! Ollama EI OLE enam Dockeris. See jookseb native systemd teenusena koos ROCm GPU toega.
Vana Dockeri konteiner (ollama-rocm) on eemaldatud.
Server: AZW GTR Pro mini-PC
/opt/rocm/)ROCm teegid on registreeritud süsteemis:
# Kontrolli GPU olekut
rocm-smi
rocminfo
cat /sys/class/drm/card1/device/gpu_busy_percent
# ROCm teegid
ls /opt/rocm/lib/libamdhip64*
ldconfig -p | grep amdhip64
Ollama teenus jookseb hostil ollama.service nimega:
# Ollama teenuse olek
sudo systemctl status ollama
# Taaskäivita
sudo systemctl restart ollama
# Logid
journalctl -u ollama -f
journalctl -u ollama --no-pager -n 50
# Kontrolli GPU tuvastust
journalctl -u ollama --no-pager | grep -iE 'gpu|rocm|gfx|inference'
# Kasuta ollama CLI-d
ollama list # mudelite nimekiri
ollama ps # hetkel laetud mudelid
ollama show <nimi> # mudeli detailid
Teenuse konfiguratsioon:
/etc/systemd/system/ollama.service/etc/systemd/system/ollama.service.d/override.conf/home/ardo/.ollama/modelsollama (grupid: render, video, ardo)HSA_OVERRIDE_GFX_VERSION=11.5.1LD_LIBRARY_PATH=/opt/rocm/lib| Mudel | Suurus | Kasutus |
|---|---|---|
nomic-embed-text:latest |
274 MB | RAG embedding (GPU) |
qwen3:30b-fast |
18 GB | LLM vestlus |
deepseek-r1:14b |
9.0 GB | LLM vestlus (reasoning) |
translategemma:12b |
8.1 GB | Tõlkimine |
bge-m3:latest |
1.2 GB | Varu-embedding |
# Lae mudel
ollama pull qwen3:30b-fast
# Eemalda mudel
ollama rm nomic-embed-text-cpu
# Testi mudelit (verbose näitab tok/sek)
ollama run nomic-embed-text "test" --verbose
OpenWebUI embeddingud on seadistatud kasutama nomic-embed-text:latest mudelit
koos GPU kiirendusega. Ära kasuta nomic-embed-text-cpu mudelit – see on
ainult CPU jaoks (num_gpu=0) ja oluliselt aeglasem.
Compose failis: RAG_EMBEDDING_MODEL=nomic-embed-text
| Mõõdik | CPU mudel (-cpu) | GPU mudel (latest) | Kiirendus |
|---|---|---|---|
| 901 embedit (batch) | ~39 s | ~9.5 s | 4x |
| 848 embedit (batch) | ~39 s | ~8.1 s | 5x |
| Üksik API päring | ~28 s | ~0.3 s | 100x |
# Testi embeddingut
curl http://localhost:11434/api/embeddings -d '{
"model": "nomic-embed-text",
"prompt": "How to implement semantic search with Python"
}'
# Qdrant kollektsiooni kustutamine
curl -X DELETE http://qdrant:6333/collections/open-webui_files
# Läbi OpenWebUI skripti
docker exec -ti open-webui bash -c "python /scripts/clean_qdrant.py"
Kasutab:
Olulised keskkonnamuutujad compose failis:
USE_OLLAMA_DOCKER=false – väldib OpenWebUI sisemist ollama käivitustRAG_EMBEDDING_MODEL=nomic-embed-text – GPU embedding mudelRAG_EMBEDDING_ENGINE=ollama – embedding API läbi ollamaOLLAMA_API_BASE_URL=http://100.87.1.24:11434 – ollama APIVECTOR_DB=qdrant – vektorbaasi tüüp# Ava kaust
cd /opt/docker-compose/third/server/openwebui/
# Käivita (ainult open-webui teenus)
docker-compose up -d open-webui
# Käivita kõik teenused
docker-compose up -d
# Peata
docker-compose down
# Taaskäivita
docker-compose restart open-webui
# Logid (ainult open-webui)
docker-compose logs -f open-webui
# Logid (kõik)
docker-compose logs -f
# Uuenda
docker-compose pull open-webui
docker-compose up -d open-webui
# Konteinerite seis
docker ps | grep -E "open-webui|tika|mcp"
# Logid nime järgi
docker logs open-webui
docker logs tika
# Sisene konteinerisse
docker exec -it open-webui /bin/bash
docker exec -it tika /bin/bash
| Teenus | Port | URL |
|---|---|---|
| Open WebUI | 3010 | http://100.87.1.24:3010 |
| Ollama API | 11434 | http://100.87.1.24:11434 (native, mitte Docker) |
| MCP Filesystem | 3100 | http://127.0.0.1:3100/mcp (ainult localhost) |
| MCP Terminal | 3110 | http://127.0.0.1:3110/mcp (ainult localhost) |
| Apache Tika | 9998 | http://100.87.1.24:9998 |
Open WebUI kontrollib iseenda tervist iga 30 sekundi järel:
# Testi käsitsi
curl http://100.87.1.24:3010/health
# Ollama tervisekontroll
curl http://100.87.1.24:11434/api/tags
| Asukoht | Sisu |
|---|---|
/opt/docker-compose/third/server/openwebui/ |
Compose failid ja see dokument |
/data/docker/open-webui/scripts |
Skriptid |
/backups/docker/open-webui |
Varukoopiad |
/home/ardo/.ollama/models |
Ollama mudelid (35 GB) |
/opt/rocm/ |
ROCm installatsioon |
/etc/systemd/system/ollama.service |
Ollama systemd teenus |
/etc/systemd/system/ollama.service.d/override.conf |
Ollama teenuse override |
Kui on vaja minna tagasi Dockeri ollama peale (nt probleemid native installiga):
# Peata native ollama
sudo systemctl stop ollama
# Käivita Docker ollama (vana startup.sh põhjal)
docker run -d --name ollama-rocm --restart unless-stopped --device /dev/kfd --device /dev/dri --security-opt seccomp=unconfined --security-opt label=disable -p 11434:11434 -v /home/ardo/.ollama/:/root/.ollama/ -e OLLAMA_HOST=0.0.0.0:11434 -e HSA_OVERRIDE_GFX_VERSION=11.5.1 -e OLLAMA_NUM_PARALLEL=4 ollama/ollama:rocm
# Vajadusel muuda OpenWebUI compose failis:
# USE_OLLAMA_DOCKER=true
# ja taaskäivita:
# docker-compose up -d open-webui
Vestluses ava @ menüü või klõpsa + nuppu ja vali Filesystem või Terminal.
| Tööriist | Näide |
|---|---|
list_directory |
@Filesystem list directory path=/data |
read_file |
@Filesystem read file path=/scripts/clean_qdrant.py |
write_file |
@Filesystem write file path=/backups/märkmed.txt content="Tere!" |
search_files |
@Filesystem search files path=/scripts pattern=*.py |
get_file_info |
@Filesystem get file info path=/data |
create_directory |
@Filesystem create directory path=/backups/test |
Lubatud kataloogid: /data, /scripts, /backups
| Tööriist | Näide |
|---|---|
run_command |
@Terminal run_command: docker ps |
@Terminal run_command: df -h / |
|
@Terminal run_command: docker logs open-webui --tail 20 |
|
@Terminal run_command: curl -s http://open-webui:8080/health |
|
@Terminal run_command: uname -a |
Lubatud käsud: ls, cat, grep, df, du, ps, docker ps/logs/inspect, curl, ping, uname, echo, stat, which, whoami, env, tree, find, head, tail, sort, uniq, file, free, uptime, id, date, host
Blokeeritud: rm, sudo, shutdown, | (torud), $(), >, &&, docker rm/stop/kill
Näidisvestlus AI-ga:
Sina: "Vaata, mis toimub – docker logs open-webui --tail 10" AI: (kasutab @Terminal run_command) "Siin on viimased logiread..."
Sina: "Leia /scripts kataloogist kõik Python skriptid" AI: (kasutab @Filesystem search_files) "Leidsin faili clean_qdrant.py"
MCP serverid on seotud ainult 127.0.0.1-ga (turvalisuse mõttes).
Kui vajad neile ligipääsu läbi Tailscale'i, kasuta:
# MCP Filesystem (Streamable HTTP)
sudo tailscale serve --bg --https 3100 http://127.0.0.1:3100
# MCP Terminal (Streamable HTTP)
sudo tailscale serve --bg --https 3110 http://127.0.0.1:3110
# Kontrolli staatust
sudo tailscale serve status
# Keela
sudo tailscale serve --https=3100 off
sudo tailscale serve --https=3110 off
Pärast seda on MCP serverid kättesaadavad:
https://100.87.1.24:3100/mcphttps://100.87.1.24:3110/mcpNB! Brauseris /sse avamine ei tööta, sest SSE on püsiv ühendus (Streamable HTTP),
mitte tavalise GET-päringuga laetav leht. MCP klient (OpenWebUI) haldab ühendust ise.
main_ai_network peal (compose'is ai_network)host.docker.internalextra_hosts on seadistatud compose failisRAG_EMBEDDING_MODEL=nomic-embed-text (ilma -cpu-ta)ollama ps – peaks näitama "100% GPU"nomic-embed-text-cpu, eemalda see: ollama rm nomic-embed-text-cpucat /sys/class/drm/card1/device/gpu_busy_percentulimits: seadistus, Dockeri vaikimisi limiit on 1024ulimits.nofile.soft=65536 ja hard=65536docker exec open-webui cat /proc/1/limits | grep "open files"Max open files 65536 65536# Kontrolli ROCm teeke
ldconfig -p | grep amdhip64
# Kontrolli HSA override
journalctl -u ollama --no-pager | grep HSA_OVERRIDE
# Taaskäivita ollama
sudo systemctl restart ollama
# Kontrolli logisid
journalctl -u ollama -f | grep -i gpu
# Testi ollama API-t
curl http://100.87.1.24:11434/api/tags
# Kontrolli compose faili
grep OLLAMA /opt/docker-compose/third/server/open-webui/docker-compose.yml
# Taaskäivita OpenWebUI
cd /opt/docker-compose/third/server/openwebui/
docker-compose restart open-webui
| Kuupäev | Muudatus |
|---|---|
| 2025-07-05 | Ollama viidud Dockerist native systemd peale (ROCm GPU tugi) |
| 2025-07-05 | Embedding mudel muudetud nomic-embed-text-cpu -> nomic-embed-text:latest |
| 2025-07-05 | Lisatud USE_OLLAMA_DOCKER=false compose faili |
| 2025-07-05 | startup.sh OpenWebUI osa asendatud docker-compose haldusega |
| 2025-07-05 | Lisatud ulimits.nofile=65536 compose faili (parandab "Too many open files") |