How to build a Frigate NVR: the low-power hardware that runs it
Short answer: an Intel N100 or N150 mini PC using its iGPU through OpenVINO. Coral, Hailo or an old NVIDIA card also work. What I run, and the install.
On this page
Amazon links are affiliate links: as an Amazon Associate I earn from qualifying purchases, at no extra cost to you. Links to makers' own stores and other retailers are plain links that earn me nothing.
For most homes, build Frigate on a small Intel N100 or N150 mini PC and let its iGPU do detection through OpenVINO. A Google Coral, a Hailo-8L module or an older NVIDIA card are the other ways to give Frigate a detector, and I go through each below using what Frigate’s own docs say about them. I run Frigate on an NVIDIA Tesla P4 in my Unraid server, and for some purposes it is overkill. Here’s how to build one, whether you are buying a box for it or repurposing an old PC.
Short version: a mini PC like the Beelink Mini S13 running detection on the Intel iGPU through OpenVINO, ONVIF/RTSP cameras on PoE (wired Reolink or Amcrest models), a dedicated SSD for recordings, and the Frigate integration in Home Assistant. Budget $300-500 for the server and $50-150 per camera. An old Intel-based mini PC or desktop does the same job for free if you already own one.
Hardware: what runs Frigate well
Frigate needs real compute to handle AI object detection in real time. Its load splits into two jobs: decoding the video streams, and running object detection on the decoded frames. Decoding wants hardware video acceleration, and Intel QuickSync on an Intel iGPU is the cheap, common way to get it. Detection wants an accelerator; CPU-only detection works, but it caps how many cameras and how much resolution you can sustain. Frigate itself is Linux software, normally run in Docker, so the host has to be a real x86 mini PC, a single-board computer or a server, and Frigate should live on that box rather than on a lightweight Home Assistant appliance like the Green.
Skip the Raspberry Pi - it’s not viable for anything beyond one or two cameras with basic motion detection. A Pi 5 with the Raspberry Pi AI HAT+ (a Hailo-8L at 13 TOPS or a Hailo-8 at 26 TOPS, from about $70) fixes the detection side but not the decode side, so it still tops out at a couple of low-resolution feeds.
For 4-8 cameras, a compact mini PC is the right balance of cost and capability. If you’d rather repurpose hardware you already own, see running Frigate on an old PC below. An N100 or N150-class box like the Beelink Mini S13 is the budget route; Frigate’s hardware page rates its N100 favorite, the Beelink EQ13, for “several 1080p cameras with low-medium activity”. The Mini S13 is an N150 with 16GB of RAM, a 500GB SSD and two 2.5GbE ports, and it was $349 on Amazon on October 26, 2026. I haven’t run one; that is from the listing. (The Beelink EQ13 this guide used to name is discontinued. Its N150 successor, the EQ14, has been unavailable on Amazon since late September, and when I checked on October 26, 2026, Frigate’s hardware page still told readers to avoid the EQ14 for now without saying why. The page doesn’t mention the Mini S13, so I can’t tell whether the issue affects other N150 boxes. If you would rather stay on the N100 that Frigate’s page favors, the Mini S12 Pro was also $349 that day, with one 2.5GbE port.) If you want more headroom for future cameras or higher resolutions, the Intel NUC 12 Pro (discontinued, so look for it used, or step up to the current ASUS NUC 15 Pro) is overkill in the best way - it’ll run Home Assistant, Frigate, and more without breaking a sweat. It sells as a barebones kit around a Core i5-1240P, so add 16GB of RAM and an NVMe SSD to the price. On the N100 boxes, a free M.2 slot is what lets you drop in a Hailo module later if the iGPU runs out of detection headroom. On detection, lean on the Intel iGPU through OpenVINO first, with a discrete GPU or a Hailo-8/8L M.2 module as the step up. Frigate’s documentation no longer recommends the Google Coral as the starting point for a new install, though it remains supported and is still the pick when power draw is the binding constraint.
Storage matters more than most people plan for. Plan on 1TB minimum for a week of continuous recording at 1080p, more if you want longer retention or higher resolution. Use a dedicated SSD - NVR workloads are write-heavy and spinning drives will bottleneck you. To size it, one 1080p H.264 stream recorded continuously runs to tens of gigabytes a day; multiply by camera count and retention days and add headroom. If money forces the recordings onto a USB 3.0 external drive, keep Frigate’s database and cache on the internal SSD so the UI stays responsive. All in, budget $300-500 for a capable NVR server, $50-150 per camera, and plan for storage up front.
Low-power detector options
Frigate’s hardware page says it “is designed around the expectation that a detector is used”. Out of the box it runs a single CPU detector, which the detector docs say “is not recommended for general use”, so choosing a detector is the first real decision. You choose one type: the docs say multiple detectors can’t be mixed for object detection. Everything in this section comes from Frigate’s hardware page and detector docs as I read them on October 26, 2026. Neither page gives wattage for any of these, so I don’t either.
| Option | Form factor | Detection time in Frigate’s table |
|---|---|---|
| Intel iGPU (OpenVINO) | Built into the CPU, 6th-gen Intel or newer | N100 and N150: ~15 ms (MobileNetV2) |
| Google Coral | USB, Mini PCIe or M.2 | No figure on the page |
| Hailo-8L / Hailo-8 | M.2, or a HAT for a Raspberry Pi | ~11 ms / ~7 ms (YOLOv6n) |
| Older NVIDIA GPU | PCIe card, Compute Capability 5.0 or newer | GTX 1070: 16 ms (YOLOv9 s-320) |
| Rockchip RK3588 board | Single-board computer | 25-30 ms (YOLO-NAS s, all three cores) |
Intel iGPU with OpenVINO (N100 and N150 mini PCs)
This is where most builds should start, because the same chip also handles video decoding, which a Coral or Hailo can’t. OpenVINO is supported on 6th-gen Intel (Skylake) and newer with an iGPU, plus Intel Arc cards and Intel NPUs. Frigate’s table puts the N150 at 16 ms on the tiny YOLOv9 model at 320, and notes the N100 can only run one detector instance. One catch for Home Assistant OS users: Intel NPUs can’t be used there, because HAOS doesn’t include the NPU firmware.
Google Coral
Frigate’s hardware page now says the Coral “is no longer recommended for new Frigate installations”, with an exception for particularly low power requirements; it calls the Coral one of the most power-efficient devices for object detection. It is still supported in USB, Mini PCIe and M.2 versions. The USB one works with the widest range of hardware and needs no driver on the host, and the docs say a single Coral can handle many cameras on the default model. It does detection only, so the host still needs hardware video decoding.
Hailo-8L and Hailo-8
Hailo modules come as M.2 cards or as a HAT for the Raspberry Pi, and Frigate’s docs say they run best with tiny or small models. On a mini PC with a free M.2 slot, a Hailo is the add-on if the iGPU runs out of detection headroom. On a Pi it fixes detection but not decoding (see the Pi note above).
An older NVIDIA GPU
This is the route I took. Frigate needs a card that supports CUDA 12.x with a Compute Capability of 5.0 or greater, which the docs say “generally correlates to a Maxwell-era GPU or newer”, and a host driver of version 545 or later. My Tesla P4 is a Pascal card, so it clears that floor. You run the -tensorrt Frigate image, which picks up the GPU automatically as an onnx detector, and the host needs the nvidia-container-runtime to pass the card through. The Home Assistant app doesn’t support NVIDIA GPUs, so a GPU build means standalone Docker (Path B below). A GPU also handles video decoding, so mine does both jobs for Frigate.
Other supported hardware
Frigate’s docs also list Rockchip boards (RK3562, RK3566, RK3568, RK3576 and RK3588, community-supported), which they say run “efficiently on low power hardware”; Apple Silicon M1 and newer, which can’t run inside a container and connects through a proxy; AMD discrete GPUs through ROCm; and the MemryX MX3 M.2 module, also community-supported. I haven’t run any of these.
Running Frigate on an old PC
Running Frigate on an old PC is a practical way to build this without buying anything. An old Intel-based mini PC or desktop makes a good Frigate host: run it as a Home Assistant app for simplicity or as a standalone Docker container for the best performance, lean on the Intel iGPU (or a Coral or GPU) for detection, detect on a substream, and keep recordings local.
A quick clarification first: Frigate is not a Home Assistant “custom component.” Frigate runs as its own service, either as a Home Assistant add-on (on Home Assistant OS or Supervised installs) or as a standalone Docker container. There is a separate Frigate integration (HACS custom component) that connects an already-running Frigate to Home Assistant for events, and a separate Lovelace card installed on top of that, but the NVR itself is a container.
What the old PC needs
Frigate’s heaviest cost is object detection on the video stream, so how you handle detection drives the hardware choice more than the CPU alone. For a modest old PC, aim for:
- A 6th-gen Intel Core (Skylake, ~2015) or newer CPU. Intel chips matter here because their integrated GPU (iGPU) can do hardware video decoding and, on recent generations, OpenVINO-based detection.
- 8 GB of RAM (4 GB can work for a couple of cameras, but 8 GB gives you headroom). If you expect to turn on Frigate’s Semantic Search, treat 8 GB as the floor and not the target: Frigate’s docs require “a minimum of 8GB of RAM” for it, recommend “16GB or more of RAM and a dedicated GPU” for best performance, and warn that “small or underpowered systems like a Raspberry Pi will not run Semantic Search reliably or at all”. That search runs entirely on your own hardware, which is the unmetered answer to Apple’s per-camera camera-AI tiers.
- A wired Ethernet connection for reliable camera streams.
- Storage sized for your retention needs. Recordings add up fast at higher resolutions.
A small business-class mini PC is an excellent fit. The Lenovo ThinkCentre M-series (Tiny), the Intel NUC 12 Pro, the Minisforum UM790 Pro, or the Beelink EQ13 all run Frigate well, and the Intel-based ones can offload both decoding and detection to the iGPU. Two of those carry the buying note from above: the Intel NUC 12 Pro is discontinued (ASUS stopped it in April 2024 and software support ended in October 2025), so treat it as a used-market buy and look at the ASUS NUC 15 Pro if you want something still in production, and the EQ13 is discontinued as well, with Beelink’s own store now returning only the N150 EQ14, which was a pre-order with no ship date on October 16, 2026 (see the Frigate note above). Pick a detector based on the hardware you already have: a recent Intel iGPU running OpenVINO, or a discrete GPU, often outperforms a Google Coral TPU, though the Coral is still a low-power option.
A note on small boards and laptops: a Raspberry Pi can run Frigate for one or two low-resolution cameras, but it struggles to scale and benefits from a detection accelerator. The older NVIDIA Jetson Nano is not a great fit for current Frigate. A laptop like a MacBook Air M1 is not a good Frigate host, because Frigate’s hardware acceleration paths target Linux on x86 (Intel/AMD) or supported ARM SBCs, not Apple Silicon under macOS.
Home Assistant app or standalone Docker
Frigate runs in a container, so you have two clean paths.
Path A - Home Assistant app. If you run Home Assistant OS on the machine, open Settings, Apps, then the App Store, add the Frigate repository, and install Frigate NVR. (Home Assistant 2026.2 renamed add-ons to apps. Same software, same Supervisor behind it - only the label and the menu changed, so older guides still say “Settings > Add-ons”.) This is the simplest route and keeps everything in one place, but it is the more constrained one for acceleration: apps run in a managed container, Nvidia GPUs are not supported at all, and reaching the Intel iGPU often means switching to the Full Access variant and turning off Protection mode.
Path B - Standalone Docker. Install a server Linux distribution (Debian or Ubuntu Server are good choices), install Docker, and run Frigate from a docker-compose.yml. This is the best-performing path because the container gets low-overhead access to the iGPU or a Coral device. You’ll map your camera config, a storage path for recordings, and any detector device (for example /dev/dri for an Intel iGPU, or /dev/bus/usb for a USB Coral).
Either way, your configuration lives in Frigate’s own config file (the config.yml covered below, not Home Assistant’s configuration.yaml). That file defines your cameras, their RTSP stream URLs, detection settings, and record/snapshot retention. If you are still choosing cameras, PoE models give the most dependable RTSP streams, and it is worth settling PoE versus Wi-Fi before you run any cable.
Keeping an older machine healthy
- Use a substream for detection and a high-resolution stream only for recording. Detecting on a 720p substream cuts CPU load considerably.
- Enable hardware acceleration for decoding (
hwaccel_args) so the iGPU handles video, not the CPU. - Tune detection zones and object filters so Frigate only processes the regions and objects you care about.
- Put recordings on a drive with enough endurance and capacity, and set sensible retention. A NAS such as a Synology or QNAP over a network share is a fine target for archived clips.
Skip the gimmicks: a smart plug power-cycling the PC is not a real reliability strategy and risks corrupting recordings or the filesystem. If Frigate misbehaves, fix the root cause, and let Docker (or the add-on supervisor) restart the container automatically with a restart policy.
Cameras: what works and what doesn’t
Not all cameras play nice with Frigate. Stick to ONVIF cameras for the best experience - Reolink’s PoE camera line is a cost-effective ONVIF option that works reliably. The Reolink Duo 3 PoE is excellent for wide-area coverage with dual lenses.
Avoid cloud-only cameras that don’t support local streaming. You’re building a local system - cameras that require cloud connectivity defeat the purpose.
For the best Frigate experience, enable RTSP streams on your cameras and configure them in Frigate. Most wired Reolink and Amcrest cameras support this out of the box. On the Reolink side power type is what decides it: the PoE and plug-in models expose RTSP and ONVIF, while Reolink’s battery cameras expose neither as standalone devices, so they cannot feed Frigate directly. If you’re using Amcrest IP8M-2496E or similar, the ONVIF integration handles the heavy lifting.
Frigate ingests RTSP, and you add each camera by hand in the config; there is no discovery step. ONVIF matters for a different reason: it is what Frigate uses to drive a PTZ camera and to autotrack, so if you buy a PTZ, check that it advertises ONVIF relative pan/tilt. The standard pattern is to point detection at the camera’s low-resolution substream, which keeps the decode load down, and record from the high-resolution main stream; most IP cameras expose both. Cameras, streams and detection all go in config.yml, mapped to /config/config.yml inside the container (there is a config editor in the web UI), and a Docker compose.yaml defines the container, its volumes and the device passthrough for the iGPU or whichever accelerator you use.
Networking: don’t skimp here
POE (Power over Ethernet) simplifies camera installs a great deal. If you’re running new wiring, go with POE - it’s more reliable than Wi-Fi and eliminates separate power runs. A UniFi Protect setup, which is what I run, is the packaged alternative, though Frigate gives you more flexibility. I run both: Protect records, and Frigate pulls its streams for detection. Check the port list before you count on one box doing everything, because most Protect consoles do not power cameras: the UDM Pro, the UDM Pro Max, the Cloud Gateway Max and the plain UNVR have no PoE ports at all, so the cameras still need a PoE switch beside them. The consoles that do supply PoE themselves are the UDM SE, the Dream Router (two PoE ports) and the UNVR Instant (six). If you are still choosing between that packaged route and a Reolink-plus-Frigate build, Reolink vs UniFi Protect sets out the cost, integration and storage trade-offs.
I tell everyone to avoid Wi-Fi cameras because of jammers and other security issues. If you use one anyway, expect occasional dropouts. Placement matters - avoid corners and areas with interference. If reliability matters, wired connections aren’t optional.
Integration with Home Assistant
This is where Frigate shines. The Home Assistant integration gives you real-time camera feeds, motion events as automation triggers, and thumbnail generation for notifications. You don’t need a separate dashboard - install the Frigate integration through HACS, point it at your Frigate server, and the cameras appear automatically. The Frigate Lovelace card for clips and event review is a separate HACS install, not part of the integration. Frigate communicates with Home Assistant over MQTT, so you’ll have an MQTT broker (the Mosquitto add-on is the usual choice).
From there you automate normally: a person event on the driveway camera turning on a Philips Hue White A19 at night, or switching a plain floodlight through a Philips Hue Smart Plug. One caveat on that second pattern: don’t put a Hue bulb itself behind the plug, because cutting its power drops it off the Zigbee mesh.
For presence detection, combine Frigate with the Aqara FP2 or Everything Presence One sensors. Frigate handles exterior monitoring while presence sensors handle indoor occupancy. This separation prevents the “camera everywhere” creep that makes smart homes feel invasive.
HomeKit and Hubitat
Frigate can put cameras in Apple Home without Home Assistant in the middle. The go2rtc instance embedded in Frigate acts as a HomeKit accessory: you pair each camera from the go2rtc web UI on port 1984, and Frigate’s own documentation covers the steps. The condition is that the Frigate container has to run in host network mode for pairing to work, which not every install wants. If yours does not, the other route is Home Assistant’s HomeKit Bridge re-exposing Frigate’s camera entities. Either way you get live viewing rather than recording, because HomeKit Secure Video is a separate Apple feature and not something Frigate provides. Hubitat has no native Frigate driver, so most people who run both let Home Assistant own the camera and NVR side and keep Hubitat for whatever automations already live there, or use Hubitat’s MQTT support to react to Frigate’s MQTT messages. If Hubitat is your only hub, expect this to be the rough edge.
Once your NVR is running, the same hardware can power other local-first projects - for example a local baby monitor with Frigate and RTSP.