blakeblackshear.frigate/docs/docs/configuration/index.md
Blake Blackshear 1133202cbd
Auth! (#11347)
* reload the window on 401

* backend apis for auth

* add login page

* re-enable web linter

* fix login page routing

* bypass csrf for internal auth endpoint

* disable healthcheck in devcontainer target

* include login page in vite build

* redirect to login page on 401

* implement config for users and settings

* implement JWT actual secret

* add brute force protection on login

* add support for redirecting from auth failures on api calls

* return location for redirect

* default cookie name should pass regex test

* set hash iterations to current OWASP recommendation

* move users to database instead of config

* config option to reset admin password on startup

* user management UI

* check for deleted user on refresh

* validate username and fixes

* remove password constraint

* cleanup

* fix user check on refresh

* web fixes

* implement auth via new external port

* use x-forwarded-for to rate limit login attempts by ip

* implement logout and profile

* fixes

* lint fixes

* add support for user passthru from upstream proxies

* add support for specifying a logout url

* add documentation

* Update docs/docs/configuration/authentication.md

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>

* Update docs/docs/configuration/authentication.md

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2024-05-18 10:36:13 -06:00

5.9 KiB

id title
index Frigate Configuration

For Home Assistant Addon installations, the config file needs to be in the root of your Home Assistant config directory (same location as configuration.yaml). It can be named frigate.yaml or frigate.yml, but if both files exist frigate.yaml will be preferred and frigate.yml will be ignored.

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

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

VSCode Configuration Schema

VSCode 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 VSCode 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 VSCode 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}"

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 Addon with USB Coral

  • Single camera with 720p, 5fps stream for detect
  • MQTT connected to home assistant mosquitto addon
  • 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 was during any event 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
  events:
    retain:
      default: 30
      mode: motion

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,461,3,0,1919,0,1919,843,1699,492,1344,458,1346,336,973,317,869,375,866,432

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 was during any event 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
  events:
    retain:
      default: 30
      mode: motion

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,461,3,0,1919,0,1919,843,1699,492,1344,458,1346,336,973,317,869,375,866,432

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 was during any event 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:
      path: /openvino-model/ssdlite_mobilenet_v2.xml

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

record:
  enabled: True
  retain:
    days: 7
    mode: motion
  events:
    retain:
      default: 30
      mode: motion

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,461,3,0,1919,0,1919,843,1699,492,1344,458,1346,336,973,317,869,375,866,432