Files
docker_compose/ollama.yaml
T
2026-07-01 21:05:36 -05:00

125 lines
3.8 KiB
YAML

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