Installation
Frigate is a Docker container that can be run on any Docker host including as a Home Assistant App. Note that the Home Assistant App is not the same thing as the integration. The integration is required to integrate Frigate into Home Assistant, whether you are running Frigate as a standalone Docker container or as a Home Assistant App.
If you already have Frigate installed as a Home Assistant App, check out the getting started guide to configure Frigate.
Dependenciesโ
MQTT broker (optional) - An MQTT broker is optional with Frigate, but is required for the Home Assistant integration. If using Home Assistant, Frigate and Home Assistant must be connected to the same MQTT broker.
Preparing your hardwareโ
Operating Systemโ
Frigate runs best with Docker installed on bare metal Debian-based distributions. For ideal performance, Frigate needs low overhead access to underlying hardware for the Coral and GPU devices. Running Frigate in a VM on top of Proxmox, ESXi, Virtualbox, etc. is not recommended though some users have had success with Proxmox.
Windows is not officially supported, but some users have had success getting it to run under WSL or Virtualbox. Getting the GPU and/or Coral devices properly passed to Frigate may be difficult or impossible. Search previous discussions or issues for help.
Storageโ
Frigate uses the following locations for read/write operations in the container. Docker volume mappings can be used to map these to any location on your host machine.
/config: Used to store the Frigate config file and sqlite database. You will also see a few files alongside the database file while Frigate is running./media/frigate/clips: Used for snapshot storage. In the future, it will likely be renamed fromclipstosnapshots. The file structure here cannot be modified and isn't intended to be browsed or managed manually./media/frigate/recordings: Internal system storage for recording segments. The file structure here cannot be modified and isn't intended to be browsed or managed manually./media/frigate/exports: Storage for clips and timelapses that have been exported via the WebUI or API./tmp/cache: Cache location for recording segments. Initial recordings are written here before being checked and converted to mp4 and moved to the recordings folder. Segments generated via theclip.mp4endpoints are also concatenated and processed here. It is recommended to use atmpfsmount for this./dev/shm: Internal cache for raw decoded frames in shared memory. It is not recommended to modify this directory or map it with docker. The minimum size is impacted by theshm-sizecalculations below.
Portsโ
The following ports are used by Frigate and can be mapped via docker as required.
| Port | Description |
|---|---|
8971 | Authenticated UI and API access without TLS. Reverse proxies should use this port. |
5000 | Internal unauthenticated UI and API access. Access to this port should be limited. Intended to be used within the docker network for services that integrate with Frigate. |
8554 | RTSP restreaming. By default, these streams are unauthenticated. Authentication can be configured in go2rtc section of config. |
8555 | WebRTC connections for cameras with two-way talk support. |
Common Docker Compose storage configurationsโ
Writing to a local disk or external USB drive:
services:
frigate:
...
volumes:
- /path/to/your/config:/config
- /path/to/your/storage:/media/frigate
- type: tmpfs # 1GB In-memory filesystem for recording segment storage
target: /tmp/cache
tmpfs:
size: 1000000000
...
Users of the Snapcraft build of Docker cannot use storage locations outside your $HOME folder.