blakeblackshear.frigate/docs/docs/configuration/index.md
Felipe Santos f8b0329b37
Move database and config from homeassistant /config to addon /config (#16337)
* Move database and config from homeassistant /config to addon /config

* Re-implement config migration for the add-on

* Align some terms

* Improve function name

* Use local variables

* Add model.path migration

* Fix homeassistant config path

* Ensure migration scripts run before go2rtc and frigate

* Migrate all files I know

* Add ffmpeg.path migration

* Update docker/main/rootfs/etc/s6-overlay/s6-rc.d/prepare/run

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Improve some variable names and organization

* Update docs to reflect addon config dir

* Update live.md with /addon_configs

* Move addon config section to configuration doc

* Align several terminologies and improve text

* Fix webrtc example config title

* Capitalize Add-on in more places

* Improve specific add-on config dir docs

* Align bash and python scripts to prefer config.yml over config.yaml

* Support config.json in migration shell scripts

* Change docs to reflect config.yml is preferred over config.yaml

* If previous config was yaml, migrate to yaml

* Fix typo in edgetpu.md

* Fix formatting of Python files

* Remove HailoRT Beta add-on variant from docs

* Add migration for labelmap and certs

* Fix variable name

* Fix new_config_file var unset

* Fix addon config directories table

* Improve db migration to avoid migrating files like .db.bak

* Fix echo location

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-03-24 09:05:59 -05:00

7.5 KiB

id title
index Frigate Configuration

For Home Assistant Add-on installations, the config file should be at /addon_configs/<addon_directory>/config.yml, where <addon_directory> is specific to the variant of the Frigate Add-on you are running. See the list of directories here.

For all other installation types, the config file should be mapped to /config/config.yml inside the container.

It can be named config.yml or config.yaml, but if both files exist config.yml will be preferred and config.yaml will be ignored.

It is recommended to start with a minimal configuration and add to it as described in this guide and use the built in configuration editor in Frigate's UI which supports validation.

mqtt:
  enabled: False

cameras:
  dummy_camera: # <--- this will be changed to your actual camera later
    enabled: False
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:554/rtsp
          roles:
            - detect

Accessing the Home Assistant Add-on configuration directory

When running Frigate through the HA Add-on, the Frigate /config directory is mapped to /addon_configs/<addon_directory> in the host, where <addon_directory> is specific to the variant of the Frigate Add-on you are running.

Add-on Variant Configuration directory
Frigate /addon_configs/ccab4aaf_frigate
Frigate (Full Access) /addon_configs/ccab4aaf_frigate-fa
Frigate Beta /addon_configs/ccab4aaf_frigate-beta
Frigate Beta (Full Access) /addon_configs/ccab4aaf_frigate-fa-beta

Whenever you see /config in the documentation, it refers to this directory.

If for example you are running the standard Add-on variant and use the VS Code Add-on to browse your files, you can click File > Open folder... and navigate to /addon_configs/ccab4aaf_frigate to access the Frigate /config directory and edit the config.yaml file. You can also use the built-in file editor in the Frigate UI to edit the configuration file.

VS Code Configuration Schema

VS Code supports JSON schemas for automatically validating configuration files. You can enable this feature by adding # yaml-language-server: $schema=http://frigate_host:5000/api/config/schema.json to the beginning of the configuration file. Replace frigate_host with the IP address or hostname of your Frigate server. If you're using both VS Code and Frigate as an Add-on, you should use ccab4aaf-frigate instead. Make sure to expose the internal unauthenticated port 5000 when accessing the config from VS Code on another machine.

Environment Variable Substitution

Frigate supports the use of environment variables starting with FRIGATE_ only where specifically indicated in the reference config. For example, the following values can be replaced at runtime by using environment variables:

mqtt:
  user: "{FRIGATE_MQTT_USER}"
  password: "{FRIGATE_MQTT_PASSWORD}"
- path: rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:8554/unicast
onvif:
  host: 10.0.10.10
  port: 8000
  user: "{FRIGATE_RTSP_USER}"
  password: "{FRIGATE_RTSP_PASSWORD}"
go2rtc:
  rtsp:
    username: "{FRIGATE_GO2RTC_RTSP_USERNAME}"
    password: "{FRIGATE_GO2RTC_RTSP_PASSWORD}"
genai:
  api_key: "{FRIGATE_GENAI_API_KEY}"

Common configuration examples

Here are some common starter configuration examples. Refer to the reference config for detailed information about all the config values.

Raspberry Pi Home Assistant Add-on with USB Coral

  • Single camera with 720p, 5fps stream for detect
  • MQTT connected to the Home Assistant Mosquitto Add-on
  • Hardware acceleration for decoding video
  • USB Coral detector
  • Save all video with any detectable motion for 7 days regardless of whether any objects were detected or not
  • Continue to keep all video if it qualified as an alert or detection for 30 days
  • Save snapshots for 30 days
  • Motion mask for the camera timestamp
mqtt:
  host: core-mosquitto
  user: mqtt-user
  password: xxxxxxxxxx

ffmpeg:
  hwaccel_args: preset-rpi-64-h264

detectors:
  coral:
    type: edgetpu
    device: usb

record:
  enabled: True
  retain:
    days: 7
    mode: motion
  alerts:
    retain:
      days: 30
  detections:
    retain:
      days: 30

snapshots:
  enabled: True
  retain:
    default: 30

cameras:
  name_of_your_camera:
    detect:
      width: 1280
      height: 720
      fps: 5
    ffmpeg:
      inputs:
        - path: rtsp://10.0.10.10:554/rtsp
          roles:
            - detect
    motion:
      mask:
        - 0.000,0.427,0.002,0.000,0.999,0.000,0.999,0.781,0.885,0.456,0.700,0.424,0.701,0.311,0.507,0.294,0.453,0.347,0.451,0.400

Standalone Intel Mini PC with USB Coral

  • Single camera with 720p, 5fps stream for detect
  • MQTT disabled (not integrated with home assistant)
  • VAAPI hardware acceleration for decoding video
  • USB Coral detector
  • Save all video with any detectable motion for 7 days regardless of whether any objects were detected or not
  • Continue to keep all video if it qualified as an alert or detection for 30 days
  • Save snapshots for 30 days
  • Motion mask for the camera timestamp
mqtt:
  enabled: False

ffmpeg:
  hwaccel_args: preset-vaapi

detectors:
  coral:
    type: edgetpu
    device: usb

record:
  enabled: True
  retain:
    days: 7
    mode: motion
  alerts:
    retain:
      days: 30
  detections:
    retain:
      days: 30

snapshots:
  enabled: True
  retain:
    default: 30

cameras:
  name_of_your_camera:
    detect:
      width: 1280
      height: 720
      fps: 5
    ffmpeg:
      inputs:
        - path: rtsp://10.0.10.10:554/rtsp
          roles:
            - detect
    motion:
      mask:
        - 0.000,0.427,0.002,0.000,0.999,0.000,0.999,0.781,0.885,0.456,0.700,0.424,0.701,0.311,0.507,0.294,0.453,0.347,0.451,0.400

Home Assistant integrated Intel Mini PC with OpenVino

  • Single camera with 720p, 5fps stream for detect
  • MQTT connected to same mqtt server as home assistant
  • VAAPI hardware acceleration for decoding video
  • OpenVino detector
  • Save all video with any detectable motion for 7 days regardless of whether any objects were detected or not
  • Continue to keep all video if it qualified as an alert or detection for 30 days
  • Save snapshots for 30 days
  • Motion mask for the camera timestamp
mqtt:
  host: 192.168.X.X # <---- same mqtt broker that home assistant uses
  user: mqtt-user
  password: xxxxxxxxxx

ffmpeg:
  hwaccel_args: preset-vaapi

detectors:
  ov:
    type: openvino
    device: AUTO

model:
  width: 300
  height: 300
  input_tensor: nhwc
  input_pixel_format: bgr
  path: /openvino-model/ssdlite_mobilenet_v2.xml
  labelmap_path: /openvino-model/coco_91cl_bkgr.txt

record:
  enabled: True
  retain:
    days: 7
    mode: motion
  alerts:
    retain:
      days: 30
  detections:
    retain:
      days: 30

snapshots:
  enabled: True
  retain:
    default: 30

cameras:
  name_of_your_camera:
    detect:
      width: 1280
      height: 720
      fps: 5
    ffmpeg:
      inputs:
        - path: rtsp://10.0.10.10:554/rtsp
          roles:
            - detect
    motion:
      mask:
        - 0.000,0.427,0.002,0.000,0.999,0.000,0.999,0.781,0.885,0.456,0.700,0.424,0.701,0.311,0.507,0.294,0.453,0.347,0.451,0.400