The Webcoast
Back to Frigate

Setting up Frigate

Frigate needs an actual camera stream to point at before anything else here matters, an RTSP-capable IP camera, or even an old phone running an IP-camera app works.

  1. 1

    Get an RTSP URL from each camera

    A dedicated IP camera has this in its own settings. An old Android phone works too: an app like IP Webcam turns it into an RTSP source, a genuinely usable way to repurpose retired hardware into a camera rather than buying one.

  2. 2

    Run the container

    Frigate needs a larger-than-default shared memory size for video buffering, and a config volume plus somewhere to actually store recordings.

    services:
      frigate:
        image: ghcr.io/blakeblackshear/frigate:stable
        container_name: frigate
        restart: unless-stopped
        shm_size: "256mb"
        ports:
          - "5000:5000"
          - "8554:8554"
        volumes:
          - ./config:/config
          - ./storage:/media/frigate
          - /etc/localtime:/etc/localtime:ro
  3. 3

    Write config.yml

    Each camera gets an entry with its RTSP URL, and detection needs either a Coral USB accelerator (fast, low CPU) or the CPU detector (works everywhere, slower). MQTT (its own guide in this Library) is optional but is what lets Home Assistant react to detections.

    mqtt:
      host: mosquitto
    
    cameras:
      front_door:
        ffmpeg:
          inputs:
            - path: rtsp://user:pass@camera-ip:554/stream
              roles:
                - detect
        detect:
          width: 1280
          height: 720
  4. 4

    Open the web UI

    Reachable at port 5000, it shows live feeds and starts logging detected events almost immediately once a camera is correctly configured.

  5. 5

    Put it behind HTTPS

    Frigate's own port serves plain HTTP; rather than exposing that directly, route it through a reverse proxy like nginx (its own guide covers the basics) so the only entry point is encrypted.

Further reading