125 lines
3.8 KiB
YAML
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 |