Frigate

Local NVR with real-time AI object detection

Home Automation ★ 36.1k stars Hard setup MIT

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