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)
- Install drivers:
sudo apt install -y intel-media-va-driver vainfo sudo usermod -aG video $(whoami) reboot # Or log out/in for group changes - Add device to compose:
devices: - /dev/dri/renderD128:/dev/dri/renderD128 - 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
vainfoon 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!