* wip Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Signed-off-by: mudler <mudler@localai.io> * Add groups to mcpbox Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Signed-off-by: mudler <mudler@localai.io> * Add mcpbox dockerfile and entrypoint Signed-off-by: mudler <mudler@localai.io> * Attach mcp stdio box to agent Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Signed-off-by: mudler <mudler@localai.io> * Add to dockerfile Signed-off-by: mudler <mudler@localai.io> * Attach to config Signed-off-by: mudler <mudler@localai.io> * Attach to ui Signed-off-by: mudler <mudler@localai.io> * Revert "Attach to ui" This reverts commit 088d0c47e87ee8f84297e47d178fb7384bbe6d45. Signed-off-by: mudler <mudler@localai.io> * add one-time process, attach to UI the mcp server json configuration Signed-off-by: mudler <mudler@localai.io> * quality of life improvements Signed-off-by: mudler <mudler@localai.io> * fixes Signed-off-by: mudler <mudler@localai.io> * Make it working, expose MCP prepare script to UI Signed-off-by: mudler <mudler@localai.io> * Add container image to CI builds * Wire mcpbox to tests * Improve setup' * Not needed anymore, using tests Signed-off-by: mudler <mudler@localai.io> * fix: do not override actions Signed-off-by: mudler <mudler@localai.io> * chore(tests): fix env var Signed-off-by: mudler <mudler@localai.io> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Signed-off-by: mudler <mudler@localai.io>
93 lines
3.0 KiB
YAML
93 lines
3.0 KiB
YAML
services:
|
|
localai:
|
|
# See https://localai.io/basics/container/#standard-container-images for
|
|
# a list of available container images (or build your own with the provided Dockerfile)
|
|
# Available images with CUDA, ROCm, SYCL, Vulkan
|
|
# Image list (quay.io): https://quay.io/repository/go-skynet/local-ai?tab=tags
|
|
# Image list (dockerhub): https://hub.docker.com/r/localai/localai
|
|
image: localai/localai:master-ffmpeg-core
|
|
command:
|
|
- ${MODEL_NAME:-gemma-3-12b-it-qat}
|
|
- ${MULTIMODAL_MODEL:-minicpm-v-2_6}
|
|
- ${IMAGE_MODEL:-sd-1.5-ggml}
|
|
- granite-embedding-107m-multilingual
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"]
|
|
interval: 60s
|
|
timeout: 10m
|
|
retries: 120
|
|
ports:
|
|
- 8081:8080
|
|
environment:
|
|
- DEBUG=true
|
|
#- LOCALAI_API_KEY=sk-1234567890
|
|
volumes:
|
|
- ./volumes/models:/build/models:cached
|
|
- ./volumes/images:/tmp/generated/images
|
|
|
|
localrecall:
|
|
image: quay.io/mudler/localrecall:main
|
|
ports:
|
|
- 8080
|
|
environment:
|
|
- COLLECTION_DB_PATH=/db
|
|
- EMBEDDING_MODEL=granite-embedding-107m-multilingual
|
|
- FILE_ASSETS=/assets
|
|
- OPENAI_API_KEY=sk-1234567890
|
|
- OPENAI_BASE_URL=http://localai:8080
|
|
volumes:
|
|
- ./volumes/localrag/db:/db
|
|
- ./volumes/localrag/assets/:/assets
|
|
|
|
localrecall-healthcheck:
|
|
depends_on:
|
|
localrecall:
|
|
condition: service_started
|
|
image: busybox
|
|
command: ["sh", "-c", "until wget -q -O - http://localrecall:8080 > /dev/null 2>&1; do echo 'Waiting for localrecall...'; sleep 1; done; echo 'localrecall is up!'"]
|
|
|
|
mcpbox:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.mcpbox
|
|
ports:
|
|
- "8080"
|
|
volumes:
|
|
- ./volumes/mcpbox:/app/data
|
|
# share docker socket if you want it to be able to run docker commands
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O", "-", "http://localhost:8080/processes"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
localagi:
|
|
depends_on:
|
|
localai:
|
|
condition: service_healthy
|
|
localrecall-healthcheck:
|
|
condition: service_completed_successfully
|
|
mcpbox:
|
|
condition: service_healthy
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.webui
|
|
ports:
|
|
- 8080:3000
|
|
#image: quay.io/mudler/localagi:master
|
|
environment:
|
|
- LOCALAGI_MODEL=${MODEL_NAME:-gemma-3-12b-it-qat}
|
|
- LOCALAGI_MULTIMODAL_MODEL=${MULTIMODAL_MODEL:-minicpm-v-2_6}
|
|
- LOCALAGI_IMAGE_MODEL=${IMAGE_MODEL:-sd-1.5-ggml}
|
|
- LOCALAGI_LLM_API_URL=http://localai:8080
|
|
#- LOCALAGI_LLM_API_KEY=sk-1234567890
|
|
- LOCALAGI_LOCALRAG_URL=http://localrecall:8080
|
|
- LOCALAGI_STATE_DIR=/pool
|
|
- LOCALAGI_TIMEOUT=5m
|
|
- LOCALAGI_ENABLE_CONVERSATIONS_LOGGING=false
|
|
- LOCALAGI_MCPBOX_URL=http://mcpbox:8080
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
volumes:
|
|
- ./volumes/localagi/:/pool |