Camera NVR
Two Frigate installs that record continuously and detect people on local hardware: one I built and maintain for a friend, and one at home. The goal was alerts I actually read: only people, only in the places that matter, and never for me.
- Software
- Frigate in Docker, go2rtc, frigate-notify, ntfy
- Friend's site
- Raspberry Pi 5 with a Hailo-8L accelerator, Reolink cameras
- Home
- Home server, Intel integrated graphics through OpenVINO, one Tapo camera
- Access
- Caddy HTTPS on the LAN, Tailscale from anywhere
What it does
- Records every camera around the clock and detects people without any cloud service.
- Sends an alert only when a person enters a zone I've drawn, so passersby on the street don't buzz my phone.
- Recognizes my face and skips alerts for me.
- Pushes one notification per alert through ntfy, with a link that opens the clip over HTTPS.
How it's built
For a friend: Raspberry Pi 5 with a Hailo-8L
- The Hailo-8L accelerator runs detection at about 10 ms per frame, leaving the Pi's CPU free for video.
- The Hailo driver is matched to the HailoRT version inside the Frigate image, and the kernel is held so updates can't break it.
- Daily automatic updates, a hardware watchdog and reboot-on-panic keep the headless Pi recovering on its own, and I maintain it remotely over Tailscale.
Home: OpenVINO on the home server
- Detection runs on the Intel integrated GPU through OpenVINO, using a YOLOv9-tiny model I exported to ONNX myself.
- go2rtc keeps one connection to the camera and restreams it. Frigate records the main stream and detects on the substream.
- VAAPI decoding on the iGPU keeps the CPU mostly idle, and motion masks hide the camera's timestamp overlay.