blumeops/docs/reference/services/frigate.md
Erich Blume 16a4a9a616 Port Mosquitto and ntfy to ringtail k3s, retire Apple Silicon Detector (#216)
## Summary
- Delete `ansible/roles/frigate_detector/` and remove from indri playbook — the Apple Silicon Detector is retired
- Move Mosquitto (MQTT) ArgoCD app from indri minikube to ringtail k3s
- Move ntfy ArgoCD app from indri minikube to ringtail k3s
- Update Frigate docs to reflect detector removal and planned RTX 4080 migration
- Manifests are reused as-is (same `argocd/manifests/mosquitto/` and `argocd/manifests/ntfy/`), just pointed at ringtail

## Deployment

After merge:
1. Sync indri ArgoCD `apps` app with prune to remove old mosquitto/ntfy apps:
   ```
   argocd app sync apps --prune
   ```
2. Sync new ringtail apps:
   ```
   argocd app sync mosquitto-ringtail
   argocd app sync ntfy-ringtail
   ```
3. Manually clean up the detector LaunchAgent on indri:
   ```
   ssh indri 'launchctl unload ~/Library/LaunchAgents/mcquack.eblume.frigate-detector.plist'
   ssh indri 'rm ~/Library/LaunchAgents/mcquack.eblume.frigate-detector.plist'
   ```

## Notes
- Frigate on indri will lose MQTT/ntfy connectivity — this is expected (user confirmed no downtime concerns)
- ntfy Tailscale Ingress hostname `ntfy` will transfer from indri ProxyGroup to ringtail ProxyGroup
- Caddy on indri proxies `ntfy.ops.eblu.me` → `ntfy.tail8d86e.ts.net`, so no Caddy changes needed
- Frigate + frigate-notify will be ported to ringtail in a follow-up PR

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/216
2026-02-19 11:22:44 -08:00

2.6 KiB

title modified tags
Frigate 2026-02-17
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-standard-arm64
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       — GPU-accelerated (RTX 4080, pending migration)
    ├── /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 will use GPU-accelerated inference on ringtail's RTX 4080 (migration pending). The previous Apple Silicon Detector on indri has been retired.

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 256 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.