9e8f1bbeed
Dashboard / frontend (push) Failing after 0s
Dashboard / api (push) Failing after 0s
Lint PowerShell / powershell-lint (ubuntu-latest) (push) Failing after 1s
Python Lint / Lint Python with Ruff (push) Failing after 1s
ShellCheck / Lint shell scripts (push) Failing after 1s
Matrix Smoke / linux-smoke (push) Failing after 1s
Matrix Smoke / distro: cachyos (push) Failing after 15s
Matrix Smoke / distro: linux-mint-21.3 (push) Failing after 15s
Matrix Smoke / distro: debian-12 (push) Failing after 5m21s
Matrix Smoke / distro: fedora-41 (push) Failing after 4m56s
Matrix Smoke / distro: ubuntu-24.04 (push) Failing after 2m13s
Matrix Smoke / distro: rocky-9 (push) Failing after 10m39s
Matrix Smoke / distro: manjaro (push) Failing after 12m11s
Matrix Smoke / distro: opensuse-tw (push) Failing after 11m53s
Matrix Smoke / distro: archlinux (push) Failing after 20m3s
Matrix Smoke / distro: ubuntu-22.04 (push) Failing after 13m49s
Validate .env Schema / tier-1-env-validation (push) Successful in 52s
Validate .env Schema / tier-2-env-validation (push) Successful in 44s
Validate .env Schema / tier-3-env-validation (push) Successful in 52s
Validate .env Schema / tier-4-env-validation (push) Successful in 51s
Validate Extensions Catalog / Check catalog is up-to-date (push) Failing after 9m47s
Secret Scan / Scan for secrets (push) Failing after 21m4s
Validate Docker Compose / Validate Docker Compose files (push) Has been cancelled
Python Type Check / Type check with mypy (push) Has been cancelled
Validate .env Schema / tier-0-env-validation (push) Has been cancelled
Test Linux / integration-smoke (push) Has been cancelled
Lint PowerShell / powershell-lint (windows-latest) (push) Has been cancelled
Matrix Smoke / macos-smoke (push) Has been cancelled
344 lines
12 KiB
JSON
344 lines
12 KiB
JSON
{
|
|
"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."
|
|
}
|
|
]
|
|
}
|