Skip to content

Commit 06bc9bb

Browse files
Merge remote-tracking branch 'origin/master' into dev
2 parents 161991d + e3e03ec commit 06bc9bb

17 files changed

+131
-31
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ web/node_modules
1616
web/coverage
1717
core
1818
!/web/**/*.ts
19+
.idea/*

docs/docs/configuration/cameras.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ A camera is enabled by default but can be temporarily disabled by using `enabled
1111

1212
Each role can only be assigned to one input per camera. The options for roles are as follows:
1313

14-
| Role | Description |
15-
| ---------- | ---------------------------------------------------------------------------------------------------- |
16-
| `detect` | Main feed for object detection |
17-
| `record` | Saves segments of the video feed based on configuration settings. [docs](/configuration/record) |
18-
| `restream` | Broadcast as RTSP feed and use the full res stream for live view. [docs](/configuration/restream) |
19-
| `rtmp` | Deprecated: Broadcast as an RTMP feed for other services to consume. [docs](/configuration/restream) |
14+
| Role | Description |
15+
| ---------- | ---------------------------------------------------------------------------------------- |
16+
| `detect` | Main feed for object detection |
17+
| `record` | Saves segments of the video feed based on configuration settings. [docs](record.md) |
18+
| `restream` | Broadcast as RTSP feed and use the full res stream for live view. [docs](restream.md) |
19+
| `rtmp` | Deprecated: Broadcast as an RTMP feed for other services to consume. [docs](restream.md) |
2020

2121
```yaml
2222
mqtt:
@@ -48,4 +48,4 @@ cameras:
4848
side: ...
4949
```
5050

51-
For camera model specific settings check the [camera specific](/configuration/camera_specific) infos.
51+
For camera model specific settings check the [camera specific](camera_specific.md) infos.

docs/docs/configuration/hardware_acceleration.md

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ It is recommended to update your configuration to enable hardware accelerated de
77

88
### Raspberry Pi 3/4
99

10+
:::caution
11+
12+
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
13+
14+
:::
15+
1016
Ensure you increase the allocated RAM for your GPU to at least 128 (raspi-config > Performance Options > GPU Memory).
1117
**NOTICE**: If you are using the addon, you may need to turn off `Protection mode` for hardware acceleration.
1218

docs/docs/configuration/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ For Home Assistant Addon installations, the config file needs to be in the root
77

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

10-
It is recommended to start with a minimal configuration and add to it as described in [this guide](/guides/getting_started):
10+
It is recommended to start with a minimal configuration and add to it as described in [this guide](../guides/getting_started.md):
1111

1212
```yaml
1313
mqtt:

docs/docs/configuration/objects.mdx

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Frigate includes the object models listed below from the Google Coral test data.
99

1010
Please note:
1111
- `car` is listed twice because `truck` has been renamed to `car` by default. These object types are frequently confused.
12-
- `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.
12+
- `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.
1313

1414
<ul>
1515
{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
2525
- EdgeTPU Model: `/edgetpu_model.tflite`
2626
- Labels: `/labelmap.txt`
2727

28-
You also need to update the [model config](/configuration/advanced#model) if they differ from the defaults.
28+
You also need to update the [model config](advanced.md#model) if they differ from the defaults.

docs/docs/configuration/zones.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Zones cannot have the same name as a camera. If desired, a single zone can inclu
99

1010
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.
1111

12-
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.
12+
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.
1313

1414
### Restricting zones to specific objects
1515

File renamed without changes.

docs/docs/hardware.md docs/docs/frigate/hardware.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Cameras that output H.264 video and AAC audio will offer the most compatibility
99

1010
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.
1111

12-
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.
12+
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.
1313

1414
Here are some of the camera's I recommend:
1515

File renamed without changes.
File renamed without changes.

docs/docs/guides/getting_started.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ id: getting_started
33
title: Creating a config file
44
---
55

6-
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)
6+
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)
77

88
### Step 1: Configure the MQTT server (Optional)
99

@@ -30,7 +30,7 @@ mqtt:
3030
password: <password>
3131
```
3232
33-
Frigate supports many configuration options for mqtt. See the [configuration reference](/configuration/index#full-configuration-reference) for more info.
33+
Frigate supports many configuration options for mqtt. See the [configuration reference](../configuration/index.md#full-configuration-reference) for more info.
3434
3535
### Step 2: Configure detectors
3636
@@ -46,7 +46,7 @@ detectors:
4646
device: usb
4747
```
4848
49-
More details on available detectors can be found [here](/configuration/detectors).
49+
More details on available detectors can be found [here](../configuration/detectors.md).
5050
5151
### Step 3: Add a minimal camera configuration
5252
@@ -82,11 +82,11 @@ At this point you should be able to start Frigate and see the the video feed in
8282
8383
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.
8484
85-
FFmpeg arguments for other types of cameras can be found [here](/configuration/camera_specific).
85+
FFmpeg arguments for other types of cameras can be found [here](../configuration/camera_specific.md).
8686
8787
### Step 5: Configure hardware acceleration (optional)
8888
89-
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.
89+
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.
9090
9191
In order to best evaluate the performance impact of hardware acceleration, it is recommended to temporarily disable detection.
9292
@@ -122,7 +122,7 @@ cameras:
122122
123123
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.
124124
125-
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).
125+
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).
126126
127127
:::caution
128128
@@ -185,7 +185,7 @@ cameras:
185185

186186
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.
187187

188-
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).
188+
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).
189189

190190
### Step 8: Enable snapshots (optional)
191191

@@ -205,4 +205,4 @@ cameras:
205205
motion: ...
206206
```
207207

208-
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).
208+
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).

docs/docs/guides/ha_notifications.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ title: Home Assistant notifications
55

66
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.
77

8-
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).
8+
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).
99

1010
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.
1111

docs/docs/guides/reverse_proxy.md

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
id: reverse_proxy
3+
title: Setting up a Reverse Proxy
4+
---
5+
6+
This guide outlines the basic configuration steps needed to expose your Frigate UI to the internet.
7+
A common way of accomplishing this is to use a reverse proxy webserver between your router and your Frigate instance.
8+
A reverse proxy accepts HTTP requests from the public internet and redirects them transparently to internal webserver(s) on your network.
9+
10+
The suggested steps are:
11+
- **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
12+
- **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
13+
- **Restrict** access to your Frigate instance at the proxy using, for example, password authentication
14+
15+
:::caution
16+
A reverse proxy can be used to secure access to an internal webserver but the user will be entirely reliant
17+
on the steps they have taken. You must ensure you are following security best practices.
18+
This page does not attempt to outline the specific steps needed to secure your internal website.
19+
Please use your own knowledge to assess and vet the reverse proxy software before you install anything on your system.
20+
:::
21+
22+
There are several technologies available to implement reverse proxies. This document currently suggests one, using Apache2,
23+
and the community is invited to document others through a contribution to this page.
24+
25+
## Apache2 Reverse Proxy
26+
27+
In the configuration examples below, only the directives relevant to the reverse proxy approach above are included.
28+
On Debian Apache2 the configuration file will be named along the lines of `/etc/apache2/sites-available/cctv.conf`
29+
30+
### Step 1: Configure the Apache2 Reverse Proxy
31+
32+
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.
33+
Here we access Frigate via https://cctv.mydomain.co.uk
34+
```xml
35+
<VirtualHost *:443>
36+
ServerName cctv.mydomain.co.uk
37+
38+
ProxyPreserveHost On
39+
ProxyPass "/" "http://frigatepi.local:5000/"
40+
ProxyPassReverse "/" "http://frigatepi.local:5000/"
41+
42+
ProxyPass /ws ws://frigatepi.local:5000/ws
43+
ProxyPassReverse /ws ws://frigatepi.local:5000/ws
44+
45+
ProxyPass /live/ ws://frigatepi.local:5000/live/
46+
ProxyPassReverse /live/ ws://frigatepi.local:5000/live/
47+
48+
RewriteEngine on
49+
RewriteCond %{HTTP:Upgrade} =websocket [NC]
50+
RewriteRule /(.*) ws://frigatepi.local:5000/$1 [P,L]
51+
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
52+
RewriteRule /(.*) http://frigatepi.local:5000/$1 [P,L]
53+
</VirtualHost>
54+
```
55+
56+
### Step 2: Use SSL to encrypt access to your Frigate instance
57+
58+
Whilst this won't, on its own, prevent access to your Frigate webserver it will encrypt all content (such as login credentials).
59+
Installing SSL is beyond the scope of this document but [Let's Encrypt](https://letsencrypt.org/) is a widely used approach.
60+
This Apache2 configuration snippet then results in unencrypted requests being redirected to the webserver SSL port
61+
62+
```xml
63+
<VirtualHost *:80>
64+
ServerName cctv.mydomain.co.uk
65+
RewriteEngine on
66+
RewriteCond %{SERVER_NAME} =cctv.mydomain.co.uk
67+
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
68+
</VirtualHost>
69+
```
70+
71+
### Step 3: Authenticate users at the proxy
72+
73+
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).
74+
75+
```xml
76+
<VirtualHost *:443>
77+
<Location />
78+
AuthType Basic
79+
AuthName "Restricted Files"
80+
AuthUserFile "/var/www/passwords"
81+
Require user paul
82+
</Location>
83+
</VirtualHost>
84+
```

docs/docs/guides/stationary_objects.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Frigate is designed to track objects as they move and over-masking can prevent i
1717

1818
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.
1919

20-
See [this example](/configuration/zones#restricting-zones-to-specific-objects) from the Zones documentation to see how to restrict zones to certain object types.
20+
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.
2121

2222
![Driveway Zones](/img/driveway_zones-min.png)
2323

docs/docs/integrations/home-assistant.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ This is accessible via "Media Browser" on the left menu panel in Home Assistant.
9090
The integration supports casting clips and camera streams to supported media devices.
9191

9292
:::tip
93-
For clips to be castable to media devices, audio is required and may need to be [enabled for recordings](../faqs.md#audio-in-recordings).
93+
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).
9494

9595
**NOTE: Even if you camera does not support audio, audio will need to be enabled for Casting to be accepted.**
9696

@@ -134,7 +134,7 @@ For advanced usecases, this behavior can be changed with the [RTMP URL
134134
template](#options) option. When set, this string will override the default stream
135135
address that is derived from the default behavior described above. This option supports
136136
[jinja2 templates](https://jinja.palletsprojects.com/) and has the `camera` dict
137-
variables from [Frigate API](https://blakeblackshear.github.io/frigate/usage/api#apiconfig)
137+
variables from [Frigate API](api.md)
138138
available for the template. Note that no Home Assistant state is available to the
139139
template, only the camera dict from Frigate.
140140

@@ -171,7 +171,7 @@ The Frigate integration seamlessly supports the use of multiple Frigate servers.
171171
In order for multiple Frigate instances to function correctly, the
172172
`topic_prefix` and `client_id` parameters must be set differently per server.
173173
See [MQTT
174-
configuration](https://blakeblackshear.github.io/frigate/configuration/index#mqtt)
174+
configuration](mqtt.md)
175175
for how to set these.
176176

177177
#### API URLs

0 commit comments

Comments
 (0)