# SearXNG ja Open WebUI integratsioon ```markdown # SearXNG + Open WebUI integratsioon (ohmu server) See juhend kirjeldab, kuidas SearXNG töötab koos Open WebUI‑ga ja milliseid seadeid me muutsime. ## 1. Asukoht ja käivitamine Projektikataloog: ```bash cd /opt/docker-compose/main ``` Põhikäsklused: ```bash # Kõik teenused taustal docker-compose up -d # Ainult SearXNG docker-compose up -d searxng # Ainult Open WebUI docker-compose up -d open-webui # Logid docker logs -f searxng docker logs -f open-webui ``` --- ## 2. SearXNG seadistus ### 2.1 Docker Compose teenus Fail: `docker-compose.yml` ```yaml searxng: image: searxng/searxng:latest container_name: searxng restart: always ports: - "8888:8080" volumes: - ./searxng:/etc/searxng:rw environment: - SEARXNG_BASE_URL=http://100.87.1.24:8888/ - SEARXNG_SECRET=searxng_secret_key_change_me_2026_random_string - TZ=Europe/Tallinn networks: - ai_network healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080/healthz"] interval: 30s timeout: 10s retries: 3 start_period: 30s ``` ### 2.2 `settings.yml` olulisemad read Fail: `./searxng/settings.yml` (mount’itud konteinerisse `/etc/searxng/settings.yml`) ```yaml server: port: 8080 # sisemine port konteineris bind_address: "0.0.0.0" base_url: false limiter: false # rate limiting / botdetection välja public_instance: false method: "GET" formats: - html - json # vajalik, et Open WebUI saaks JSON-tulemusi ``` DuckDuckGo CAPTCHAd vältimiseks on DDG mootorid soovi korral keelatud: ```yaml - name: duckduckgo engine: duckduckgo shortcut: ddg disabled: true ``` (jne kõik ddg‑* mootorid `disabled: true`). ### 2.3 Limiter konfiguratsioon (valikuline) Fail: `./searxng/limiter.toml` ```toml [botdetection.ip_limit] filter_link_local = false link_token = false [botdetection.ip_lists] pass_ip = [ "172.16.0.0/12", "10.0.0.0/8", "192.168.0.0/16" ] ``` NB! Kuigi logides on hoiatus `X-Forwarded-For nor X-Real-IP header is set!`, tänu `limiter: false` ei blokita päringuid – seda hoiatust võib ignoreerida. --- ## 3. Open WebUI seadistus SearXNG jaoks ### 3.1 Docker Compose teenus Fail: `docker-compose.yml` – `open-webui` teenuse `environment` ploki kõige olulisemad read. ```yaml open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui restart: always ports: - "3000:8080" volumes: - open-webui_data:/app/backend/data - ./open-webui-uploads:/app/backend/data/uploads - ./open-webui-docs:/app/backend/data/docs environment: # Põhiseaded - WEBUI_SECRET_KEY=ai_webui_secret_2026_change_me_to_random_string - TZ=Europe/Tallinn - OLLAMA_BASE_URL=http://ollama:11434 # RAG & embeddingud - ENABLE_RAG_WEB_SEARCH=true - RAG_EMBEDDING_ENGINE=ollama - RAG_EMBEDDING_MODEL=nomic-embed-text:latest # Web search SearXNG kaudu (OLULINE!) - RAG_WEB_SEARCH_ENGINE=searxng - SEARXNG_QUERY_URL=http://searxng:8080/search?q=&format=json&categories=general,science - RAG_WEB_SEARCH_RESULT_COUNT=3 - RAG_WEB_SEARCH_CONCURRENT_REQUESTS=5 ``` **Oluline viga, mille parandasime:** alguses oli ```yaml SEARXNG_QUERY_URL=http://searxng:8080/search?q=&categories=general,science ``` See ei sisestanud päringut ja SearXNG logisse ei tekkinud ühtegi `search` päringut. Õige on **`q=&format=json`**. --- ## 4. Web search kasutamine Open WebUI-s ### 4.1 Kuidas käivitada veebiotsing Vestluses: ```text #web Milline ilm on täna Hiiumaal? ``` või ```text #web Millised on viimased uudised Eestist? ``` `#web` sümbol sunnib Open WebUI’d kasutama RAG web search’i SearXNG kaudu. ### 4.2 Kuidas kontrollida, kas SearXNG päriselt töötab 1. Ava terminal: ```bash docker logs -f searxng ``` 2. Teises aknas Open WebUI-s tee `#web ...` päring. 3. Kui integratsioon töötab, ilmuvad SearXNG logidesse uued read (vead / hoiatused / info) täpselt päringu ajal. Lisaks saab käsitsi testida: ```bash curl "http://100.87.1.24:8888/search?q=hiiumaa&format=json" | jq '.results[0:2]' docker exec open-webui curl -s "http://searxng:8080/search?q=test&format=json" | jq '.results.title' ``` --- ## 5. Tüüpilised probleemid ja lahendused 1. **Open WebUI vastused on „vana info“, SearXNG logi ei muutu** → kontrolli, et `SEARXNG_QUERY_URL` sisaldab `` ja `format=json`. 2. **SearXNG logis DuckDuckGo CAPTCHA vead** → keela DuckDuckGo mootorid `settings.yml`‑is (`disabled: true`). 3. **SearXNG logis pidevalt `X-Forwarded-For nor X-Real-IP`** → hoiatus; kuna `limiter: false`, võib seda ignoreerida. 4. **Tahad rohkem / vähem veebi tulemusi** → muuda Open WebUI env: ```yaml - RAG_WEB_SEARCH_RESULT_COUNT=3 # 3–5 on mõistlik - RAG_WEB_SEARCH_CONCURRENT_REQUESTS=5 # 5–8, olenevalt koormusest ``` --- ## 6. Kiire „reset“ integratsioonile Kui tulevikus miski läheb segamini: ```bash cd /opt/docker-compose/main # Stoppi ainult need kaks docker-compose stop open-webui searxng # Käivita SearXNG docker-compose up -d searxng # Kui SearXNG on terve: docker-compose up -d open-webui ``` Seejärel testi: ```bash docker exec open-webui curl -s "http://searxng:8080/search?q=test&format=json" | jq '.results.title' ``` Kui see töötab, on SearXNG ja Open WebUI integratsioon korras. ``` [^1][^10][^11][^12][^13][^14][^15][^16][^17][^18][^19][^2][^20][^21][^3][^4][^5][^6][^7][^8][^9]
[^1]: docker-compose.yml [^2]: docker-compose.yml [^3]: image.jpg [^4]: image.jpg [^5]: docker-compose.yml [^6]: image.jpg [^7]: docker-compose.yml [^8]: image.jpg [^9]: paste.txt [^10]: docker-compose.yml [^11]: image.jpg [^12]: image.jpg [^13]: image.jpg [^14]: image.jpg [^15]: settings.yml [^16]: docker-compose.yml [^17]: settings.yml [^18]: limiter.toml [^19]: image.jpg [^20]: image.jpg [^21]: image.jpg```