From 499866bf9407a6a22ae14ea3693f89bbeb794c1f Mon Sep 17 00:00:00 2001 From: Paul Blacknell Date: Fri, 16 Dec 2022 13:38:05 +0000 Subject: [PATCH 1/3] Add apache2 reverse proxy documentation (#4502) * fix: add JetBrains IDE exclusions * add: document apache2 reverse proxy configuration * fix: qualify that steps included do not constitute a security guide (and users must rely on own experience) * Update reverse_proxy.md * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update docs/docs/guides/reverse_proxy.md Co-authored-by: Nicolas Mowen * Update reverse_proxy.md * Update reverse_proxy.md Co-authored-by: Nicolas Mowen --- .gitignore | 1 + docs/docs/guides/reverse_proxy.md | 84 +++++++++++++++++++++++++++++++ docs/sidebars.js | 1 + 3 files changed, 86 insertions(+) create mode 100644 docs/docs/guides/reverse_proxy.md diff --git a/.gitignore b/.gitignore index 6fe616b5c..ce5457106 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ web/node_modules web/coverage core !/web/**/*.ts +.idea/* \ No newline at end of file diff --git a/docs/docs/guides/reverse_proxy.md b/docs/docs/guides/reverse_proxy.md new file mode 100644 index 000000000..22884a4d8 --- /dev/null +++ b/docs/docs/guides/reverse_proxy.md @@ -0,0 +1,84 @@ +--- +id: reverse_proxy +title: Setting up a Reverse Proxy +--- + +This guide outlines the basic configuration steps needed to expose your Frigate UI to the internet. +A common way of accomplishing this is to use a reverse proxy webserver between your router and your Frigate instance. +A reverse proxy accepts HTTP requests from the public internet and redirects them transparently to internal webserver(s) on your network. + +The suggested steps are: +- **Configure** a 'proxy' HTTP webserver (such as [Apache2](https://httpd.apache.org/docs/current/) or [NPM](https://github.com/NginxProxyManager/nginx-proxy-manager)) and only expose ports 80/443 from this webserver to the internet +- **Encrypt** content from the proxy webserver by installing SSL (such as with [Let's Encrypt](https://letsencrypt.org/)). Note that SSL is then not required on your Frigate webserver as the proxy encrypts all requests for you +- **Restrict** access to your Frigate instance at the proxy using, for example, password authentication + +:::caution +A reverse proxy can be used to secure access to an internal webserver but the user will be entirely reliant +on the steps they have taken. You must ensure you are following security best practices. +This page does not attempt to outline the specific steps needed to secure your internal website. +Please use your own knowledge to assess and vet the reverse proxy software before you install anything on your system. +::: + +There are several technologies available to implement reverse proxies. This document currently suggests one, using Apache2, +and the community is invited to document others through a contribution to this page. + +## Apache2 Reverse Proxy + +In the configuration examples below, only the directives relevant to the reverse proxy approach above are included. +On Debian Apache2 the configuration file will be named along the lines of `/etc/apache2/sites-available/cctv.conf` + +### Step 1: Configure the Apache2 Reverse Proxy + +Make life easier for yourself by presenting your Frigate interface as a DNS sub-domain rather than as a sub-folder of your main domain. +Here we access Frigate via https://cctv.mydomain.co.uk +```xml + + ServerName cctv.mydomain.co.uk + + ProxyPreserveHost On + ProxyPass "/" "http://frigatepi.local:5000/" + ProxyPassReverse "/" "http://frigatepi.local:5000/" + + ProxyPass /ws ws://frigatepi.local:5000/ws + ProxyPassReverse /ws ws://frigatepi.local:5000/ws + + ProxyPass /live/ ws://frigatepi.local:5000/live/ + ProxyPassReverse /live/ ws://frigatepi.local:5000/live/ + + RewriteEngine on + RewriteCond %{HTTP:Upgrade} =websocket [NC] + RewriteRule /(.*) ws://frigatepi.local:5000/$1 [P,L] + RewriteCond %{HTTP:Upgrade} !=websocket [NC] + RewriteRule /(.*) http://frigatepi.local:5000/$1 [P,L] + +``` + +### Step 2: Use SSL to encrypt access to your Frigate instance + +Whilst this won't, on its own, prevent access to your Frigate webserver it will encrypt all content (such as login credentials). +Installing SSL is beyond the scope of this document but [Let's Encrypt](https://letsencrypt.org/) is a widely used approach. +This Apache2 configuration snippet then results in unencrypted requests being redirected to the webserver SSL port + +```xml + +ServerName cctv.mydomain.co.uk +RewriteEngine on +RewriteCond %{SERVER_NAME} =cctv.mydomain.co.uk +RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + +``` + +### Step 3: Authenticate users at the proxy + +There are many ways to authenticate a website but a straightforward approach is to use [Apache2 password files](https://httpd.apache.org/docs/2.4/howto/auth.html). + +```xml + + + AuthType Basic + AuthName "Restricted Files" + AuthUserFile "/var/www/passwords" + Require user paul + + +``` diff --git a/docs/sidebars.js b/docs/sidebars.js index e5192d2cd..5bf6d68ea 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -8,6 +8,7 @@ module.exports = { "guides/false_positives", "guides/ha_notifications", "guides/stationary_objects", + "guides/reverse_proxy", ], Configuration: [ "configuration/index", From 49f70b95631292f14184cf12d42d7d92220c3896 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sat, 17 Dec 2022 16:54:02 -0700 Subject: [PATCH 2/3] Update hardware_acceleration.md (#4726) --- docs/docs/configuration/hardware_acceleration.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/docs/configuration/hardware_acceleration.md b/docs/docs/configuration/hardware_acceleration.md index 67df7ca60..c822229e7 100644 --- a/docs/docs/configuration/hardware_acceleration.md +++ b/docs/docs/configuration/hardware_acceleration.md @@ -7,6 +7,12 @@ It is recommended to update your configuration to enable hardware accelerated de ### Raspberry Pi 3/4 +:::caution + +There is currently a bug in ffmpeg that causes hwaccel to not work for the RPi kernel 5.15.61 and above. For more information see https://github.com/blakeblackshear/frigate/issues/3780 + +::: + Ensure you increase the allocated RAM for your GPU to at least 128 (raspi-config > Performance Options > GPU Memory). **NOTICE**: If you are using the addon, you may need to turn off `Protection mode` for hardware acceleration. From e3e03ec12fd85732b2a55c72b0a8672cc10107d2 Mon Sep 17 00:00:00 2001 From: herostrat Date: Sun, 18 Dec 2022 00:57:18 +0100 Subject: [PATCH 3/3] Folderize Docs: Each topic gets a folder (#4514) * Each topic gets a folder * Fix wrong link * Fix missing links in docs * Unify all links: Include .md in filename --- docs/docs/configuration/cameras.md | 12 ++++++------ docs/docs/configuration/index.md | 2 +- docs/docs/configuration/objects.mdx | 4 ++-- docs/docs/configuration/rtmp.md | 2 +- docs/docs/configuration/zones.md | 2 +- docs/docs/{ => development}/contributing.md | 0 docs/docs/{ => frigate}/hardware.md | 2 +- docs/docs/{ => frigate}/index.md | 0 docs/docs/{ => frigate}/installation.md | 0 docs/docs/guides/getting_started.md | 16 ++++++++-------- docs/docs/guides/ha_notifications.md | 2 +- docs/docs/guides/stationary_objects.md | 2 +- docs/docs/integrations/home-assistant.md | 6 +++--- docs/docs/{ => troubleshooting}/faqs.md | 6 +++--- docs/sidebars.js | 14 +++++++++++--- 15 files changed, 39 insertions(+), 31 deletions(-) rename docs/docs/{ => development}/contributing.md (100%) rename docs/docs/{ => frigate}/hardware.md (97%) rename docs/docs/{ => frigate}/index.md (100%) rename docs/docs/{ => frigate}/installation.md (100%) rename docs/docs/{ => troubleshooting}/faqs.md (86%) diff --git a/docs/docs/configuration/cameras.md b/docs/docs/configuration/cameras.md index d2feceeeb..d9b023884 100644 --- a/docs/docs/configuration/cameras.md +++ b/docs/docs/configuration/cameras.md @@ -9,11 +9,11 @@ Several inputs can be configured for each camera and the role of each input can Each role can only be assigned to one input per camera. The options for roles are as follows: -| Role | Description | -| -------- | ----------------------------------------------------------------------------------------------- | -| `detect` | Main feed for object detection | -| `record` | Saves segments of the video feed based on configuration settings. [docs](/configuration/record) | -| `rtmp` | Broadcast as an RTMP feed for other services to consume. [docs](/configuration/rtmp) | +| Role | Description | +| -------- | ------------------------------------------------------------------------------------ | +| `detect` | Main feed for object detection | +| `record` | Saves segments of the video feed based on configuration settings. [docs](record.md) | +| `rtmp` | Broadcast as an RTMP feed for other services to consume. [docs](rtmp.md) | ```yaml mqtt: @@ -44,4 +44,4 @@ cameras: side: ... ``` -For camera model specific settings check the [camera specific](/configuration/camera_specific) infos. \ No newline at end of file +For camera model specific settings check the [camera specific](camera_specific.md) infos. diff --git a/docs/docs/configuration/index.md b/docs/docs/configuration/index.md index 57bc815dd..4d2b9d976 100644 --- a/docs/docs/configuration/index.md +++ b/docs/docs/configuration/index.md @@ -7,7 +7,7 @@ For Home Assistant Addon installations, the config file needs to be in the root 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](/guides/getting_started): +It is recommended to start with a minimal configuration and add to it as described in [this guide](../guides/getting_started.md): ```yaml mqtt: diff --git a/docs/docs/configuration/objects.mdx b/docs/docs/configuration/objects.mdx index 1d236bf42..c15907339 100644 --- a/docs/docs/configuration/objects.mdx +++ b/docs/docs/configuration/objects.mdx @@ -9,7 +9,7 @@ Frigate includes the object models listed below from the Google Coral test data. Please note: - `car` is listed twice because `truck` has been renamed to `car` by default. These object types are frequently confused. - - `person` is the only tracked object by default. See the [full configuration reference](https://docs.frigate.video/configuration/index#full-configuration-reference) for an example of expanding the list of tracked objects. + - `person` is the only tracked object by default. See the [full configuration reference](index.md#full-configuration-reference) for an example of expanding the list of tracked objects.
    {labels.split("\n").map((label) => ( @@ -25,4 +25,4 @@ Models for both CPU and EdgeTPU (Coral) are bundled in the image. You can use yo - EdgeTPU Model: `/edgetpu_model.tflite` - Labels: `/labelmap.txt` -You also need to update the [model config](/configuration/advanced#model) if they differ from the defaults. +You also need to update the [model config](advanced.md#model) if they differ from the defaults. diff --git a/docs/docs/configuration/rtmp.md b/docs/docs/configuration/rtmp.md index 5c6b3b5a0..5d52394e9 100644 --- a/docs/docs/configuration/rtmp.md +++ b/docs/docs/configuration/rtmp.md @@ -5,4 +5,4 @@ title: RTMP Frigate can re-stream your video feed as a RTMP feed for other applications such as Home Assistant to utilize it at `rtmp:///live/`. Port 1935 must be open. This allows you to use a video feed for detection in frigate and Home Assistant live view at the same time without having to make two separate connections to the camera. The video feed is copied from the original video feed directly to avoid re-encoding. This feed does not include any annotation by Frigate. -Some video feeds are not compatible with RTMP. If you are experiencing issues, check to make sure your camera feed is h264 with AAC audio. If your camera doesn't support a compatible format for RTMP, you can use the ffmpeg args to re-encode it on the fly at the expense of increased CPU utilization. Some more information about it can be found [here](/faqs#audio-in-recordings). +Some video feeds are not compatible with RTMP. If you are experiencing issues, check to make sure your camera feed is h264 with AAC audio. If your camera doesn't support a compatible format for RTMP, you can use the ffmpeg args to re-encode it on the fly at the expense of increased CPU utilization. Some more information about it can be found [here](../troubleshooting/faqs.md#audio-in-recordings). diff --git a/docs/docs/configuration/zones.md b/docs/docs/configuration/zones.md index e4453bad1..47855d929 100644 --- a/docs/docs/configuration/zones.md +++ b/docs/docs/configuration/zones.md @@ -9,7 +9,7 @@ Zones cannot have the same name as a camera. If desired, a single zone can inclu During testing, enable the Zones option for the debug feed so you can adjust as needed. The zone line will increase in thickness when any object enters the zone. -To create a zone, follow [the steps for a "Motion mask"](/configuration/masks), but use the section of the web UI for creating a zone instead. +To create a zone, follow [the steps for a "Motion mask"](masks.md), but use the section of the web UI for creating a zone instead. ### Restricting zones to specific objects diff --git a/docs/docs/contributing.md b/docs/docs/development/contributing.md similarity index 100% rename from docs/docs/contributing.md rename to docs/docs/development/contributing.md diff --git a/docs/docs/hardware.md b/docs/docs/frigate/hardware.md similarity index 97% rename from docs/docs/hardware.md rename to docs/docs/frigate/hardware.md index 470c376db..fca08e5f5 100644 --- a/docs/docs/hardware.md +++ b/docs/docs/frigate/hardware.md @@ -9,7 +9,7 @@ Cameras that output H.264 video and AAC audio will offer the most compatibility I recommend Dahua, Hikvision, and Amcrest in that order. Dahua edges out Hikvision because they are easier to find and order, not because they are better cameras. I personally use Dahua cameras because they are easier to purchase directly. In my experience Dahua and Hikvision both have multiple streams with configurable resolutions and frame rates and rock solid streams. They also both have models with large sensors well known for excellent image quality at night. Not all the models are equal. Larger sensors are better than higher resolutions; especially at night. Amcrest is the fallback recommendation because they are rebranded Dahuas. They are rebranding the lower end models with smaller sensors or less configuration options. -Many users have reported various issues with Reolink cameras, so I do not recommend them. If you are using Reolink, I suggest the [Reolink specific configuration](configuration/camera_specific#reolink-410520-possibly-others). Wifi cameras are also not recommended. Their streams are less reliable and cause connection loss and/or lost video data. +Many users have reported various issues with Reolink cameras, so I do not recommend them. If you are using Reolink, I suggest the [Reolink specific configuration](../configuration/camera_specific.md#reolink-410520-possibly-others). Wifi cameras are also not recommended. Their streams are less reliable and cause connection loss and/or lost video data. Here are some of the camera's I recommend: diff --git a/docs/docs/index.md b/docs/docs/frigate/index.md similarity index 100% rename from docs/docs/index.md rename to docs/docs/frigate/index.md diff --git a/docs/docs/installation.md b/docs/docs/frigate/installation.md similarity index 100% rename from docs/docs/installation.md rename to docs/docs/frigate/installation.md diff --git a/docs/docs/guides/getting_started.md b/docs/docs/guides/getting_started.md index 977649b01..bb767c9ee 100644 --- a/docs/docs/guides/getting_started.md +++ b/docs/docs/guides/getting_started.md @@ -3,7 +3,7 @@ id: getting_started title: Creating a config file --- -This guide walks through the steps to build a configuration file for Frigate. It assumes that you already have an environment setup as described in [Installation](/installation). You should also configure your cameras according to the [camera setup guide](/guides/camera_setup) +This guide walks through the steps to build a configuration file for Frigate. It assumes that you already have an environment setup as described in [Installation](../frigate/installation.md). You should also configure your cameras according to the [camera setup guide](/guides/camera_setup) ### Step 1: Configure the MQTT server @@ -23,7 +23,7 @@ mqtt: password: ``` -Frigate supports many configuration options for mqtt. See the [configuration reference](/configuration/index#full-configuration-reference) for more info. +Frigate supports many configuration options for mqtt. See the [configuration reference](../configuration/index.md#full-configuration-reference) for more info. ### Step 2: Configure detectors @@ -39,7 +39,7 @@ detectors: device: usb ``` -More details on available detectors can be found [here](/configuration/detectors). +More details on available detectors can be found [here](../configuration/detectors.md). ### Step 3: Add a minimal camera configuration @@ -81,11 +81,11 @@ At this point you should be able to start Frigate and see the the video feed in If you get a green image from the camera, this means ffmpeg was not able to get the video feed from your camera. Check the logs for error messages from ffmpeg. The default ffmpeg arguments are designed to work with H264 RTSP cameras that support TCP connections. If you do not have H264 cameras, make sure you have disabled RTMP. It is possible to enable it, but you must tell ffmpeg to re-encode the video with customized output args. -FFmpeg arguments for other types of cameras can be found [here](/configuration/camera_specific). +FFmpeg arguments for other types of cameras can be found [here](../configuration/camera_specific.md). ### Step 5: Configure hardware acceleration (optional) -Now that you have a working camera configuration, you want to setup hardware acceleration to minimize the CPU required to decode your video streams. See the [hardware acceleration](/configuration/hardware_acceleration) config reference for examples applicable to your hardware. +Now that you have a working camera configuration, you want to setup hardware acceleration to minimize the CPU required to decode your video streams. See the [hardware acceleration](../configuration/hardware_acceleration.md) config reference for examples applicable to your hardware. In order to best evaluate the performance impact of hardware acceleration, it is recommended to temporarily disable detection. @@ -121,7 +121,7 @@ cameras: Now that you have optimized your configuration for decoding the video stream, you will want to check to see where to implement motion masks. To do this, navigate to the camera in the UI, select "Debug" at the top, and enable "Motion boxes" in the options below the video feed. Watch for areas that continuously trigger unwanted motion to be detected. Common areas to mask include camera timestamps and trees that frequently blow in the wind. The goal is to avoid wasting object detection cycles looking at these areas. -Now that you know where you need to mask, use the "Mask & Zone creator" in the options pane to generate the coordinates needed for your config file. More information about masks can be found [here](/configuration/masks). +Now that you know where you need to mask, use the "Mask & Zone creator" in the options pane to generate the coordinates needed for your config file. More information about masks can be found [here](../configuration/masks.md). :::caution @@ -184,7 +184,7 @@ cameras: If you don't have separate streams for detect and record, you would just add the record role to the list on the first input. -By default, Frigate will retain video of all events for 10 days. The full set of options for recording can be found [here](/configuration/index#full-configuration-reference). +By default, Frigate will retain video of all events for 10 days. The full set of options for recording can be found [here](../configuration/index.md#full-configuration-reference). ### Step 8: Enable snapshots (optional) @@ -204,4 +204,4 @@ cameras: motion: ... ``` -By default, Frigate will retain snapshots of all events for 10 days. The full set of options for snapshots can be found [here](/configuration/index#full-configuration-reference). +By default, Frigate will retain snapshots of all events for 10 days. The full set of options for snapshots can be found [here](../configuration/index.md#full-configuration-reference). diff --git a/docs/docs/guides/ha_notifications.md b/docs/docs/guides/ha_notifications.md index 179a9bbea..2145e6e7c 100644 --- a/docs/docs/guides/ha_notifications.md +++ b/docs/docs/guides/ha_notifications.md @@ -5,7 +5,7 @@ title: Home Assistant notifications The best way to get started with notifications for Frigate is to use the [Blueprint](https://community.home-assistant.io/t/frigate-mobile-app-notifications/311091). You can use the yaml generated from the Blueprint as a starting point and customize from there. -It is generally recommended to trigger notifications based on the `frigate/events` mqtt topic. This provides the event_id needed to fetch [thumbnails/snapshots/clips](/integrations/home-assistant#notification-api) and other useful information to customize when and where you want to receive alerts. The data is published in the form of a change feed, which means you can reference the "previous state" of the object in the `before` section and the "current state" of the object in the `after` section. You can see an example [here](/integrations/mqtt#frigateevents). +It is generally recommended to trigger notifications based on the `frigate/events` mqtt topic. This provides the event_id needed to fetch [thumbnails/snapshots/clips](../integrations/home-assistant.md#notification-api) and other useful information to customize when and where you want to receive alerts. The data is published in the form of a change feed, which means you can reference the "previous state" of the object in the `before` section and the "current state" of the object in the `after` section. You can see an example [here](../integrations/mqtt.md#frigateevents). Here is a simple example of a notification automation of events which will update the existing notification for each change. This means the image you see in the notification will update as frigate finds a "better" image. diff --git a/docs/docs/guides/stationary_objects.md b/docs/docs/guides/stationary_objects.md index 269a1c80d..757e6c118 100644 --- a/docs/docs/guides/stationary_objects.md +++ b/docs/docs/guides/stationary_objects.md @@ -17,7 +17,7 @@ Frigate is designed to track objects as they move and over-masking can prevent i To only be notified of cars that enter your driveway from the street, you could create multiple zones that cover your driveway. For cars, you would only notify if `entered_zones` from the events MQTT topic has more than 1 zone. -See [this example](/configuration/zones#restricting-zones-to-specific-objects) from the Zones documentation to see how to restrict zones to certain object types. +See [this example](../configuration/zones.md#restricting-zones-to-specific-objects) from the Zones documentation to see how to restrict zones to certain object types. ![Driveway Zones](/img/driveway_zones-min.png) diff --git a/docs/docs/integrations/home-assistant.md b/docs/docs/integrations/home-assistant.md index d2dc6d1b7..1be0e8d41 100644 --- a/docs/docs/integrations/home-assistant.md +++ b/docs/docs/integrations/home-assistant.md @@ -90,7 +90,7 @@ This is accessible via "Media Browser" on the left menu panel in Home Assistant. The integration supports casting clips and camera streams to supported media devices. :::tip -For clips to be castable to media devices, audio is required and may need to be [enabled for recordings](../faqs.md#audio-in-recordings). +For clips to be castable to media devices, audio is required and may need to be [enabled for recordings](../troubleshooting/faqs.md#audio-in-recordings). **NOTE: Even if you camera does not support audio, audio will need to be enabled for Casting to be accepted.** @@ -134,7 +134,7 @@ For advanced usecases, this behavior can be changed with the [RTMP URL template](#options) option. When set, this string will override the default stream address that is derived from the default behavior described above. This option supports [jinja2 templates](https://jinja.palletsprojects.com/) and has the `camera` dict -variables from [Frigate API](https://blakeblackshear.github.io/frigate/usage/api#apiconfig) +variables from [Frigate API](api.md) available for the template. Note that no Home Assistant state is available to the template, only the camera dict from Frigate. @@ -171,7 +171,7 @@ The Frigate integration seamlessly supports the use of multiple Frigate servers. In order for multiple Frigate instances to function correctly, the `topic_prefix` and `client_id` parameters must be set differently per server. See [MQTT -configuration](https://blakeblackshear.github.io/frigate/configuration/index#mqtt) +configuration](mqtt.md) for how to set these. #### API URLs diff --git a/docs/docs/faqs.md b/docs/docs/troubleshooting/faqs.md similarity index 86% rename from docs/docs/faqs.md rename to docs/docs/troubleshooting/faqs.md index 61ed49cfd..39c7e910b 100644 --- a/docs/docs/faqs.md +++ b/docs/docs/troubleshooting/faqs.md @@ -5,7 +5,7 @@ title: Frequently Asked Questions ### Fatal Python error: Bus error -This error message is due to a shm-size that is too small. Try updating your shm-size according to [this guide](/installation#calculating-required-shm-size). +This error message is due to a shm-size that is too small. Try updating your shm-size according to [this guide](../frigate/installation.md#calculating-required-shm-size). ### I am seeing a solid green image for my camera. @@ -13,7 +13,7 @@ A solid green image means that frigate has not received any frames from ffmpeg. ### How can I get sound or audio in my recordings? {#audio-in-recordings} -By default, Frigate removes audio from recordings to reduce the likelihood of failing for invalid data. If you would like to include audio, you need to override the output args to remove `-an` for where you want to include audio. The recommended audio codec is `aac`. Not all audio codecs are supported by RTMP, so you may need to re-encode your audio with `-c:a aac`. The default ffmpeg args are shown [here](/configuration/index/#full-configuration-reference). +By default, Frigate removes audio from recordings to reduce the likelihood of failing for invalid data. If you would like to include audio, you need to override the output args to remove `-an` for where you want to include audio. The recommended audio codec is `aac`. Not all audio codecs are supported by RTMP, so you may need to re-encode your audio with `-c:a aac`. The default ffmpeg args are shown [here](../configuration/index.md/#full-configuration-reference). :::tip @@ -50,4 +50,4 @@ If you see repeated "On connect called" messages in your config, check for anoth ### Error: Database Is Locked -sqlite does not work well on a network share, if the `/media` folder is mapped to a network share then [this guide](/configuration/advanced#database) should be used to move the database to a location on the internal drive. +sqlite does not work well on a network share, if the `/media` folder is mapped to a network share then [this guide](../configuration/advanced.md#database) should be used to move the database to a location on the internal drive. diff --git a/docs/sidebars.js b/docs/sidebars.js index 5bf6d68ea..14794c910 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -1,6 +1,10 @@ module.exports = { docs: { - Frigate: ["index", "hardware", "installation"], + Frigate: [ + "frigate/index", + "frigate/hardware", + "frigate/installation", + ], Guides: [ "guides/camera_setup", "guides/getting_started", @@ -31,7 +35,11 @@ module.exports = { "integrations/api", "integrations/mqtt", ], - Troubleshooting: ["faqs"], - Development: ["contributing"], + Troubleshooting: [ + "troubleshooting/faqs", + ], + Development: [ + "development/contributing", + ], }, };