frigate
NVR with real-time local object detection for IP cameras.
Example
nix
{
nps.stacks.frigate = {
enable = true;
settings = {
ffmpeg.hwaccel_args = "preset-intel-qsv-h264";
go2rtc.streams.birdfeeder = [
"https://<username>:<password>@<ip>:<port>/video/h264"
];
cameras.birdfeeder = {
enabled = true;
ffmpeg.inputs = [
{
path = "rtsp://127.0.0.1:8554/birdfeeder";
input_args = "preset-rtsp-restream";
roles = ["detect" "record"];
}
];
objects.track = ["bird"];
};
record = {
enabled = true;
continuous = {
days = 1;
};
motion = {
days = 1;
};
detections.retain = {
days = 1;
};
alerts.retain = {
days = 1;
};
};
snapshots = {
enabled = true;
retain.default = 7;
};
};
};
}Stack Options
nps.stacks.frigate.enable
Whether to enable frigate.
nps.stacks.frigate.extraEnv
Extra environment variables to set for the container. Variables can be either set directly or sourced from a file (e.g. for secrets).
Environment variables can be used for substitution in the config.yml file.
See https://docs.frigate.video/configuration/config#environment-variable-substitution
Type
plaintext
attribute set of (null or boolean or signed integer or string or absolute path or (submodule))
Default
nix
{ }
Declaration
nps.stacks.frigate.mediaPath
Host directory where the Frigate recordings are stored.
Type
plaintext
string
Default
nix
"${config.nps.storageBaseDir}/frigate/media"
Declaration
nps.stacks.frigate.settings
Settings that will be written to the 'config.yml' file.
If you want to configure settings through the UI, set this option to null.
In that case, no managed config.yml will be provided.
Container Aliases
nps.stacks.frigate.containers.frigate
Alias of {option}services.podman.containers.frigate.
