docker-compose.yml.bak-embed-20260913-190443 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. version: "3.9"
  2. # Tailscale ühendus:
  3. # sudo tailscale serve --bg --https 3000 http://127.0.0.1:3000
  4. # sudo tailscale serve --https=3000 off
  5. # sudo tailscale serve status
  6. # ═══════════════════════════════════════════════════════════════
  7. # OPEN WEBUI - Professionaalne LLM liides
  8. # ═══════════════════════════════════════════════════════════════
  9. services:
  10. open-webui:
  11. image: ghcr.io/open-webui/open-webui:main
  12. container_name: open-webui
  13. mem_limit: 8g
  14. restart: always
  15. ports:
  16. # Kui kasutad tailscale'i siis
  17. #- "127.0.0.1:3000:8080"
  18. - "100.87.1.24:3010:8080" # ainult tailnet; avalikult läbi prod (openwebui.odamus.com)
  19. #env_file:
  20. #- /data/docker/open-webui/.env
  21. volumes:
  22. - data:/app/backend/data
  23. - /data/docker/open-webui/scripts:/scripts
  24. - /data/docker/open-webui/patches/qdrant_multitenancy.py:/app/backend/open_webui/retrieval/vector/dbs/qdrant_multitenancy.py
  25. #- /data/docker/open-webui/patches/searxng.py:/app/backend/open_webui/retrieval/web/searxng.py
  26. - /backups/docker/open-webui:/backups
  27. - /etc/localtime:/etc/localtime
  28. #- /data/docker/open-webui/.env:/app/backend/open_webui/.env
  29. #- /data/docker/open-webui/patches:/patches:ro
  30. #entrypoint: ["/bin/sh", "-c", "python /patches/patch_ollama_embeddings.py; python /patches/patch_qdrant.py && exec /app/backend/start.sh"]
  31. environment:
  32. # --- PÕHISED ---
  33. - WEBUI_SECRET_KEY=ai_webui_secret_2026_change_me_to_random_string
  34. - TZ=Europe/Tallinn
  35. - LANG=C.UTF-8
  36. - CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE=52428800
  37. - ENABLE_SIGNUP=false # esimesel korral true, hiljem false
  38. - OPENAI_API_BASE_URLS=http://100.87.1.24:8070/v1
  39. - OPENAI_API_KEYS=sk-dummy-key-not-required
  40. - OLLAMA_API_BASE_URL=http://100.87.1.24:11434
  41. - RAG_EMBEDDING_OPENAI_API_BASE_URL=http://100.87.1.24:11434
  42. # --- RAG ja EMBEDDINGUD ---
  43. - OLLAMA_BASE_URL=http://100.87.1.24:11434
  44. - RAG_EMBEDDING_ENGINE=ollama
  45. - RAG_EMBEDDING_MODEL=nomic-embed-text
  46. - USE_OLLAMA_DOCKER=false
  47. # Chunking (märgid, mitte sõnad)
  48. #- RAG_TEXT_SPLITTER=recursive
  49. #- RAG_CHUNK_SIZE=1000
  50. #- RAG_CHUNK_OVERLAP=100
  51. #- RAG_CHUNK_MIN_SIZE=100
  52. # Hybrid search + reranker
  53. #- RAG_HYBRID_SEARCH_ENABLED=true
  54. #- RAG_TOP_K=20
  55. # Full context režiim maha (kasuta fokuseeritud RAG-i)
  56. - RAG_FULL_CONTEXT_MODE=false
  57. # TEKSTI TÜKELDAMINE – need on kõige olulisemad suurte failide jaoks
  58. - TEXT_SPLITTER=recursive
  59. # kasuta rekursiivset tükeldajat (toetab keelepiire)
  60. - CHUNK_SIZE=1500
  61. # vähenda 500 tähemärgile, et vältida kontekstiületust
  62. - CHUNK_OVERLAP=150
  63. # kattuvus tükkide vahel
  64. - CHUNK_MIN_SIZE_TARGET=300
  65. # kui vaja, aga pole kohustuslik
  66. - HYBRID_SEARCH_ENABLED=true
  67. - TOP_K=20
  68. - RAG_WEB_SEARCH_RESULT_COUNT=3
  69. - WEB_LOADER_ENGINE=default
  70. - CONCURRENT_REQUESTS=20 # kui pole juba
  71. # Failide üleslaadimise piirangud
  72. - UPLOAD_MAX_SIZE=6291456
  73. # 6 MB baitides
  74. - ALLOWED_FILE_EXTENSIONS=md,pdf,txt,docx
  75. # luba ka markdown
  76. # --- QDRANT --- (AINULT NEED!)
  77. - VECTOR_DB=qdrant
  78. - QDRANT_URI=http://qdrant:6333
  79. #- VECTOR_DB=postgres
  80. #- VECTOR_DB=weaviate
  81. #- WEAVIATE_HOST=http://weaviate:8080
  82. # --- SEARXNG (veebiotsing) ---
  83. - ENABLE_RAG_WEB_SEARCH=true
  84. - BYPASS_RETRIEVAL_ACCESS_CONTROL=true
  85. - BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL=true
  86. - RAG_WEB_SEARCH_ENGINE=searxng
  87. - SEARXNG_QUERY_URL=http://100.87.1.24:8888/search?q=<query>&format=json&categories=general,news,science
  88. #- SEARXNG_QUERY_URL=http://searxng:8080/search?q=<query>&format=json&categories=general,news,science
  89. #- SEARXNG_QUERY_URL=http://localhost:8080/search?q=<query>&format=json&categories=general,news,science
  90. - DATABASE_URL=postgresql://ai_user:ai_secure_pass_2026@postgres:5432/openwebui_test_db
  91. # --- MCP TOOL SERVER ÜHENDUSED ---
  92. - 'TOOL_SERVER_CONNECTIONS=[{"url":"http://mcp-filesystem-sse:3100/mcp","path":"","type":"mcp","auth_type":"none","key":"","headers":{},"config":{"enable":true,"access_grants":[]},"info":{"id":"filesystem","name":"Filesystem","description":"YOU CAN AND MUST USE THIS TOOL to create directories, write files, and read files on the server. Creates parent directories automatically. Use write_file to save code files. Allowed paths: /projects/data, /data, /scripts, /backups"}},{"url":"http://mcp-terminal:3110/mcp","path":"","type":"mcp","auth_type":"none","key":"","headers":{},"config":{"enable":true,"access_grants":[]},"info":{"id":"terminal","name":"Terminal","description":"YOU CAN AND MUST USE THIS TOOL to execute shell commands (mkdir, npm, npx, node, ng, python3, ls, cat). Also provides write_file and create_directory tools for saving files. This has WORKING WRITE ACCESS to /projects/data"}}]'
  93. networks:
  94. - ai_network
  95. - prod_net
  96. ulimits:
  97. nofile:
  98. soft: 65536
  99. hard: 65536
  100. extra_hosts:
  101. - "host.docker.internal:host-gateway"
  102. healthcheck:
  103. test: ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"]
  104. interval: 30s
  105. timeout: 10s
  106. retries: 3
  107. start_period: 60s
  108. mcp-terminal:
  109. build: ./mcp-servers
  110. container_name: mcp-terminal
  111. entrypoint: ["/entrypoint-terminal.sh"]
  112. restart: unless-stopped
  113. ports:
  114. - "127.0.0.1:3110:3110"
  115. environment:
  116. - TZ=Europe/Tallinn
  117. - LANG=C.UTF-8
  118. volumes:
  119. - /data/mcp-filesystem:/projects/data
  120. - /etc/localtime:/etc/localtime
  121. - /var/run/docker.sock:/var/run/docker.sock
  122. networks:
  123. - ai_network
  124. tika:
  125. image: apache/tika:latest-full # "full" sisaldab Tesseract OCR-i (soovitatav)
  126. container_name: tika
  127. ports:
  128. - "9998:9998" # Vajadusel väljapoole eksponeerimiseks
  129. restart: unless-stopped
  130. environment:
  131. - TZ=Europe/Tallinn
  132. - LANG=C.UTF-8
  133. volumes:
  134. - /etc/localtime:/etc/localtime
  135. networks:
  136. - ai_network
  137. volumes:
  138. data:
  139. name: 'open-webui_data'
  140. driver: local
  141. networks:
  142. ai_network:
  143. external: true
  144. name: main_ai_network
  145. prod_net:
  146. external: true