blumeops/docs/reference/services/frigate.md
Erich Blume d51c180fe6 Switch Frigate detection model from YOLO-NAS-S to YOLOv9-c (#246)
## Summary
- Replace abandoned YOLO-NAS-S (320x320, `yolonas`) with YOLOv9-c (640x640, `yolo-generic`)
- YOLOv9-c benefits from CUDA Graphs in Frigate 0.17 on the RTX 4080
- Add `export_yolov9` Dagger pipeline and `frigate-export-model` mise task for reproducible model exports
- Model already deployed to `sifaka:/volume1/frigate/models/yolov9-c-640.onnx`

## Config changes
- `model_type: yolonas` → `yolo-generic`
- `input_dtype: int` → `float`
- `width/height: 320` → `640`
- `path:` → `yolov9-c-640.onnx`

## Deployment and Testing
- [ ] Merge and sync Frigate ArgoCD app: `argocd app sync frigate`
- [ ] Verify Frigate starts and detects objects at https://nvr.ops.eblu.me
- [ ] Confirm GPU inference via Frigate system metrics

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/246
2026-02-22 15:14:45 -08:00

2.7 KiB

title modified tags
Frigate 2026-02-22
service
surveillance

Frigate

Open-source network video recorder (NVR) with object detection. Runs cloud-free with all video stored locally on sifaka.

Quick Reference

Property Value
URL https://nvr.ops.eblu.me
Tailscale URL https://nvr.tail8d86e.ts.net
Namespace frigate
Image ghcr.io/blakeblackshear/frigate:0.17.0-rc2-tensorrt
Upstream https://github.com/blakeblackshear/frigate
Manifests argocd/manifests/frigate/

Architecture

ReoLink Camera (GableCam)
    │ RTSP
    ▼
Frigate pod (ringtail k3s)
    ├── go2rtc         — RTSP restream proxy
    ├── FFmpeg          — stream decoding
    ├── detector       — ONNX with CUDA (RTX 4080)
    ├── /media/frigate  — NFS recordings (sifaka)
    └── /db             — SQLite (local PVC)
        │
        └──→ MQTT (Mosquitto) → frigate-notify → ntfy → mobile

Cameras

Camera IP Location Objects Tracked
GableCam 192.168.1.159 Front gable person, car, dog, cat, bird

Camera credentials are stored in 1Password and synced via external-secrets to the frigate-camera Secret.

Detection

Object detection runs on ringtail's RTX 4080 via the ONNX detector with CUDA execution provider (TensorRT). The model is YOLOv9-c at 640x640 (yolov9-c-640.onnx, model_type: yolo-generic), which benefits from CUDA Graphs in Frigate 0.17. To re-export or change model size, use mise run frigate-export-model.

Two zones are configured: driveway_entrance (triggers review alerts for person/car) and driveway (triggers review detections).

Retention

Type Duration Mode
Continuous recording 3 days all
Alert clips 30 days active objects
Detection clips 14 days motion
Snapshots 14 days

Storage

Mount Backend Size
/media/frigate NFS PV on sifaka (/volume1/frigate) 2 Ti
/db Local PVC (frigate-database) SQLite
/dev/shm Memory-backed emptyDir 512 Mi

Alerting (frigate-notify)

A separate frigate-notify pod (ghcr.io/0x2142/frigate-notify:v0.3.5) subscribes to Frigate's MQTT events via Mosquitto and pushes alerts to ntfy on the frigate-alerts topic. Alert messages include action buttons linking back to the Frigate review UI.