I run Frigate on an Intel N100 mini PC with a few Amcrest PoE cameras. The box is fine for it, but only if I keep the config honest and watch the load.
Start with the mini PC and the network. Fit an M.2 SSD for recordings and use a decent 30–60W PoE switch on the same LAN. Install a minimal Linux image such as Debian or Ubuntu Server. I use Docker, so install Docker Engine and docker-compose. Before Frigate goes on, check hardware video acceleration on the machine with vainfo or ffmpeg -hwaccels. If /dev/dri is there, map it into the container so Frigate can use VAAPI hardware decode.
services:
frigate:
image: blakeblackshear/frigate:stable
devices:
- /dev/dri:/dev/dri
volumes:
- /srv/frigate/config:/config
- /srv/frigate/media:/media
restart: unless-stopped
network_mode: host
Map storage to /media for recordings. Keep other services to a minimum. The N100 does not have much spare CPU or memory once Frigate and a few cameras are running.
Amcrest cameras work well over RTSP once the stream and frame rate are set properly. A common RTSP URL for Amcrest is:
rtsp://username:password@CAMERA_IP:554/cam/realmonitor?channel=1&subtype=0
Use the main stream for recordings when needed, but use the substream for live viewing and lower-load detection where possible. In Frigate, keep detection FPS low on each camera so the CPU stays under control. This is the camera block I use in config.yml:
cameras:
front_drive:
ffmpeg:
inputs:
- path: rtsp://user:pass@192.168.1.50:554/cam/realmonitor?channel=1&subtype=0
roles:
- detect
- record
width: 1920
height: 1080
fps: 6
detect:
enabled: true
max_disappeared: 25
objects:
track:
- person
- car
Set fps to 5–8 on 1080p cameras to cut load. Lower the resolution in the camera, or set a crop in Frigate for the detect role, if only part of the scene matters. Keep object tracking tight. I only track person and car here, rather than every label the model can return.
Most of the work is in tuning and watching what breaks. I start with one camera on detect, then add the rest and watch CPU, memory and temperature with htop and sensors or glances. If VAAPI is available, Frigate offloads decode and leaves more CPU for detection. If decode is still on the CPU, drop FPS or narrow the detection area. Adjust the model threshold a little if small objects are missed, or raise it if the system is too noisy. Set motion and min_area in the camera config to ignore small triggers like leaves or rain. Test at the busy times for the site. Night is usually where headlights and random motion show up.
Testing under load means running the full camera set and checking how long detections take and how many frames are skipped. I record short clips while I bring cameras online. If clipping or frame drops appear, lower fps, reduce record quality, or move detection to a Coral USB TPU or another device. Maintenance is straightforward: rotate and prune recordings, check disk use weekly, update the Frigate container monthly, and keep an eye on frigate.db size. Keep camera firmware current and lock RTSP passwords.
Takeaways: map /dev/dri into the container if it is present, keep detection FPS low per camera, use the substream where it makes sense, and test under realistic load. The Intel N100 has tight headroom compared with desktop hardware, so pick what to record and what only to detect. Change one thing at a time and measure the result.



