services: ollama: image: ollama/ollama:rocm container_name: ollama restart: unless-stopped environment: - OLLAMA_VULKAN=1 - TZ=America/Chicago ports: - "11434:11434" networks: - ollama-net - proxy-net devices: # kfd and dri device access needed for AMDGPU ROCm support to work - /dev/kfd:/dev/kfd - /dev/dri:/dev/dri volumes: - /srv/docker/server/ollama/data:/root/.ollama labels: - rackpeek.name=Ollama - rackpeek.tags=ai open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui restart: unless-stopped ports: - "3122:8080" environment: - OLLAMA_BASE_URL=http://ollama:11434 - CORS_ALLOW_ORIGIN=http://192.168.0.131:3122;${OPENWEBUI_URL} - CHROMA_HTTP_HOST=chroma #Setting this variable is required for multi-worker or multi-replica deployments — it switches ChromaDB from the local SQLite-backed PersistentClient to a fork-safe HttpClient. - CHROMA_HTTP_PORT=8000 #Overrides the User-Agent header that the web loader (SafeWebBaseLoader) sends on outbound fetches for web search and the fetch_url tool. #The default Python library UA is aggressively blocked by Cloudflare, Wikipedia, and similar bot-detection layers, which manifests as empty results or 403s when scraping or searching the public web. - USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} networks: - ollama-net - proxy-net volumes: - /srv/docker/server/ollama/open-webui:/app/backend/data labels: - homepage.group=AI - homepage.name=Open-WebUI - homepage.icon=open-webui.png - homepage.href=${OPENWEBUI_URL} - homepage.description=Web UI for Ollama - dockhand.url=${OPENWEBUI_URL} - rackpeek.tags=ai depends_on: - ollama - chroma chroma: #Vector Database (Chroma DB): Stores document embeddings and performs high-speed similarity searches. image: chromadb/chroma:latest container_name: chroma restart: unless-stopped ports: - "3123:8000" networks: - ollama-net labels: - rackpeek.name=chroma-db - rackpeek.tags=ai volumes: - /srv/docker/server/ollama/chroma:/chroma/chroma mcpo: image: ghcr.io/open-webui/mcpo:latest container_name: mcpo command: --api-key ${MCPO_KEY} --config /app/config/config.json --hot-reload volumes: - /srv/docker/server/ollama/open-webui/mcpo:/app/config ports: - 3111:8000 restart: unless-stopped labels: - rackpeek.name=mcpo - rackpeek.tags=ai networks: - ollama-net open-terminal: image: ghcr.io/open-webui/open-terminal:latest container_name: open-terminal volumes: - /srv/docker/server/ollama/open-webui/openterminal:/home/user ports: - 3112:8000 restart: unless-stopped environment: - OPEN_TERMINAL_API_KEY: ${OPEN_TERMINAL_API_KEY} labels: - rackpeek.name=open-terminal - rackpeek.tags=ai networks: - ollama-net #litellm: # image: ghcr.io/berriai/litellm:main-latest # container_name: litellm # restart: unless-stopped # ports: # - "4001:4000" # environment: # LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY} # networks: # - ollama-net # - proxy-net # volumes: # - /srv/docker/server/litellm/config.yaml:/app/config.yaml # - /etc/localtime:/etc/localtime:ro # #command: ["--config", "/app/config.yaml", "--port", "4000"] # depends_on: # - ollama networks: ollama-net: external: true proxy-net: external: true