{ "version": 1, "policy": { "description": "Runtime container images must be pinned by tag or digest, recorded here, and intentionally allowlisted when a local build or placeholder needs a mutable tag.", "latest_tags": "forbidden unless listed in allow_latest", "variable_image_refs": "allowed only when the default image resolves to a locked entry and the variable ref is documented in allow_variable_refs", "local_images": "allowed only when listed in allow_local_images" }, "entries": [ { "id": "base.llama-server", "type": "image", "path": "docker-compose.base.yml", "value": "ghcr.io/ggml-org/llama.cpp:server-b9014" }, { "id": "base.open-webui", "type": "image", "path": "docker-compose.base.yml", "value": "ghcr.io/open-webui/open-webui:v0.7.2" }, { "id": "apple.llama-server", "type": "image", "path": "docker-compose.apple.yml", "value": "ghcr.io/ggml-org/llama.cpp:server-b8248" }, { "id": "cpu.llama-server", "type": "image", "path": "docker-compose.cpu.yml", "value": "ghcr.io/ggml-org/llama.cpp:server-b8248" }, { "id": "intel.llama-server", "type": "image", "path": "docker-compose.intel.yml", "value": "ghcr.io/ggml-org/llama.cpp:server-intel-b8248" }, { "id": "nvidia.llama-server", "type": "image", "path": "docker-compose.nvidia.yml", "value": "ghcr.io/ggml-org/llama.cpp:server-cuda-b9014" }, { "id": "ape.python", "type": "image", "path": "extensions/services/ape/Dockerfile", "value": "python:3.12-slim" }, { "id": "brave-search.node", "type": "image", "path": "extensions/services/brave-search/Dockerfile", "value": "node:20-alpine" }, { "id": "comfyui.amd", "type": "image", "path": "extensions/services/comfyui/compose.amd.yaml", "value": "ignatberesnev/comfyui-gfx1151:v0.2" }, { "id": "comfyui.nvidia-runtime", "type": "image", "path": "extensions/services/comfyui/Dockerfile", "value": "nvidia/cuda:12.8.0-runtime-ubuntu22.04" }, { "id": "dashboard.node", "type": "image", "path": "extensions/services/dashboard/Dockerfile", "value": "node:20.19-alpine" }, { "id": "dashboard.nginx", "type": "image", "path": "extensions/services/dashboard/Dockerfile", "value": "nginx:alpine" }, { "id": "dashboard-api.python", "type": "image", "path": "extensions/services/dashboard-api/Dockerfile", "value": "python:3.11-slim" }, { "id": "ods-proxy.caddy", "type": "image", "path": "extensions/services/ods-proxy/compose.yaml", "value": "caddy:2.11.3-alpine" }, { "id": "embeddings.tei", "type": "image", "path": "extensions/services/embeddings/compose.yaml", "value": "ghcr.io/huggingface/text-embeddings-inference:cpu-1.9.1" }, { "id": "hermes.agent", "type": "image", "path": "extensions/services/hermes/compose.yaml", "value": "nousresearch/hermes-agent:v2026.5.16" }, { "id": "hermes-proxy.caddy", "type": "image", "path": "extensions/services/hermes-proxy/compose.yaml", "value": "caddy:2.11.3-alpine" }, { "id": "langfuse.web", "type": "image", "path": "extensions/services/langfuse/compose.yaml.disabled", "value": "langfuse/langfuse:3.159.0" }, { "id": "langfuse.worker", "type": "image", "path": "extensions/services/langfuse/compose.yaml.disabled", "value": "langfuse/langfuse-worker:3.159.0" }, { "id": "langfuse.postgres", "type": "image", "path": "extensions/services/langfuse/compose.yaml.disabled", "value": "postgres:17.9-alpine" }, { "id": "langfuse.clickhouse", "type": "image", "path": "extensions/services/langfuse/compose.yaml.disabled", "value": "clickhouse/clickhouse-server:26.2.4.23" }, { "id": "langfuse.redis", "type": "image", "path": "extensions/services/langfuse/compose.yaml.disabled", "value": "redis:7.4.8-alpine" }, { "id": "langfuse.minio", "type": "image", "path": "extensions/services/langfuse/compose.yaml.disabled", "value": "minio/minio:RELEASE.2025-09-07T16-13-09Z" }, { "id": "langfuse.minio-client", "type": "image", "path": "extensions/services/langfuse/compose.yaml.disabled", "value": "minio/mc:RELEASE.2025-08-13T08-35-41Z" }, { "id": "litellm.proxy", "type": "image", "path": "extensions/services/litellm/compose.yaml", "value": "ghcr.io/berriai/litellm:v1.81.3-stable" }, { "id": "llama-server.rocm-build", "type": "image", "path": "extensions/services/llama-server/Dockerfile.amd", "raw": "rocm/dev-ubuntu-24.04:${ROCM_VERSION}-complete", "value": "rocm/dev-ubuntu-24.04:7.2-complete" }, { "id": "llama-server.lemonade-runtime", "type": "image", "path": "extensions/services/llama-server/Dockerfile.amd", "raw": "${LEMONADE_SERVER_IMAGE}", "value": "ghcr.io/lemonade-sdk/lemonade-server:v10.2.0" }, { "id": "n8n.app", "type": "image", "path": "extensions/services/n8n/compose.yaml", "value": "n8nio/n8n:2.6.4" }, { "id": "openclaw.app", "type": "image", "path": "extensions/services/openclaw/compose.yaml", "value": "ghcr.io/openclaw/openclaw:2026.3.8" }, { "id": "perplexica.app", "type": "image", "path": "extensions/services/perplexica/compose.yaml", "value": "itzcrazykns1337/perplexica:slim-latest@sha256:6e399abf4ff587822b0ef0df11f36088fb928e17ac61556fe89beb68d48c378e" }, { "id": "privacy-shield.python", "type": "image", "path": "extensions/services/privacy-shield/Dockerfile", "value": "python:3.11-slim" }, { "id": "qdrant.vector-db", "type": "image", "path": "extensions/services/qdrant/compose.yaml", "value": "qdrant/qdrant:v1.16.3" }, { "id": "searxng.search", "type": "image", "path": "extensions/services/searxng/compose.yaml", "value": "searxng/searxng:2026.3.8-a563127a2" }, { "id": "tailscale.sidecar", "type": "image", "path": "extensions/services/tailscale/compose.yaml", "value": "tailscale/tailscale:v1.96.5" }, { "id": "token-spy.python", "type": "image", "path": "extensions/services/token-spy/Dockerfile", "value": "python:3.12-slim" }, { "id": "tts.kokoro", "type": "image", "path": "extensions/services/tts/compose.yaml", "value": "ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.4" }, { "id": "whisper.cpu", "type": "image", "path": "extensions/services/whisper/compose.yaml", "raw": "${WHISPER_IMAGE:-ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cpu}", "value": "ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cpu" }, { "id": "whisper.nvidia", "type": "image", "path": "extensions/services/whisper/compose.nvidia.yaml", "raw": "${WHISPER_IMAGE:-ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cuda}", "value": "ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cuda" }, { "id": "macos.placeholder-api", "type": "image", "path": "installers/macos/docker-compose.macos.yml", "value": "busybox:1.36.1" }, { "id": "windows-amd-local.placeholder-api", "type": "image", "path": "installers/windows/docker-compose.windows-amd.local.yml", "value": "busybox:1.36.1" } ], "allow_latest": [ { "path": "installers/windows/docker-compose.windows-amd.yml", "value": "hello-world:latest", "reason": "Windows AMD placeholder service has replicas: 0 and never pulls or runs the image during normal operation." } ], "allow_local_images": [ { "path": "docker-compose.amd.yml", "value": "ods-lemonade-server:latest", "reason": "Local image built from extensions/services/llama-server/Dockerfile.amd by the AMD installer path." }, { "path": "docker-compose.arc.yml", "value": "ods-llama-sycl:local", "reason": "Local image built for Intel Arc SYCL experiments." }, { "path": "extensions/services/brave-search/compose.yaml", "value": "ods-brave-search:local", "reason": "Local extension image built from the adjacent Dockerfile." } ], "allow_variable_refs": [ { "path": "docker-compose.base.yml", "value": "${LLAMA_SERVER_IMAGE:-ghcr.io/ggml-org/llama.cpp:server-b9014}", "default": "ghcr.io/ggml-org/llama.cpp:server-b9014", "reason": "Core llama.cpp image can be overridden for testing, but the shipped default is locked." }, { "path": "docker-compose.nvidia.yml", "value": "${LLAMA_SERVER_IMAGE:-ghcr.io/ggml-org/llama.cpp:server-cuda-b9014}", "default": "ghcr.io/ggml-org/llama.cpp:server-cuda-b9014", "reason": "NVIDIA llama.cpp image can be overridden for testing, but the shipped default is locked." }, { "path": "docker-compose.cpu.yml", "value": "${LLAMA_SERVER_IMAGE:-ghcr.io/ggml-org/llama.cpp:server-b8248}", "default": "ghcr.io/ggml-org/llama.cpp:server-b8248", "reason": "CPU llama.cpp image can be overridden for testing, but the shipped default is locked." }, { "path": "docker-compose.intel.yml", "value": "${LLAMA_SERVER_IMAGE:-ghcr.io/ggml-org/llama.cpp:server-intel-b8248}", "default": "ghcr.io/ggml-org/llama.cpp:server-intel-b8248", "reason": "Intel llama.cpp image can be overridden for testing, but the shipped default is locked." }, { "path": "docker-compose.arc.yml", "value": "${LLAMA_ARC_IMAGE:-ods-llama-sycl:local}", "default": "ods-llama-sycl:local", "reason": "Intel Arc uses a local SYCL image by default and can be overridden for experiments." }, { "path": "extensions/services/hermes/compose.yaml", "value": "${HERMES_AGENT_IMAGE:-nousresearch/hermes-agent:v2026.5.16}", "default": "nousresearch/hermes-agent:v2026.5.16", "reason": "Hermes Agent image can be overridden for upstream registry hotfixes, but the shipped default is locked." }, { "path": "extensions/services/llama-server/Dockerfile.amd", "value": "rocm/dev-ubuntu-24.04:${ROCM_VERSION}-complete", "arg": "ROCM_VERSION", "default": "7.2", "reason": "ROCm builder image follows the Dockerfile ARG default unless an operator intentionally overrides it." }, { "path": "extensions/services/llama-server/Dockerfile.amd", "value": "${LEMONADE_SERVER_IMAGE}", "arg": "LEMONADE_SERVER_IMAGE", "default": "ghcr.io/lemonade-sdk/lemonade-server:v10.2.0", "reason": "AMD runtime image is overrideable for hotfix testing while the default stays locked." }, { "path": "extensions/services/whisper/compose.yaml", "value": "${WHISPER_IMAGE:-ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cpu}", "default": "ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cpu", "reason": "Whisper CPU image can be overridden by operators, but the shipped default is locked." }, { "path": "extensions/services/whisper/compose.nvidia.yaml", "value": "${WHISPER_IMAGE:-ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cuda}", "default": "ghcr.io/speaches-ai/speaches:0.9.0-rc.3-cuda", "reason": "Whisper CUDA image can be overridden by operators, but the shipped default is locked." } ] }