UNDER CONSTRUCTION

Frigate NVR

Frigate is an open source, self hosted, network video recorder. I’ve been using it for several years with my home security cameras along with Home Assistant. I originally ran Frigate in a Docker container alongside my other services. When I converted to ProxMox I quickly spun up Frigate in an LXC using one of the TTeck Proxmox Helper Scripts. RIP. Then for the sake of my own learning/tourture, I built and configured my own LXC to run Frigate.

I’ve decided to run return to the supported Docker configuration of Frigate for stability and run it on this NAS for a possible performance boost.

Frigate Directories

Frigate Compose File

The Frigate container does not support the PUID or PGID variables and must run as root. For this reason, I did not set an “appuser” as outlined in the omv-extras documentation. Consider the security implications this may have on your system.

The Frigate docs include an example compose file to get started. I’ve been running Frigate for awhile so I already have one that works great for me. I’ve included a sanitized copy of it here with some comments.

services:
  frigate:
    container_name: frigate
    restart: unless-stopped # Removed privileged flag
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "64mb" # Default size, re evaluated with formula if more cams added
    devices:
      - /dev/bus/usb:/dev/bus/usb # Passes the USB Coral
      - /dev/dri/renderD128:/dev/dri/renderD128 # Passes Intel GPU
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config # Bind mount for config. Uses appdata folder on OMV
      - /data/frigate:/media/frigate # Bind mount for footage. Uses share on OMV NAS
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache # Left default, may need to be evaluated for location
        tmpfs:
          size: 1000000000
    ports:
      - "8971:8971"
      - "5000:5000" # Internal unauthenticated access. Expose carefully. (Enabled/disabled as needed for trouble shooting)
      - "8554:8554" # RTSP feeds
      - "8555:8555/tcp" # WebRTC over tcp
      - "8555:8555/udp" # WebRTC over udp
      - "1984:1984" # Go2Rtc
    environment: # Removed  LIBVA_DRIVER_NAME: "radeonsi" env var. Previous GPU was AMD.
      FRIGATE_RTSP_PASSWORD: "password" # Using real password, this is the sanitized version
    cap_add: # Needed for GPU/performance monitoring with unprivileged container
      - CAP_PERFMON

Posted: December 20, 2024.