Frigate
Local NVR with real-time AI object detection
Frigate is a local network video recorder with real-time AI object detection optimized for use with Home Assistant. It targets users wanting private, intelligent camera monitoring. It is deployed via Docker.
Key features
- Real-time AI object detection
- Coral TPU acceleration support
- Tight Home Assistant integration
- Local-only processing
Pros & cons
Strengths
- Smart local NVR
- Great with Home Assistant
- Privacy-friendly
Trade-offs
- Benefits from a TPU
- Configuration is involved
Frigate replaces
Last reviewed Aug 26, 2026 · 860 words
Decide on the detector before you buy a single camera. Frigate running object detection on CPU alone will handle 1 or 2 cameras at a crawl and keep the box at 100%; the same box with a Coral Edge TPU, an Intel iGPU through OpenVINO, or a small Nvidia card runs 8 or more at a few milliseconds per inference. Every other part of the setup (config, storage, Home Assistant) is solvable with patience. The wrong hardware is not, and it is the reason this is a Hard install with a 2 GB minimum rather than a weekend project.
The detector is the purchase decision
Four realistic options in 2026. A Coral USB accelerator is the classic choice, costs about 60 USD when you can find one, and needs a USB 3 port to perform (on USB 2 it works but slowly). An Intel CPU with an integrated GPU, which includes the N100 mini PCs everyone buys for a homelab, runs the OpenVINO detector with nothing to purchase; this is my default recommendation for a new build. An Nvidia GPU uses the TensorRT detector and is overkill for under 10 cameras but sensible if the card is already there for another workload. Hailo-8 modules and Rockchip NPUs are supported too and matter mainly for Raspberry Pi and ARM boards. Decode is a separate question from detection: give ffmpeg a hardware preset (preset-vaapi on Intel, preset-nvidia on Nvidia) or the CPU will spend more on unpacking H.264 than on detecting anything.
Detect on the substream, record the main stream
Frigate wants two feeds per camera. Detection runs on a low-resolution substream at 5 frames per second, which is plenty for finding a person; recording keeps the full-resolution main stream. Nearly every camera exposes both over RTSP. A config that reflects that split, with a Coral and MQTT for Home Assistant:
mqtt:
host: mqtt.lan
detectors:
coral:
type: edgetpu
device: usb
ffmpeg:
hwaccel_args: preset-vaapi
cameras:
driveway:
ffmpeg:
inputs:
- path: rtsp://user:[email protected]:554/stream2
roles: [detect]
- path: rtsp://user:[email protected]:554/stream1
roles: [record]
detect:
width: 640
height: 360
fps: 5
record:
enabled: true
retain:
days: 7
mode: motion
objects:
track: [person, car]
Swap the detectors block for type: openvino with a model: section copied from the docs if you are on Intel. The catalogue's "configuration is involved" is fair: expect to spend an evening per camera getting stream paths, resolutions and masks right, and use the bundled go2rtc restreamer so each camera is pulled once and shared, rather than opening 3 connections to a device that can only serve 2.
Storage: do the sum per camera before buying disks
A 1080p main stream at 4 Mbps is about 43 GB per day if you record continuously. Four cameras at 7 days is 1.2 TB, and that is before snapshots and clips. mode: motion keeps only segments with motion and cuts that by 60 to 90% on a quiet driveway, while still giving you full context around events. Put /media/frigate on a spinning disk or a dedicated SSD, not the boot drive, and set shm_size in the compose file to at least 256 MB; the default 64 MB is the most common cause of Frigate falling over with more than 2 cameras.
Home Assistant sees everything through MQTT
Frigate publishes every event, zone entry and object count to an MQTT broker, and the Home Assistant integration (installed via HACS) subscribes to turn them into cameras, binary sensors and media. There is no shortcut: you need a broker, either Mosquitto or EMQX, and both are a 5-line compose service. Once wired, "person in driveway after 22:00" becomes a 3-condition automation, and Frigate's clips and snapshots appear in the HA media browser. If HA is new to you as well, get through the first month before adding cameras; debugging two unfamiliar systems at once is how people give up.
Port 8971 is for you, port 5000 is for Home Assistant
Frigate serves an authenticated UI on 8971 and an unauthenticated one on 5000. The second exists for internal integrations on a trusted network, and publishing it to the internet hands strangers live views of your house. Expose 8971 only, ideally only over your VPN, and point the HA integration at 5000 across the Docker network. Frigate+ (about 50 USD a year at last check) sells a model trained on your own submitted images and cuts false positives noticeably; it is optional, and the free models are good enough for person and car.
What I'd do
An Intel N100 mini PC with 16 GB of RAM, OpenVINO detection, VAAPI decode, a 2 TB SSD for recordings, and cameras that expose a 640x360 substream. Two cameras first, masks tuned, then the rest. Mosquitto next to it, the HACS integration in Home Assistant, retention at 7 days motion-only, and port 8971 reachable only over Tailscale. That build handles 6 cameras comfortably and never sends a frame to anyone's cloud.
Compare Frigate
5 head-to-head comparisons.
Similar home automation apps
Home Assistant
Home AutomationOpen-source home automation that puts privacy first
Replaces SmartThings, Google Home
ntfy
Home AutomationSend push notifications to your phone via simple HTTP
Replaces Pushover, Pushbullet
Homebridge
Home AutomationBring non-HomeKit smart devices into Apple Home
Replaces Apple HomeKit hubs
Tasmota
Home AutomationOpen-source firmware for ESP-based smart devices
Replaces Tuya Cloud
ThingsBoard
Home AutomationOpen-source IoT platform for device management and data
Replaces AWS IoT, Azure IoT
WLED
Home AutomationFirmware for controlling addressable LED strips
Replaces Philips Hue