Files
loogle-scripts/services/loogle-mcp/docker-compose.yml
T

104 lines
2.9 KiB
YAML

# Embedding (query + indicizzazione) su Ollama locale di pi1: il DS920 (J4125, senza AVX)
# impiega minuti per chunk. Sul DS920 restano Qdrant (base di conoscenza) e un Ollama di
# riserva per le sole query (OLLAMA_URL in .env). I valori qui sovrascrivono .env.
x-embedding-env: &embedding-env
OLLAMA_QUERY_URL: http://ollama:11434
OLLAMA_INDEX_URL: http://ollama:11434
OLLAMA_QUERY_NUM_THREAD: "2"
# Thermal gate sull'host locale (pi1), soglie da Pi5 (throttling a 80-85°C)
THERMAL_SOURCE: local
THERMAL_TEMP_SOFT_C: "70"
THERMAL_TEMP_HARD_C: "78"
THERMAL_CPU_TARGET_PCT: "75"
THERMAL_POLL_S: "15"
OLLAMA_EMBED_DELAY_S: "0.5"
OLLAMA_EMBED_COOL_DELAY_S: "0"
services:
loogle-mcp:
build:
context: .
dockerfile: Dockerfile
image: loogle-mcp:latest
container_name: loogle-mcp
restart: always
ports:
- "8700:8700"
env_file:
- .env
environment:
<<: *embedding-env
TZ: Europe/Rome
MCP_DB: /data/loogle_mcp.db
MCP_CONTEXT_ROOT: /data/context
MCP_AUDIT_LOG: /data/audit.log
MCP_VECTOR_FALLBACK: /data/vector_fallback.db
volumes:
- ./data:/data
- /mnt/ha-apps/mcp/context:/data/context
depends_on:
- ollama
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8700/health"]
interval: 30s
timeout: 5s
retries: 3
loogle-mcp-indexer:
build:
context: .
dockerfile: Dockerfile
image: loogle-mcp:latest
container_name: loogle-mcp-indexer
restart: always
env_file:
- .env
environment:
<<: *embedding-env
TZ: Europe/Rome
MCP_DB: /data/loogle_mcp.db
MCP_CONTEXT_ROOT: /data/context
MCP_VECTOR_FALLBACK: /data/vector_fallback.db
command: ["python", "-m", "worker.indexer_main"]
volumes:
- ./data:/data
- /mnt/ha-apps/mcp/context:/data/context
depends_on:
- loogle-mcp
- ollama
# Ollama per gli embedding (stesso modello del DS920 → stesso spazio vettoriale).
# Nessuna porta pubblicata: raggiungibile solo dai servizi MCP sulla rete compose.
ollama:
image: ollama/ollama:0.32.15
container_name: loogle-mcp-ollama
restart: always
environment:
- OLLAMA_KEEP_ALIVE=-1
- OLLAMA_NUM_PARALLEL=2
- OLLAMA_MAX_LOADED_MODELS=1
volumes:
# Volume Docker (non bind nella cartella progetto: il sorgente viene copiato su Gitea)
- ollama-models:/root/.ollama
cpus: 2
mem_limit: 1g
healthcheck:
test: ["CMD", "ollama", "list"]
interval: 60s
timeout: 10s
retries: 3
# Qdrant locale: solo su x86/DS920 — su Pi5 ARM 16K page size non supportato
qdrant-local:
profiles: ["qdrant-local"]
image: qdrant/qdrant:v1.13.2
container_name: loogle_mcp_qdrant
restart: always
ports:
- "6333:6333"
volumes:
- /mnt/ha-apps/mcp/qdrant:/qdrant/storage
volumes:
ollama-models: