What is Frigate?#

Frigate is an open-source NVR built around real-time object detection. It runs locally — no cloud, no subscription, no monthly fees. Point it at any RTSP camera feed and it’ll detect objects (person, car, dog, cat) in real-time, record clips on motion events, and let you review everything through a clean web UI.

Why Frigate over something like MotionEye?#

MotionEye is fine for basic motion detection, but it triggers on everything — a curtain moving, shadows shifting, rain. Frigate gives you actual object labels, which means far fewer false alerts. You get a notification that says “person detected at the front door” instead of 300 motion clips of nothing.

My setup#

  • Host: Lenovo ThinkCentre running Proxmox VE → Ubuntu Server VM
  • Cameras: Tapo and Imou RTSP feeds
  • Runtime: Frigate in Docker via Docker Compose
  • Storage: Recordings on WD Blue 4TB HDD
  • Backup: Clips synced to Google Drive via rclone
  • Detection: CPU-based (no Coral TPU — works fine for 2–3 camera feeds)

Docker Compose#

services:
  frigate:
    image: ghcr.io/blakeblackshear/frigate:stable
    container_name: frigate
    restart: unless-stopped
    privileged: true
    shm_size: "256mb"
    ports:
      - "5000:5000"   # Web UI
      - "8554:8554"   # RTSP restream
      - "8555:8555"   # WebRTC
    volumes:
      - ./config:/config
      - /mnt/storage/frigate:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    environment:
      - TZ=Asia/Kolkata

Frigate config highlights#

The config.yaml lives in the ./config directory:

mqtt:
  enabled: false

cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://user:pass@192.168.1.x:554/stream1
          roles:
            - detect
            - record
    detect:
      width: 1280
      height: 720
      fps: 5

record:
  enabled: true
  retain:
    days: 7
    mode: motion
  events:
    retain:
      default: 14
      mode: active_objects

detectors:
  cpu:
    type: cpu
    num_threads: 4

Key decisions:

  • Detection at 5 fps — saves CPU while still catching events reliably
  • Recordings retained for 7 days, event clips for 14 days
  • No MQTT — I’m not running Home Assistant, so Frigate runs standalone
  • CPU detection with 4 threads — the ThinkCentre handles this comfortably

rclone backup to Google Drive#

A cron job syncs event clips to Google Drive daily:

#!/bin/bash
# /home/user/scripts/backup-frigate.sh
rclone sync /mnt/storage/frigate/clips gdrive:homelab/frigate-clips \
  --transfers 4 \
  --checkers 8 \
  --log-file /var/log/rclone-frigate.log
# crontab -e
0 3 * * * /home/user/scripts/backup-frigate.sh

Runs at 3 AM daily. The --transfers 4 flag keeps the upload speed reasonable without saturating the connection.

Camera notes for the Indian market#

If you’re buying RTSP-compatible cameras in India, here’s what I’ve found:

BrandRTSP supportNotes
TP-Link Tapo✅ YesReliable, easy RTSP setup via the app
Imou✅ YesWorks well, good night vision
CP Plus⚠️ VariesSome models support RTSP, check specs carefully
Qubo❌ NoCloud-only, no RTSP — avoid for self-hosted setups

Tip: Always check for ONVIF/RTSP support before buying. Most “smart” cameras in India are cloud-locked.

What’s next#

  • Setting up Telegram notifications for person detection events
  • Exploring Frigate’s built-in object tracking for counting visitors

Frigate is running as a service on the homelab → view service details