Frigate is an advanced open-source NVR with AI detection—fast, accurate, and highly tunable. Here’s how to deploy Frigate on Docker, covering CPU, Google Coral, and Intel iGPU (hardware acceleration) setups for best performance.

Prerequisites

  • Linux server (x86, ARM, or x86 with iGPU)
  • Docker and Docker Compose (install guide)
  • At least one RTSP/RTMP/HTTP camera
  • SSD/fast storage recommended

1. Create Project Directory

mkdir -p ~/frigate && cd ~/frigate

2. Sample docker-compose.yml

Start with this as docker-compose.yml (supports CPU, Coral, or Intel iGPU with config tweaks):

version: '3.9'
services:
  frigate:
    container_name: frigate
    image: blakeblackshear/frigate:stable
    privileged: true
    shm_size: '512mb'
    environment:
      - FRIGATE_RTSP_PASSWORD=yourCameraPassword
    volumes:
      - ./config:/config
      - ./media:/media
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "5000:5000" # Web UI
      - "1935:1935" # RTMP (optional)
    restart: unless-stopped
#    devices:
#      - /dev/bus/usb:/dev/bus/usb        # For USB Coral
#      - /dev/dri/renderD128:/dev/dri/renderD128 # For Intel iGPU

Uncomment only one of the devices sections below, per your hardware.

For Google Coral TPU (USB/PCIe)

Uncomment/add:

    devices:
      - /dev/bus/usb:/dev/bus/usb  # USB Coral
# For PCIe, add:
#      - /dev/apex_0:/dev/apex_0

Frigate will detect and use it automatically for AI detection.

For Intel iGPU (Quick Sync, VAAPI/QSV)

  1. Install drivers:
    sudo apt install -y intel-media-va-driver vainfo
    sudo usermod -aG video $(whoami)
    reboot   # Or log out/in for group changes
    
  2. Add device to compose:
     devices:
       - /dev/dri/renderD128:/dev/dri/renderD128
    
  3. Set Frigate config for hwaccel

3. Create Frigate Config

Place at config/config.yml. Example for iGPU (VAAPI):

detect:
  hwaccel_args: preset-vaapi
mqtt:
  host: mqtt.example.com
  user: mqttuser
  password: mqttpass
cameras:
  cam1:
    ffmpeg:
      inputs:
        - path: rtsp://user:password@<CAMERA_IP>/h264
          roles:
            - detect
    detect:
      width: 1280
      height: 720
      fps: 5
record:
  enabled: True

See Frigate docs for Coral, QSV, and VAAPI.

CPU-Only? No hardware setup needed—leave devices: blank and omit hwaccel_args for CPU detection (least efficient).

4. Start Frigate

docker-compose up -d

Access UI: http://your-server-ip:5000/

5. Performance & Troubleshooting

  • Check Frigate logs (docker logs frigate) for hardware detection.
  • Use vainfo on host to verify iGPU detection (if using VAAPI).
  • For Coral: check dmesg | grep coral.
  • Got “no decoder surfaces” or “Not a supported Intel GPU”? Make sure your processor supports Quick Sync (6th gen+ Intel Core recommended).

6. Security Checklist

  • NEVER expose port 5000 to the internet.
  • Use strong passwords and separate VLANs for cameras.
  • Backup configs/media.

Resources

Questions, HW issues, or want automation recipes? Just ask!