How to Self-Host Frigate NVR: AI-Powered Security Cameras Without a Cloud Subscription
Ring, Nest, and Arlo charge monthly fees to store video that someone else controls. Frigate is a free, open-source NVR that runs entirely on your own hardware, keeps all recordings local, and uses AI object detection to tell the difference between a person, a car, a dog, and a shadow, without sending a single frame to the cloud. This guide covers everything: choosing the right cameras and server hardware, installing Frigate with Docker, configuring object detection, and making Frigate accessible from anywhere with a Localtonet tunnel, even behind CGNAT with no static IP or port forwarding.
What Is Frigate and Why Use It?
Frigate is an open-source NVR (Network Video Recorder) built specifically around AI-powered object detection. Unlike traditional NVRs that record whenever pixels change (resulting in alerts for every passing cloud, headlight beam, or waving tree branch), Frigate understands what is actually in the frame. It detects people, cars, dogs, cats, bikes, and dozens of other objects in real time, on your own hardware, with no cloud required.
Version 0.17 brings YOLOv9 support for Google Coral, Intel NPU support, Apple Silicon NPU detection, automatic RKNN model conversion for Rockchip devices, and Hailo driver 4.21.0 included in the standard Docker image. The Frigate+ base model has been updated to 2026.0 using YOLOv9 with improved accuracy and fewer false positives.
Choosing the Right Cameras
The camera is the most important hardware decision in a Frigate setup. A bad camera means poor image quality, unstable streams, and missed detections no matter how good your detector hardware is. The Frigate project maintainer's recommendations, based on years of real-world use, are clear: Dahua first, then Hikvision, then Amcrest as a budget alternative.
What to look for in a Frigate camera
| Feature | Why it matters for Frigate | What to look for |
|---|---|---|
| H.264 video output | Frigate's most compatible format. H.265 works but requires more CPU to decode and has limited browser compatibility without transcoding. | H.264 (AVC) output support — check specs before buying |
| Multiple RTSP streams | Frigate uses a low-resolution stream for detection (reduces CPU/detector load) and a high-resolution stream for recording. Cameras with only one stream force you to run detection at full resolution. | At least 2 configurable substreams at different resolutions |
| Large sensor (not just high megapixels) | Sensor size determines night image quality far more than resolution. A 5MP camera with a large sensor outperforms an 8MP camera with a tiny sensor after dark. | Check sensor size in specs — Dahua and Hikvision publish it |
| Wired PoE connection | WiFi cameras are officially not recommended by Frigate. Wireless streams drop connections and lose video data, especially with multiple cameras simultaneously. | PoE (Power over Ethernet) — single cable for power and video |
| AAC audio (optional) | Frigate's audio detection and two-way audio features require AAC audio codec. Not all cameras support AAC. | AAC audio output in specs if audio features are needed |
This is an explicit recommendation from the Frigate project. WiFi camera streams drop connections and lose video data — issues that compound when running multiple cameras simultaneously. Even if a single WiFi camera works fine in testing, reliability degrades with more cameras, wireless interference, or when the host machine is under load. Use wired PoE cameras for any installation you want to depend on.
Camera brand comparison
| Brand | Frigate recommendation | Strengths | Notes |
|---|---|---|---|
| Dahua / Loryta | ⭐ First choice | Multiple configurable substreams, large sensors available, rock-solid RTSP streams, good night image quality, easy to source directly | Loryta is the Dahua brand sold on Amazon. Loryta IPC-T549M-ALED-S3 and IPC-T54IR-AS are specifically recommended in Frigate docs. |
| Hikvision | ⭐ Second choice | Multiple streams, configurable resolutions and frame rates, large sensors on higher-end models, wide model range | ColorVu models have excellent color night vision. NDAA restrictions apply to US federal agencies, not private buyers. PTZ autotracking has incomplete ONVIF MoveStatus support. |
| Amcrest | ✅ Budget alternative | Widely available, lower price point, generally good Frigate compatibility | Rebranded Dahua hardware but uses lower-end Dahua models with smaller sensors or fewer configuration options. Amcrest IP5M-T1179EW-AI-V3 is specifically recommended. |
| Reolink | ⚠️ Use with caution | Budget-friendly, easy setup, widely available in consumer channels | 4K and higher resolution Reolink cameras have known issues. Stick to 5MP and below. Use the Reolink-specific config from Frigate docs (http-flv stream for stability, not standard RTSP). Two-way audio requires go2rtc. |
| Annke | ✅ Specific models verified | Good value, ONVIF support | Annke CZ504 PTZ works with autotracking but requires specific firmware (V5.7.1 build 250227) for ONVIF TranslationSpaceFov support. |
| Tapo (TP-Link) | ⚠️ PTZ limited | Very affordable, widely available in retail | ONVIF service port is 2020 (non-standard). PTZ controls work but autotracking is not supported. Good for static installations. |
| Foscam | ⚠️ Limited | Budget options | No official ONVIF certification. PTZ controls work but no relative move support, so autotracking is not supported. |
Resolution and stream configuration
Frigate's detection pipeline works best with a dedicated low-resolution detect stream and a separate high-resolution recording stream. A good default setup for most cameras:
| Stream role | Recommended resolution | Frame rate | Why |
|---|---|---|---|
| detect | 1280×720 (720p) | 5 fps | Lower resolution reduces CPU decode load. Detection models run on 320px crops anyway. 5 fps is sufficient to catch fast-moving objects. |
| record | 1920×1080 or 2560×1440 | 15-25 fps | Higher quality for reviewing events. This stream is only written to disk when an event is detected, not decoded continuously for detection. |
Server Hardware: What to Run Frigate On
Frigate requires a Linux host (bare metal Debian/Ubuntu recommended). Running in a VM on Proxmox or ESXi adds overhead and makes passing through hardware accelerators difficult. Docker on a native Linux install is the standard and most reliable approach.
| Hardware | Cameras supported | Notes |
|---|---|---|
| Beelink EQ13 (Intel N100) | Several 1080p cameras, low-medium activity | Official Frigate recommendation. Dual gigabit NICs allow a dedicated isolated camera network. Intel N100 iGPU works as OpenVINO detector (1 instance, ~15ms inference). Low power draw. |
| Intel Core i3-1220P mini PC | Large number of 1080p cameras, high activity | Significant step up from N100 in single-core and multi-core performance. Good for 8+ camera setups. |
| Raspberry Pi 5 (4GB or 8GB) | 2-4 cameras with Hailo-8L AI Kit | With the official Hailo-8L AI Kit HAT ($70), becomes a capable low-power Frigate server. Hailo-8L is now the primary recommendation for RPi5. USB Coral can also be used but draws significant power requiring an external powered hub. |
| Existing desktop or server with Intel CPU | Depends on CPU generation | Any Intel CPU with 6th Gen or newer iGPU supports OpenVINO detection. AVX + AVX2 instruction support required. |
| Nvidia GPU system | Large number of cameras, high activity | Nvidia GPU with CUDA 12.x support (Maxwell era or newer, driver ≥545). Use the stable-tensorrt Docker image. RTX 3050 and up handles 10+ cameras comfortably. |
Frigate needs low-overhead access to GPU and accelerator hardware for video decoding and object detection. The virtualization layer in Proxmox, ESXi, or VirtualBox adds significant overhead and makes passing through devices like the Google Coral and Intel iGPU unreliable. Some users have success with Proxmox LXC containers, but bare-metal Docker is the path with the least friction and best performance.
AI Detectors: The Hardware That Runs Object Detection
Without a dedicated detector, Frigate runs object detection on the CPU. This works, but it is slow (hundreds of milliseconds per inference) and CPU-intensive. A hardware detector reduces inference time to 5-20 milliseconds and uses minimal CPU, making it essential for more than 1-2 cameras.
| Detector | Hardware needed | Inference time | Recommended for |
|---|---|---|---|
| Hailo-8L | Raspberry Pi 5 AI Kit HAT, or M.2 module with x86 | ~11ms (YOLOv6n) | RPi5 builds. The primary recommendation for Raspberry Pi 5 in 2026. Standard Frigate arm64 image includes Hailo support. |
| OpenVINO (Intel iGPU) | Any Intel CPU with 6th Gen+ iGPU (HD 530 and newer) | 10-35ms depending on GPU generation | Beelink EQ13 (N100 iGPU), Intel NUC, or any Intel mini PC. Zero extra cost — uses built-in graphics. N100 limited to 1 detector instance. |
| OpenVINO (Intel NPU) | Intel Core Ultra (Meteor Lake) with integrated NPU | ~6ms (MobileNetV2), ~11ms (YOLO-NAS-S) | Newer Intel mini PCs with "Core Ultra" branding. More efficient than iGPU, frees GPU for enrichment tasks. |
| Google Coral USB | Google Coral USB ($30-50) | ~9-12ms (YOLOv9 in Frigate 0.17) | Any machine with USB 3.0. Good value but officially no longer the primary recommendation. Coral hardware development stalled. In Frigate 0.17, YOLOv9 is now supported on Coral with improved accuracy over the old MobileDet model. |
| Google Coral PCIe/M.2 | M.2 A+E or B+M slot | ~5-8ms | Higher throughput than USB Coral. Better for 10+ camera setups. Requires driver installation. |
| Nvidia GPU (ONNX) | Nvidia GPU with CUDA 12.x support, driver ≥545 | 6-28ms depending on GPU and model | Desktops and servers with discrete Nvidia GPU. RTX 3060+ handles large numbers of cameras. Use stable-tensorrt Docker image. |
| CPU only | No extra hardware | 100-500ms+ | Testing only, or 1-2 cameras with low activity. Not suitable for real-time detection on multiple cameras. |
Storage Requirements
Storage needs depend heavily on how many cameras you have, their resolution, and your recording mode. Frigate supports three recording modes:
| Recording mode | What gets saved | Storage estimate (1080p camera) |
|---|---|---|
| motion | Clips when any motion is detected, plus object detection events | 5-15 GB/week depending on activity |
| objects | Clips only when a tracked object (person, car, etc.) is detected | 1-5 GB/week for most residential use |
| continuous | 24/7 recording regardless of activity | 25-40 GB/day at 1080p, 2-4 Mbps bitrate |
A common approach is to record continuously for a short retention window (1-3 days) and save detected-object clips for a longer period (30 days). Use a dedicated surveillance drive: WD Purple or Seagate SkyHawk are designed for 24/7 write cycles that standard desktop drives are not.
Installing Frigate with Docker Compose
Frigate 0.17 runs as a single Docker container. The key directories it uses are /config (config file and SQLite database), /media/frigate (recordings and snapshots), and /tmp/cache (tmpfs RAM cache for in-progress recordings).
Step 1: Create the directory structure
mkdir -p ~/frigate/config
mkdir -p ~/frigate/recordings
cd ~/frigate
Step 2: docker-compose.yml
Choose the section matching your detector hardware. The base compose file is the same — only the devices mapping changes.
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:0.17.0
restart: unless-stopped
privileged: true
shm_size: "256mb" # ~64MB per camera — increase for more cameras
devices:
- /dev/dri/renderD128 # Intel iGPU for hardware video decoding + OpenVINO
ports:
- "5000:5000" # Web UI
- "8554:8554" # RTSP restream (go2rtc)
- "8555:8555/tcp" # WebRTC over TCP
- "8555:8555/udp" # WebRTC over UDP
environment:
- TZ=Europe/Istanbul # Set your timezone
- FRIGATE_RTSP_PASSWORD=YourCameraPassword
volumes:
- ./config:/config
- ./recordings:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000 # 1 GB tmpfs cache
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:0.17.0
restart: unless-stopped
privileged: true
shm_size: "256mb"
devices:
- /dev/bus/usb:/dev/bus/usb # Google Coral USB
- /dev/dri/renderD128 # iGPU for video decoding (if available)
ports:
- "5000:5000"
- "8554:8554"
- "8555:8555/tcp"
- "8555:8555/udp"
environment:
- TZ=Europe/Istanbul
- FRIGATE_RTSP_PASSWORD=YourCameraPassword
volumes:
- ./config:/config
- ./recordings:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:0.17.0
restart: unless-stopped
privileged: true
shm_size: "256mb"
devices:
- /dev/apex_0:/dev/apex_0 # PCIe / M.2 Coral
- /dev/dri/renderD128
ports:
- "5000:5000"
- "8554:8554"
- "8555:8555/tcp"
- "8555:8555/udp"
environment:
- TZ=Europe/Istanbul
- FRIGATE_RTSP_PASSWORD=YourCameraPassword
volumes:
- ./config:/config
- ./recordings:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:0.17.0-tensorrt
restart: unless-stopped
privileged: true
shm_size: "512mb" # more RAM for GPU inference
runtime: nvidia # requires nvidia-container-runtime installed
environment:
- TZ=Europe/Istanbul
- FRIGATE_RTSP_PASSWORD=YourCameraPassword
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,utility,video
ports:
- "5000:5000"
- "8554:8554"
- "8555:8555/tcp"
- "8555:8555/udp"
volumes:
- ./config:/config
- ./recordings:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
Step 3: The Frigate Configuration File
Create config/config.yml in your Frigate directory. This is where cameras, detectors, recording rules, and everything else is configured.
Complete config.yml — Intel OpenVINO + dual-stream Dahua/Hikvision camera
mqtt:
enabled: False # set to True and add host/user/password if using Home Assistant
detectors:
openvino:
type: openvino
device: GPU # use GPU for Intel iGPU; change to NPU for Intel Core Ultra NPU
model:
width: 300
height: 300
input_tensor: nhwc
input_pixel_format: bgr
path: /openvino-model/ssdlite_mobilenet_v2.xml
labelmap_path: /openvino-model/coco_91cl_bkgr.txt
ffmpeg:
hwaccel_args: preset-intel-qsv-h264 # hardware video decoding for Intel
cameras:
front_door:
ffmpeg:
inputs:
# Low-res substream for detection — use your camera's sub stream URL
- path: rtsp://admin:{FRIGATE_RTSP_PASSWORD}@192.168.1.100:554/cam/realmonitor?channel=1&subtype=1
roles:
- detect
# High-res main stream for recording
- path: rtsp://admin:{FRIGATE_RTSP_PASSWORD}@192.168.1.100:554/cam/realmonitor?channel=1&subtype=0
roles:
- record
detect:
width: 1280
height: 720
fps: 5
record:
enabled: True
retain:
days: 2 # keep 2 days of continuous recordings
mode: motion # only save segments with motion
events:
retain:
default: 30 # keep event clips for 30 days
snapshots:
enabled: True
retain:
default: 30
# Add more cameras below with the same structure
# back_yard:
# ffmpeg:
# inputs: ...
objects:
track:
- person
- car
- dog
- cat
filters:
person:
min_area: 5000 # ignore tiny detections (reflections, shadows)
min_score: 0.5
threshold: 0.7
Detector section for other hardware types
detectors:
coral:
type: edgetpu
device: usb
# Remove the model section — Frigate uses the default Coral model automatically
detectors:
coral:
type: edgetpu
device: pci
detectors:
nvidia:
type: onnx
device: 0 # GPU index, 0 for first GPU
model:
model_type: yolov9
path: /config/model_cache/yolov9s.onnx # Frigate downloads this on first start
detectors:
hailo:
type: hailo8l
# Frigate auto-detects Hailo hardware and selects YOLOv6n by default
Reolink camera configuration
Reolink cameras require a specific configuration to maintain stream stability. Standard RTSP is unreliable on many Reolink models — use the http-flv stream via go2rtc instead:
go2rtc:
streams:
reolink_front:
- "http://admin:{FRIGATE_RTSP_PASSWORD}@192.168.1.101/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password={FRIGATE_RTSP_PASSWORD}"
cameras:
reolink_front:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/reolink_front
input_args: preset-rtsp-restream
roles:
- detect
- record # if you don't have a separate substream
detect:
width: 2560 # adjust to your camera's actual resolution
height: 1440
fps: 5
Step 4: Start Frigate
cd ~/frigate
docker compose up -d
# Watch startup logs
docker logs -f frigate
INFO : Starting frigate...
INFO : Connected to MQTT broker
INFO : front_door: stream connected
INFO : Frigate is running on port 5000
Open http://YOUR-SERVER-IP:5000 in your browser. The Frigate web UI shows live camera feeds, detection events, and system metrics.
Accessing Frigate Remotely with Localtonet
Frigate's web UI runs on port 5000 of your local server. By default it is only accessible on your home network. To view your cameras from your phone while away from home, get push notifications with snapshots, or share access with family members, you need a way to reach port 5000 from the internet.
The standard advice — port forwarding — does not work if your ISP uses CGNAT (which is the case for most mobile, fiber, and LTE connections today). Even if port forwarding works, it exposes your Frigate instance directly to the public internet, which is a security risk for a service with live camera feeds.
Localtonet solves both problems: it creates an encrypted tunnel from your server to Localtonet's edge, gives you a stable HTTPS URL, and works regardless of CGNAT or lack of a static IP.
Install Localtonet on your Frigate server
# Download from localtonet.com/download (choose Linux x64 or ARM64 for RPi)
chmod +x localtonet
sudo mv localtonet /usr/local/bin/
# Authenticate with your token from the dashboard
sudo localtonet authtoken YOUR_TOKEN
Create an HTTP tunnel for Frigate's web UI
In the Localtonet dashboard: Protocol = HTTP, Local IP = 127.0.0.1, Local Port = 5000, Subdomain = your choice (e.g. frigate → frigate.localto.net).
Install Localtonet as a system service
sudo localtonet --install-service --authtoken YOUR_TOKEN
sudo localtonet --start-service --authtoken YOUR_TOKEN
After this, Localtonet starts automatically on every boot alongside Frigate's Docker container.
Access Frigate from anywhere
Open https://frigate.localto.net on your phone, tablet, or any browser. Your Frigate instance loads with full live view, event history, and all controls. The Frigate mobile PWA (installable from the browser menu) gives you a native-app-like experience.
Frigate 0.14 and later includes built-in authentication. Before exposing your Frigate instance via any public URL, go to Settings → Authentication in the Frigate web UI and create a strong admin password. Without authentication, anyone with the URL can see your camera feeds.
Connecting Frigate to Home Assistant
Frigate integrates with Home Assistant via MQTT. When a person is detected, Frigate publishes a message to your MQTT broker. Home Assistant receives it and can trigger automations: send a notification with a snapshot, turn on lights, announce on a speaker, whatever you configure.
If you already have an MQTT broker (Mosquitto is the standard Home Assistant add-on), update the Frigate config:
mqtt:
enabled: True
host: 192.168.1.x # IP of your Home Assistant or MQTT broker
port: 1883
topic_prefix: frigate
client_id: frigate
user: frigate_user # MQTT username you created
password: "{FRIGATE_MQTT_PASSWORD}"
In Home Assistant, install the Frigate integration from HACS (Home Assistant Community Store) or from the official integrations page. It automatically discovers cameras, creates binary sensors for detections, and provides snapshot and clip media services.
Frigate+: Better Detection Models (Optional)
Frigate ships with public COCO-trained models that detect 80 standard object classes. Frigate+ ($10/month or buy annually) provides access to models specifically trained on real security camera footage submitted by Frigate users — the same angles, the same lighting conditions, the same camera types you are actually using.
| Free (built-in models) | Frigate+ | |
|---|---|---|
| Model base | COCO dataset (general purpose) | Security camera footage from Frigate+ users |
| False positives | More common (trained on non-security images) | Lower (trained on similar conditions to yours) |
| Face + LPR integration | Secondary models required (slower pipeline) | Detects faces and plates in same inference pass |
| Fine-tuning | Not available | 12 custom model trainings/year on your uploaded images |
| Base model updates | With major Frigate releases | Quarterly (2026.0 current, using YOLOv9) |
Frigate+ is not required to run a functional system, and most home users get good results with the built-in models. It becomes more valuable when you are getting too many false positives from tree shadows, headlights, or animals that the standard model mis-classifies.
Troubleshooting Common Problems
| Problem | Likely cause | Fix |
|---|---|---|
| Frigate hangs on startup with no camera feed | In Frigate 0.17, the auto-detection of camera resolution changed. Some cameras do not correctly advertise their resolution. | Explicitly set detect: width: and detect: height: in your camera config. Check your camera's actual sub-stream resolution in its web UI. |
| High CPU usage even with detector configured | Hardware video decoding not enabled. CPU decodes every frame. | Add ffmpeg: hwaccel_args: preset-intel-qsv-h264 (Intel) or preset-nvidia-h264 (Nvidia) to your camera config. Verify with docker stats frigate. |
| OpenVINO detector on N100: "Can only run one detector instance" | Intel N100 iGPU limitation in OpenVINO. | This is expected. One OpenVINO detector instance handles all cameras in sequence. It is fast enough for most setups. Only one detectors entry needed. |
| Coral USB not detected | Docker not passing USB bus, or Coral not initialized | Verify /dev/bus/usb:/dev/bus/usb is in your compose devices. Run lsusb | grep Google on the host to confirm Coral is visible. Check docker logs frigate | grep coral. |
| RTSP stream connects then drops repeatedly | Reolink using standard RTSP (unreliable on many models) | Switch to go2rtc http-flv stream for Reolink cameras as shown in the Reolink config section above. |
| Too many false positive detections | Detection threshold too low, or no motion masks on busy areas | Add masks for tree branches, streets, and other constantly-moving areas. Increase threshold for affected object types in the objects: filters section. Consider Frigate+ models. |
| Frigate web UI not loading after Localtonet tunnel | WebSocket connection for live view may need specific handling | Localtonet HTTP tunnels support WebSocket connections automatically. If you see a blank live view, check the browser console for errors and ensure the Localtonet tunnel is running with the correct port (5000). |
| Bus error / shm_size errors in logs | Shared memory too small for number of cameras | Increase shm_size in docker-compose.yml. Use ~64MB per camera as a baseline. For 8 cameras: shm_size: "512mb". |
| Recordings disk fills up quickly | Recording mode set to continuous, or retention too long | Switch to mode: motion or mode: objects for the record retain setting. Reduce days for continuous retention. Set longer retention only for event clips. |
Frequently Asked Questions
Do I need Home Assistant to use Frigate?
No. Frigate runs completely standalone as a Docker container with its own web UI. You can view live feeds, browse events, configure cameras, and download clips without Home Assistant. The MQTT integration is optional and only needed if you want Home Assistant automations to respond to Frigate detections. Many users run Frigate standalone and only add Home Assistant later.
Can I use Frigate with cameras I already own?
If your existing cameras expose an RTSP stream, they will likely work with Frigate. Cameras that only work through a proprietary cloud app (many consumer Wi-Fi cameras) typically do not expose RTSP and cannot be used. Run ffplay rtsp://your-camera-ip/stream-path to test whether your camera's RTSP stream is accessible. If the stream plays, Frigate can use it. Check the Frigate community forums for your specific camera model if you are unsure of the RTSP URL format.
How many cameras can Frigate handle?
This depends almost entirely on your detector hardware and CPU generation. With a Google Coral USB or OpenVINO on an Intel N100, expect 4-8 cameras at 1080p with comfortable headroom. With a more powerful CPU or a discrete GPU, 16+ cameras is achievable. The key bottleneck for large camera counts is video decoding, not detection — hardware decoding (QuickSync on Intel, NVDEC on Nvidia) is essential for 8+ cameras. Each camera's substream at 720p/5fps decodes at roughly 25-50% of one CPU core without hardware acceleration, compared to essentially zero with hardware decoding enabled.
Is Frigate safe to expose to the internet?
Frigate has built-in authentication since version 0.14. Before exposing it via any public URL, always enable authentication with a strong password (Settings → Authentication in the web UI). Using a Localtonet tunnel adds an additional layer: your Frigate server's IP is not exposed, and all traffic is encrypted in transit. Do not skip enabling authentication, even behind a tunnel, because the tunnel URL is accessible to anyone who knows it.
Is a Google Coral still worth buying in 2026?
The Coral hardware development has stalled and it is no longer the primary recommendation from the Frigate project. However, Frigate 0.17 added YOLOv9 support for Coral, which significantly improves accuracy over the old MobileDet model. If you already own a Coral, it is still a capable and very power-efficient detector that will be supported by Frigate for the foreseeable future. If you are buying new hardware for a new build, the Hailo-8L for Raspberry Pi 5, or an Intel mini PC with OpenVINO, are better choices in 2026 because they have active vendor support and roadmaps.
Can Frigate run on a Raspberry Pi 4?
Technically yes, but the Pi 4 is significantly underpowered for comfortable Frigate operation. With a USB Coral, detection works but video decoding is CPU-heavy and the Pi 4 struggles with more than 2-3 cameras. The Raspberry Pi 5 is a substantially better choice: it is significantly faster, and the official Hailo-8L AI Kit works on Pi 5 but not Pi 4. If you are building a Pi-based Frigate system in 2026, start with a Pi 5 8GB.
View Your Frigate Cameras from Anywhere, No Port Forwarding Needed
A Localtonet HTTP tunnel gives your Frigate instance a stable public HTTPS URL that works behind any ISP, any router, and any NAT. Set it up once and access your cameras from anywhere.
Create Your Free Tunnel →