Compose and supporting code for four services that had been running or prototyped without their config tracked here, per the repo convention that agap_git holds the compose + config while application source lives in each service's own Gitea repo. Only placeholder credentials are included: mood/.env.example and moodtracker/.env.example ship dummy values, and overleaf/variables.env carries app name and feature flags only. Real values stay in Vaultwarden. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
30 lines
1.0 KiB
YAML
30 lines
1.0 KiB
YAML
services:
|
|
ollama:
|
|
image: ollama/ollama
|
|
container_name: ollama
|
|
ports:
|
|
- "11436:11434"
|
|
volumes:
|
|
- /mnt/ssd/ai/ollama:/root/.ollama
|
|
restart: always
|
|
environment:
|
|
# Allow qwen3:8b + qwen2.5:1.5b to coexist in VRAM (~6.7-7.7 GB on 8 GB GPU)
|
|
- OLLAMA_MAX_LOADED_MODELS=2
|
|
# One GPU inference at a time — prevents compute contention between models
|
|
- OLLAMA_NUM_PARALLEL=1
|
|
# Force all layers to GPU — fail instead of falling back to CPU
|
|
- OLLAMA_NUM_GPU=999
|
|
runtime: nvidia
|
|
mem_limit: 4g
|
|
# kb#190: `ollama list` just queries the local server's model registry --
|
|
# no model load/inference, cheap. This is a SEPARATE compose project from
|
|
# openai/docker-compose.yml (reached from there via
|
|
# host.docker.internal:11436), so it cannot be wired into that file's
|
|
# depends_on/condition chain -- this only gives it its own status.
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "ollama list || exit 1"]
|
|
interval: 15s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 20s
|