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",
+ ],
},
};