Files
ProxMenux/oci/catalog/apps/frigate.json
T
MacRimiandClaude Opus 5.5 4437a671d2 ProxMenux 1.2.6.2-beta: OCI containers in the Monitor, docs and fixes
OCI manager Apps
- App tab: containers installed from an OCI image are identified from their
  installation record; the application and image versions are shown and an
  update is detected by image digest; repository link; Refresh data.
- Updates tab for OCI containers: Update and Recreate run the same flow as the
  OCI menu in the Monitor terminal; the pre-update backup can be kept in a
  backup storage; scheduled image updates with an optional minimum age.
- Logs tab: console output of the application, kept on the host
  (lxc.console.logfile + logrotate) and followed live.
- The Proxmox console opens a shell (cmode: shell) when the image has one.
- A damaged image download is fetched again before failing.
- Multi-container applications open at their LAN address; volume mount
  points on block storage report their usage.

Monitor
- Proxmox notifications are delivered to a loopback-only HTTP listener when
  HTTPS is enabled, so they no longer fail certificate verification.
- Log persistence counts recurring patterns only; an ended burst is not
  reported as persistent and its warning clears on its own (#386).
- Proxmox notification config backups are deduplicated and capped at three.
- The update icon on the Apps page opens the container on its Updates tab.
- Version 1.2.6.2-beta and its release notes in every Monitor language.

Docs
- OCI manager Apps and Audit & Report rebuilt as per-page message files,
  with a new page for OCI containers in the Monitor.
- Seven pages fixed where rich-text tags were missing from t.rich.

Translations
- Spanish fixes across the OCI engine, the Monitor and the TUI menus.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 21:51:12 +02:00

1131 lines
36 KiB
JSON

{
"schema_version": "0.5.0",
"kind": "proxmenux.oci-template",
"id": "image-frigate",
"status": "laboratory-validated",
"catalog_ui": {
"title": {
"en_US": "Frigate"
},
"tagline": {
"en_US": "NVR with optional VA-API video acceleration and hardware object detectors"
},
"description": {
"en_US": "Frigate adapted as a native Proxmox OCI LXC with persistent configuration, selectable recording storage, tmpfs cache and optional GPU or detector devices."
},
"category": "nvr",
"category_label": "NVR & Cameras",
"author": "Frigate",
"developer": "Frigate",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/frigate.webp",
"thumbnail": null,
"screenshots": [],
"architectures": [
"amd64",
"arm64"
],
"launch": {
"scheme": "http",
"port": 5000,
"path": "/"
},
"website": "https://frigate.video/",
"documentation": "https://docs.frigate.video/",
"repository": "https://github.com/blakeblackshear/frigate",
"tips": [
"The template installs infrastructure only and never bundles cameras or a Frigate configuration file.",
"VA-API accelerates video decode/encode; it is separate from object detection with Coral, OpenVINO, ROCm or TensorRT.",
"The rolling stable image is kept intact. If unrelated native modules fail intermittently, validate host RAM and CPU stability before changing packages inside the image.",
"GPU passthrough is independent of Coral. Configure Frigate FFmpeg hwaccel_args using preset-vaapi or preset-nvidia; passing devices does not change existing camera configuration. NVIDIA channel workload validation pending."
],
"mini_changelog": [],
"display_version": null,
"updated_at": "2026-09-12"
},
"source": {
"provider": "frigate",
"repository": "https://github.com/blakeblackshear/frigate",
"revision": "37f338d5d6d0c8a117a262aacb7e6184660fd157",
"image_repository_url": "https://ghcr.io/blakeblackshear/frigate",
"readme_pushed_at": "2026-09-12T13:30:04Z",
"compose_sha256": "2aa1dc599c69aaac422305d0d653e3980080f2491ca74e615d08b0e9f402b722",
"generated_at": "2026-09-12T15:58:20+00:00",
"default_branch": "dev",
"readme_raw_url": "https://raw.githubusercontent.com/blakeblackshear/frigate/dev/README.md"
},
"container_contract": {
"service_name": "frigate",
"container_name": "frigate",
"image": {
"reference": "ghcr.io/blakeblackshear/frigate:stable",
"registry": "ghcr.io",
"repository": "ghcr.io/blakeblackshear/frigate",
"tag": "stable",
"digest": null,
"pull_policy": "resolve-rolling-stable-tag-to-architecture-digest-at-install"
},
"environment": [
{
"name": "TZ",
"example": "Europe/Madrid",
"required": true,
"sensitive": false,
"source": "official-compose-environment"
}
],
"volumes": [
{
"id": "volume-0",
"container_path": "/etc/localtime",
"compose_source_example": "/etc/localtime",
"read_only": true,
"required": true,
"installation_choice": [
"host-bind"
],
"default": "host-bind",
"managed_volume": {
"backup": false,
"default_size_gb": 1
}
},
{
"id": "volume-1",
"container_path": "/config",
"compose_source_example": "/DATA/AppData/$AppID/config",
"read_only": false,
"required": true,
"installation_choice": [
"managed-volume",
"host-bind"
],
"default": "managed-volume",
"managed_volume": {
"backup": true,
"default_size_gb": 8
}
},
{
"id": "volume-2",
"container_path": "/media/frigate",
"compose_source_example": "/mnt/oci-shared/recordings/frigate",
"read_only": false,
"required": true,
"installation_choice": [
"managed-volume",
"host-bind"
],
"default": "host-bind",
"managed_volume": {
"backup": false,
"default_size_gb": 100
}
}
],
"ports": [
{
"container_port": 8971,
"published_example": 8971,
"protocol": "tcp",
"required": true,
"proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat"
},
{
"container_port": 8554,
"published_example": 8554,
"protocol": "tcp",
"required": true,
"proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat"
},
{
"container_port": 8555,
"published_example": 8555,
"protocol": "tcp",
"required": true,
"proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat"
},
{
"container_port": 8555,
"published_example": 8555,
"protocol": "udp",
"required": true,
"proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat"
}
],
"related_services": [],
"restart": "unless-stopped",
"stop_grace_period": "30s",
"original_compose": "name: frigate\nservices:\n frigate:\n container_name: frigate\n image: ghcr.io/blakeblackshear/frigate:stable\n deploy:\n resources:\n reservations:\n memory: 256M\n devices:\n - /dev/bus/usb:/dev/bus/usb\n - /dev/apex_0:/dev/apex_0\n - /dev/video11:/dev/video11\n - /dev/dri/renderD128:/dev/dri/renderD128\n network_mode: bridge\n privileged: true\n ports:\n - target: 8971\n published: '8971'\n protocol: tcp\n - target: 8554\n published: '8554'\n protocol: tcp\n - target: 8555\n published: '8555'\n protocol: tcp\n - target: 8555\n published: '8555'\n protocol: udp\n restart: unless-stopped\n stop_grace_period: 30s\n shm_size: 512mb\n tmpfs:\n - /tmp/cache:size=1000000000\n volumes:\n - type: bind\n source: /etc/localtime\n target: /etc/localtime\n read_only: true\n - type: bind\n source: /DATA/AppData/$AppID/config\n target: /config\n - type: bind\n source: /DATA/Media\n target: /media/frigate\n"
},
"compose_stack": {
"project_name": "frigate",
"deployment_model": "one-native-oci-lxc-per-compose-service",
"user_experience": "single-application-install",
"main_service": "frigate",
"service_count": 1,
"services": [
{
"name": "frigate",
"image": "ghcr.io/blakeblackshear/frigate:stable",
"is_main": true,
"role": "frontend",
"vmid_offset": 0,
"depends_on": [],
"frontend_network": true,
"private_network": false,
"compose": {
"container_name": "frigate",
"image": "ghcr.io/blakeblackshear/frigate:stable",
"deploy": {
"resources": {
"reservations": {
"memory": "256M"
}
}
},
"devices": [
"/dev/bus/usb:/dev/bus/usb",
"/dev/apex_0:/dev/apex_0",
"/dev/video11:/dev/video11",
"/dev/dri/renderD128:/dev/dri/renderD128"
],
"network_mode": "bridge",
"privileged": true,
"ports": [
{
"target": 8971,
"published": "8971",
"protocol": "tcp"
},
{
"target": 8554,
"published": "8554",
"protocol": "tcp"
},
{
"target": 8555,
"published": "8555",
"protocol": "tcp"
},
{
"target": 8555,
"published": "8555",
"protocol": "udp"
}
],
"restart": "unless-stopped",
"stop_grace_period": "30s",
"shm_size": "512mb",
"tmpfs": [
"/tmp/cache:size=1000000000"
],
"volumes": [
{
"type": "bind",
"source": "/etc/localtime",
"target": "/etc/localtime",
"read_only": true
},
{
"type": "bind",
"source": "/DATA/AppData/$AppID/config",
"target": "/config"
},
{
"type": "bind",
"source": "/DATA/Media",
"target": "/media/frigate"
}
]
}
}
],
"top_level": {
"name": "frigate"
},
"networking": {
"frontend": "selected-proxmox-bridge",
"private_required": false,
"private_creation": "automatic-create-if-missing",
"private_address_allocation": "automatic-static-address-per-service",
"service_discovery": "private-addresses-with-compose-service-host-aliases",
"dependency_external_access": "disabled-unless-service-publishes-ports",
"prompt_user_for_private_network": false
},
"storage": [
{
"id": "frigate-volume-0",
"service": "frigate",
"container_path": "/etc/localtime",
"mode": "system-bind",
"user_selectable": false,
"backup": false,
"shared_with_other_lxc": false,
"source_path": "/etc/localtime",
"source_path_prompt": null
},
{
"id": "frigate-volume-1",
"service": "frigate",
"container_path": "/config",
"mode": "managed-volume",
"user_selectable": false,
"backup": true,
"shared_with_other_lxc": false,
"source_path": null,
"source_path_prompt": null
},
{
"id": "frigate-volume-2",
"service": "frigate",
"container_path": "/media/frigate",
"mode": "host-bind",
"user_selectable": true,
"backup": false,
"shared_with_other_lxc": true,
"source_path": null,
"source_path_prompt": "Host directory for frigate:/media/frigate"
}
],
"orchestration": {
"reserve_vmids_atomically": 1,
"start_order": [
"frigate"
],
"stop_order": [
"frigate"
],
"dependency_readiness": "compose-healthcheck-then-port-or-process-fallback",
"rollback_on_failure": "remove-new-rootfs-preserve-created-persistent-volumes"
},
"installer_inputs": {
"prompted": [
"stack_name",
"base_vmid",
"rootfs_storage",
"persistent_data_destinations",
"frontend_bridge",
"frontend_ipv4_mode"
],
"automatic": [
"dependent_vmids",
"private_bridge",
"private_subnet",
"private_service_addresses",
"compose_service_aliases",
"generated_secrets",
"dependency_start_and_stop_order"
],
"generated_secrets": []
}
},
"first_run": {
"endpoints": [
{
"label": "Frigate WebUI",
"scheme": "http",
"port": 5000,
"path": "/",
"source": "laboratory-validated-native-oci-endpoint"
},
{
"label": "go2rtc WebUI",
"scheme": "http",
"port": 1984,
"path": "/",
"source": "integrated-go2rtc-native-oci-endpoint"
}
],
"credentials": []
},
"proxmox": {
"runtime": "native-oci-lxc",
"technology_status": "proxmox-technology-preview",
"catalog": {
"replaces_discovered_ids": [
"frigate"
]
},
"defaults": {
"unprivileged": true,
"ostype": "auto-from-image",
"cores": 4,
"cpuset_requirement": "none-for-current-openvino-lxc-repair",
"memory_mb": 4096,
"swap_mb": 1024,
"rootfs_size_gb": 16,
"rootfs_storage": "local-lvm",
"volume_storage": "local-lvm",
"template_storage": "local",
"bridge": "vmbr0",
"ipv4": "dhcp",
"firewall": false,
"host_managed_network": true,
"onboot": false,
"features": [
"nesting=1"
],
"shutdown_timeout_seconds": 30
},
"image_metadata_policy": {
"entrypoint": "import-from-oci-image",
"cmd": "import-from-oci-image",
"environment": "import-image-env-then-apply-user-values",
"user": "import-from-oci-image",
"working_dir": "import-from-oci-image",
"stop_signal": "import-from-oci-image"
},
"adaptations": [
{
"id": "persistent-config-and-recording-storage",
"upstream_behavior": "Docker mounts /config and /media/frigate.",
"native_lxc_behavior": "Use a backup-enabled managed volume for /config and let the user choose a managed volume or host bind for /media/frigate.",
"reason": "Configuration is private state while recordings can be large shared data.",
"behavioral_impact": "Recordings are excluded from vzdump by default.",
"validation": "passed-laboratory-profile"
},
{
"id": "tmpfs-cache",
"upstream_behavior": "The official Compose mounts a bounded tmpfs at /tmp/cache.",
"native_lxc_behavior": "Create the equivalent size-limited LXC tmpfs mount.",
"reason": "Avoid persistent cache writes and preserve Frigate memory behavior.",
"behavioral_impact": "Cache is cleared on restart.",
"validation": "passed-laboratory-profile"
},
{
"id": "optional-vaapi-device",
"upstream_behavior": "Docker passes a selected /dev/dri render device.",
"native_lxc_behavior": "Resolve the host render GID and grant only the selected render device to the unprivileged LXC.",
"reason": "Frigate can hardware-accelerate video decode without making the LXC privileged.",
"behavioral_impact": "Requires host-specific device and GID validation.",
"validation": "passed-amd-radeonsi-laboratory-profile"
},
{
"id": "openvino-lxc-cpu-compatibility",
"upstream_behavior": "Frigate ships its detector runtime in the image.",
"native_lxc_behavior": "On amd64, ensure OpenVINO is at least 2026.1.0 and install that exact version with --no-deps only when the bundled runtime is older.",
"reason": "The 2025.4.1 CPU plugin bundled by Frigate 0.18 stable intermittently segfaults while compiling the default model inside an unprivileged LXC.",
"behavioral_impact": "Only the OpenVINO wheel is replaced; NumPy and every other image dependency remain unchanged.",
"validation": "passed-frigate-0.18.0-stable-amd64-three-starts-twenty-compiles"
}
],
"laboratory_contract": {
"requirements": {
"proxmox_min_version": "9.1",
"commands": [
"pct",
"pvesm",
"skopeo"
],
"features": [
"native-oci-lxc"
]
},
"deployment": {
"runtime": "proxmox-native-oci-lxc",
"unprivileged": true,
"entrypoint": "/init",
"working_directory": "/opt/frigate/",
"hostname_default": "frigate",
"onboot_default": false,
"startup_order_default": 30,
"startup_delay_seconds_default": 10,
"features": [
"nesting=1"
],
"ports": [
{
"port": 5000,
"protocol": "tcp",
"purpose": "native-oci-web-ui"
},
{
"port": 1984,
"protocol": "tcp",
"purpose": "integrated-go2rtc-web-ui-api"
},
{
"port": 8554,
"protocol": "tcp",
"purpose": "rtsp-restream"
},
{
"port": 8555,
"protocol": "tcp",
"purpose": "webrtc"
},
{
"port": 8555,
"protocol": "udp",
"purpose": "webrtc"
}
],
"entrypoint_override": "explicit-validated-image-command",
"entrypoint_source": "validated-lxc-oci-profile"
},
"defaults": {
"resources": {
"cores": 4,
"memory_mb": 4096,
"swap_mb": 1024,
"rootfs_size_gb": 16
},
"network": {
"bridge": "vmbr0",
"ipv4_mode": "dhcp",
"ipv4_address": null,
"ipv4_gateway": null,
"firewall": false,
"host_managed": true
},
"environment": {
"TZ": "Europe/Madrid",
"LIBVA_DRIVER_NAME": null
}
},
"configuration_schema": {
"vmid": {
"type": "integer",
"required": false,
"default": null,
"description": "Identificador manual o siguiente VMID libre si se omite."
},
"hostname": {
"type": "string",
"required": true,
"default": "frigate",
"validation": {
"pattern": "^[a-z0-9][a-z0-9-]{0,62}$"
}
},
"rootfs_storage": {
"type": "storage-selector",
"required": true,
"content_types": [
"rootdir"
]
},
"rootfs_size_gb": {
"type": "integer",
"required": true,
"default": 16,
"minimum": 8
},
"cores": {
"type": "integer",
"required": true,
"default": 4,
"minimum": 2
},
"memory_mb": {
"type": "integer",
"required": true,
"default": 4096,
"minimum": 2048
},
"swap_mb": {
"type": "integer",
"required": true,
"default": 1024,
"minimum": 0
},
"bridge": {
"type": "network-bridge-selector",
"required": true,
"default": "vmbr0"
},
"ipv4_mode": {
"type": "select",
"required": true,
"default": "dhcp",
"options": [
"dhcp",
"static"
]
},
"ipv4_address": {
"type": "cidr",
"required_when": {
"field": "ipv4_mode",
"equals": "static"
}
},
"ipv4_gateway": {
"type": "ipv4",
"required_when": {
"field": "ipv4_mode",
"equals": "static"
}
},
"config_storage": {
"type": "storage-selector",
"required": true,
"content_types": [
"rootdir"
],
"description": "Volumen persistente e independiente para /config."
},
"config_size_gb": {
"type": "integer",
"required": true,
"default": 8,
"minimum": 2
},
"media_storage_mode": {
"type": "select",
"required": true,
"default": "host-bind",
"options": [
"managed-volume",
"host-bind",
"rootfs"
],
"description": "Destino persistente de /media/frigate."
},
"media_storage": {
"type": "storage-selector",
"required_when": {
"field": "media_storage_mode",
"equals": "managed-volume"
},
"content_types": [
"rootdir"
]
},
"media_size_gb": {
"type": "integer",
"required_when": {
"field": "media_storage_mode",
"equals": "managed-volume"
},
"default": 100,
"minimum": 10
},
"media_host_path": {
"type": "host-directory",
"required_when": {
"field": "media_storage_mode",
"equals": "host-bind"
},
"default": "/mnt/oci-shared/recordings/frigate/ct${vmid}",
"create_if_missing": true,
"description": "Host path that can be shared with other containers."
},
"cache_size_mb": {
"type": "integer",
"required": true,
"default": 1024,
"minimum": 256
},
"gpu_enabled": {
"type": "boolean",
"required": true,
"default": true
},
"gpu_render_device": {
"type": "host-device-selector",
"required_when": {
"field": "gpu_enabled",
"equals": true
},
"default": "/dev/dri/renderD128",
"filter": "/dev/dri/renderD*"
},
"vaapi_driver": {
"type": "select",
"required": false,
"default": "auto",
"options": [
"auto",
"radeonsi",
"iHD",
"i965"
]
},
"timezone": {
"type": "timezone",
"required": true,
"default": "Europe/Madrid"
},
"onboot": {
"type": "boolean",
"required": true,
"default": false
},
"openvino_cpu_compatibility": {
"type": "boolean",
"required": false,
"default": false,
"hidden": true,
"description": "Reservado para una futura adaptacion validada en hardware estable; no modifica la imagen oficial."
}
},
"mounts": [
{
"id": "config",
"container_path": "/config",
"source": "managed-volume",
"storage_field": "config_storage",
"size_field": "config_size_gb",
"backup": true,
"required": true
},
{
"id": "media",
"container_path": "/media/frigate",
"source_field": "media_storage_mode",
"storage_field": "media_storage",
"size_field": "media_size_gb",
"host_path_field": "media_host_path",
"backup": false,
"required": false
},
{
"id": "cache",
"container_path": "/tmp/cache",
"source": "tmpfs",
"size_field": "cache_size_mb",
"mount_options": [
"rw",
"noexec",
"nosuid",
"nodev"
],
"required": true
}
],
"devices": [
{
"id": "gpu-render",
"enabled_field": "gpu_enabled",
"host_path_field": "gpu_render_device",
"container_path": "/dev/dri/renderD128",
"permissions": "rwm",
"optional": true
}
],
"environment": [
{
"name": "TZ",
"value_from": "timezone"
},
{
"name": "LIBVA_DRIVER_NAME",
"value_from": "vaapi_driver",
"omit_when": "auto"
}
],
"compatibility": {
"openvino_cpu": {
"enabled_field": "openvino_cpu_compatibility",
"status": "pending-validation-on-stable-hardware",
"runtime_policy": "preserve-official-image-runtime",
"automatic_internal_configuration": false,
"description": "No se aplica ninguna sustitucion de paquetes mientras la prueba del host presente errores de memoria."
}
},
"healthcheck": {
"type": "http",
"port": 5000,
"path": "/api/version",
"verify_tls": true,
"interval_seconds": 30,
"timeout_seconds": 10,
"retries": 10,
"start_period_seconds": 120
},
"boundaries": {
"bundles_internal_configuration": false,
"bundles_credentials": false,
"bundles_user_data": false,
"installer_must_not_write_config_yaml": true
},
"notes": [
"Esta plantilla describe la instalacion OCI y su infraestructura persistente.",
"La configuracion funcional de Frigate se realiza despues desde la aplicacion.",
"La WebUI validada para el LXC OCI nativo se publica como http://IP:5000.",
"La imagen incluye go2rtc 1.9.14 y su WebUI/API queda disponible como http://IP:1984.",
"Frigate stable 0.18.0 en amd64 incluye un wheel de Pandas 2.2.3 que provoca SIGSEGV en el Ryzen 7 5700U del laboratorio; el instalador comprueba el import y solo si falla reinstala la misma version desde PyPI.",
"La configuracion inicial de Frigate 0.18 activa OpenVINO CPU. La version 2025.4.1 incluida falla de forma intermitente al compilar el modelo dentro de LXC; en amd64 el instalador asegura OpenVINO 2026.1.0 con --no-deps y conserva NumPy 1.26.4.",
"El modo host-bind permite compartir el almacenamiento multimedia del host entre varios LXC OCI.",
"La opcion rootfs para multimedia es solo adecuada para pruebas breves.",
"La GPU es opcional; el instalador debe validar el dispositivo antes de arrancar el contenedor."
]
},
"application_options": {
"video_acceleration": {
"selectable": true,
"profiles": [
"none",
"vaapi"
],
"validated_profile": "amd-radeonsi-vaapi"
},
"object_detector": {
"selectable": true,
"profiles": [
"cpu",
"coral",
"openvino",
"rocm",
"tensorrt"
],
"openvino": {
"available": true,
"laboratory_validated": false,
"validated_device": "CPU",
"observed_inference_ms": 13.92,
"configuration_location": "/config/config.yaml",
"installer_writes_detector_configuration": false,
"runtime_policy": "preserve-official-image-runtime",
"current_stable_validation": "blocked-by-host-memory-failure",
"compatibility_workaround": null
},
"configuration_owned_by_user": true,
"warning": "Video acceleration and object detection are independent choices; the installer does not write camera or detector YAML."
}
},
"installer_profile": {
"pre_start_repairs": [],
"startup_healthcheck": {
"type": "http",
"scheme": "http",
"port": 5000,
"path": "/api/config",
"timeout_seconds": 120,
"request_timeout_seconds": 3,
"stability_seconds": 0,
"verify_tls": true,
"required": true
},
"host_bind_policies": {
"/media/frigate": {
"create_if_missing": true,
"purpose": "large-recording-storage-outside-native-lxc-backup"
}
},
"tmpfs_mounts": [
{
"id": "frigate-cache",
"container_path": "/tmp/cache",
"default_size_mb": 1024,
"minimum_size_mb": 256,
"size_prompt": "Size of the Frigate temporary cache in MB",
"mount_options": [
"rw",
"noexec",
"nosuid",
"nodev"
]
}
],
"optional_devices": [
{
"id": "coral-pcie",
"kind": "character-device",
"enable_prompt": "Add a Coral PCIe/M.2 device?",
"enabled_default": false,
"path_prompt": "Coral PCIe/M.2 node (e.g. /dev/apex_0)",
"host_path_default": "/dev/apex_0",
"container_path_strategy": "same-as-host",
"mode": "0660",
"deny_write": false,
"gid_strategy": "host-device-gid"
}
],
"version_aware_adaptations": {},
"hardware_acceleration": {
"prompt": "Hardware acceleration for Frigate",
"default": "none",
"profiles": [
{
"id": "none",
"label": "No acceleration (CPU)",
"image": {
"reference": "ghcr.io/blakeblackshear/frigate:stable",
"registry": "ghcr.io",
"repository": "ghcr.io/blakeblackshear/frigate",
"tag": "stable",
"digest": null,
"pull_policy": "resolve-rolling-stable-tag-to-architecture-digest-at-install"
},
"device_requests": []
},
{
"id": "vaapi",
"label": "Intel/AMD VA-API",
"image": {
"reference": "ghcr.io/blakeblackshear/frigate:stable",
"registry": "ghcr.io",
"repository": "ghcr.io/blakeblackshear/frigate",
"tag": "stable",
"digest": null,
"pull_policy": "resolve-rolling-stable-tag-to-architecture-digest-at-install"
},
"device_requests": [
{
"id": "gpu-render",
"path_prompt": "GPU render device",
"host_path_default": "/dev/dri/renderD128",
"mode": "0660",
"deny_write": false,
"gid_strategy": "host-device-gid",
"kind": "character-device",
"container_path_strategy": "same-as-host",
"drm_vendor_ids": [
"0x8086",
"0x1002"
]
}
]
},
{
"id": "nvidia",
"label": "NVIDIA (NVDEC/CUDA)",
"architectures": [
"amd64"
],
"image": {
"reference": "ghcr.io/blakeblackshear/frigate:stable-tensorrt",
"registry": "ghcr.io",
"repository": "ghcr.io/blakeblackshear/frigate",
"tag": "stable-tensorrt",
"digest": null,
"pull_policy": "resolve-rolling-stable-tag-to-architecture-digest-at-install"
},
"device_requests": [
{
"id": "nvidia-runtime",
"kind": "nvidia-runtime",
"purpose": "nvidia-video",
"device_selection": "all-requested-by-compose"
}
],
"environment": [
{
"name": "NVIDIA_VISIBLE_DEVICES",
"value": "all"
},
{
"name": "NVIDIA_DRIVER_CAPABILITIES",
"value": "compute,video,utility"
}
]
}
]
},
"gpu_validation": {
"device_inventory": "host-sysfs-and-stat",
"application_acceleration": "requires-workload-test",
"tone_mapping": "not-implied-by-device-access"
}
},
"image_channel_policy": {
"channel": "stable",
"rolling": true,
"version_pinned": false,
"reason": "Frigate publishes stable as its official rolling production tag and does not publish latest.",
"official_reference": "https://docs.frigate.video/frigate/installation/"
}
},
"compatibility": {
"automatic_install_candidate": true,
"validated": true,
"supported_compose_keys": [
"container_name",
"environment",
"image",
"ports",
"restart",
"stop_grace_period",
"volumes"
],
"untranslated_blockers": [],
"policy": "The native single-LXC installation path translates persistent storage, the bounded tmpfs cache and optional VA-API device mapping. Frigate cameras and detector configuration remain owned by the user. The rolling stable image and its bundled Python runtime are preserved without package replacement."
},
"validation": {
"schema": "passed-at-generation",
"validated_profile": {
"id": "pve55-amd-vaapi-openvino",
"description": "Reproducible profile based on a validated working deployment.",
"validated_on": "2026-08-26",
"validation_status": "passed",
"image": {
"repository": "blakeblackshear/frigate",
"tag": "0.17.1",
"architecture": "amd64"
},
"container": {
"ostype": "debian",
"cmode": "console",
"unprivileged": true,
"entrypoint": "/init",
"working_directory": "/opt/frigate/",
"halt_signal": "SIGTERM",
"features": [
"nesting=1"
],
"onboot": false
},
"resources": {
"cores": 4,
"cpuset": "0-3",
"cpuset_requirement": "must-include-cpu0",
"memory_mb": 4096,
"swap_mb": 1024,
"rootfs_storage": "local-lvm",
"rootfs_size_gb": 16
},
"network": {
"interface": "eth0",
"type": "veth",
"bridge": "vmbr0",
"ipv4_mode": "dhcp",
"host_managed": true,
"firewall": false
},
"storage": {
"config": {
"mode": "managed-volume",
"storage": "local-lvm",
"size_gb": 8,
"container_path": "/config",
"backup": true
},
"media": {
"mode": "host-bind",
"host_path_template": "/mnt/oci-shared/frigate/ct${vmid}/media",
"container_path": "/media/frigate",
"backup": false,
"create_if_missing": true,
"pre_start_check": {
"type": "host-mountpoint",
"path": "/mnt/oci-shared",
"failure_mode": "abort-start"
}
},
"cache": {
"mode": "tmpfs",
"size_mb": 1024,
"container_path": "/tmp/cache",
"mount_options": [
"rw",
"nosuid",
"nodev"
]
}
},
"gpu": {
"enabled": true,
"host_path": "/dev/dri/renderD128",
"container_path": "/dev/dri/renderD128",
"mode": "0660",
"gid_strategy": "resolve-render-group-on-host",
"validated_host_gid": 993,
"vaapi_driver": "radeonsi"
},
"environment_overrides": {
"TZ": "Europe/Madrid",
"LIBVA_DRIVER_NAME": "radeonsi"
},
"preserve_image_environment": true,
"openvino": {
"enabled": true,
"device": "CPU",
"package": "openvino==2026.1.0",
"installed_version": "2026.1.0-21367-63e31528c62-releases/2026/1",
"installation_scope": "oci-rootfs",
"install_command": [
"python3",
"-m",
"pip",
"install",
"--no-cache-dir",
"--break-system-packages",
"openvino==2026.1.0"
],
"detector_configuration_managed_by_installer": false,
"reason": "Evita el fallo del plugin CPU de la version OpenVINO incluida originalmente en Frigate 0.17.1 bajo LXC."
},
"validation": {
"web_ui": "healthy",
"gpu_vaapi": "passed",
"persistent_config": "passed",
"persistent_media": "passed",
"tmpfs_cache": "passed",
"openvino_cpu": "passed",
"real_streams": "passed",
"openvino_inference_ms_observed": 13.92,
"cpu_detector_inference_ms_observed": 21.23
}
},
"stable_validation": {
"validated_on": "2026-09-13",
"host": "pve55-amd-ryzen-7-5700u",
"image": {
"tag": "stable",
"version": "0.18.0-77a66e7",
"digest": "sha256:9678a83a76e4730ac7d9ea7428370e32ae656d6b312aaad30d6c69f3fef14d35"
},
"status": "blocked-by-host-hardware-instability",
"observed_failure": {
"result": "intermittent-native-faults-across-openvino-shapely-pandas-pvesh-and-perl",
"host_memtester": "failed-possible-bad-address-line",
"storage_health": "nvme-smart-passed-zero-media-errors"
},
"verification": {
"clean_install": "invalid-until-host-memory-is-repaired",
"official_runtime_preserved": true
}
},
"source_profile": "frigate-oci.json",
"automatic_installer_translation": {
"persistent_config": "covered",
"recording_storage": "covered-managed-volume-or-created-host-bind",
"tmpfs_cache": "covered-native-lxc-mount-entry",
"vaapi_device": "covered-native-proxmox-dev-property-with-host-gid",
"openvino_stable": "preserve-official-image-runtime-pending-healthy-host-validation",
"clean_install_stable": "blocked-by-confirmed-host-memory-error"
},
"stable_channel_image": "pending-revalidation-after-host-memory-repair"
},
"lifecycle": {
"update_strategy": "resolve-stable-image-then-replace-rootfs-preserve-/config-and-selected-/media/frigate-storage",
"registry_state": {
"resolved_architecture": null,
"resolved_digest": null,
"image_version_label": null,
"image_created": null
},
"change_detection": "compare-source-revision-and-resolved-stable-image-digest",
"automatic_unattended_updates": false,
"validated_workflows": {
"install": [
"validate-requirements",
"resolve-options",
"pull-oci-image",
"create-container",
"attach-persistent-storage",
"attach-optional-devices",
"apply-runtime-environment",
"apply-optional-compatibility",
"start-container",
"wait-for-healthcheck"
],
"update": [
"stop-container",
"backup-container-definition",
"pull-oci-image",
"recreate-rootfs-preserving-mounts",
"start-container",
"wait-for-healthcheck"
],
"uninstall": {
"remove_rootfs": true,
"preserve_config_by_default": true,
"preserve_media_by_default": true
}
}
}
}