Files
ai-6gb-gpu/ai-llm/docker-compose.yml
2026-06-01 09:29:28 -04:00

75 lines
3.0 KiB
YAML

# ~/docker/ai-llm/docker-compose.yml
#
# ═══════════════════════════════════════════════════════════════════════════════
# USAGE
# ═══════════════════════════════════════════════════════════════════════════════
#
# Before starting this stack, stop InvokeAI via the portal.
#
# Start:
# cd ~/docker/ai-llm && docker compose up -d
#
# Pull models (run once per model):
# docker exec ai-llm-ollama-1 ollama pull qwen2.5-coder:7b
# docker exec ai-llm-ollama-1 ollama pull qwen2.5:7b
# docker exec ai-llm-ollama-1 ollama pull llava:7b
#
# Open WebUI → https://chat.mydomain.com
#
# After starting, enable web search in Open WebUI:
# Settings → Web Search → Enable → SearXNG → http://searxng:8080
# ═══════════════════════════════════════════════════════════════════════════════
services:
# ── Ollama ───────────────────────────────────────────────────────────────────
ollama:
image: ollama/ollama:latest
pull_policy: missing
environment:
- TZ=America/New_York
volumes:
- ./data/ollama:/root/.ollama
ports:
- "11434:11434"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: unless-stopped
# ── Open WebUI ───────────────────────────────────────────────────────────────
open-webui:
image: ghcr.io/open-webui/open-webui:user0
pull_policy: missing
volumes:
- ./data/open-webui:/app/backend/data
ports:
- "3000:8080"
environment:
- TZ=America/New_York
- OLLAMA_BASE_URL=http://ollama:11434
- SEARXNG_QUERY_URL=http://searxng:8080/search?q=<query>&format=json
depends_on:
- ollama
- searxng
restart: unless-stopped
# ── SearXNG ──────────────────────────────────────────────────────────────────
# Privacy-respecting meta search — no API key needed
# Open WebUI Settings → Web Search → SearXNG → http://searxng:8080
searxng:
image: searxng/searxng:latest
pull_policy: missing
volumes:
- ./data/searxng:/etc/searxng
environment:
- TZ=America/New_York
- SEARXNG_BASE_URL=http://searxng:8080
expose:
- 8080
restart: unless-stopped