Frigate

Get Started with Apps!
Keywords: camera, nvr
Train: Community
Home Page: https://frigate.video/
Added: 2024-09-12
Last Updated: 2025-04-23
Frigate is an NVR With Realtime Object Detection for IP Cameras
Run as Context- Frigate runs as root user.
Group: 0 / root
User: 0 / root



Security Capabilities
- Frigate is able to chown files.
- Frigate are able to bypass permission checks for it's sub-processes.
- Frigate is able to bypass permission checks.
- Frigate is able to set group ID for it's sub-processes.
- Frigate is able to set user ID for it's sub-processes.
- Frigate is able to monitor performance counters.
App Metadata (Raw File)
{
"1.1.21": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/frigate/1.1.21",
"last_update": "2025-04-23 17:40:39",
"required_features": [],
"human_version": "0.15.1_1.1.21",
"version": "1.1.21",
"app_metadata": {
"app_version": "0.15.1",
"capabilities": [
{
"description": "Frigate is able to chown files.",
"name": "CHOWN"
},
{
"description": "Frigate are able to bypass permission checks for it's sub-processes.",
"name": "FOWNER"
},
{
"description": "Frigate is able to bypass permission checks.",
"name": "DAC_OVERRIDE"
},
{
"description": "Frigate is able to set group ID for it's sub-processes.",
"name": "SETGID"
},
{
"description": "Frigate is able to set user ID for it's sub-processes.",
"name": "SETUID"
},
{
"description": "Frigate is able to monitor performance counters.",
"name": "PERFMON"
}
],
"categories": [
"security"
],
"changelog_url": "https://github.com/blakeblackshear/frigate/releases",
"date_added": "2024-09-12",
"description": "Frigate is an NVR With Realtime Object Detection for IP Cameras",
"home": "https://frigate.video/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/frigate/icons/icon.svg",
"keywords": [
"camera",
"nvr"
],
"lib_version": "2.1.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "frigate",
"run_as_context": [
{
"description": "Frigate runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/frigate/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/frigate/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/frigate/screenshots/screenshot3.png"
],
"sources": [
"https://github.com/blakeblackshear/frigate"
],
"title": "Frigate",
"train": "community",
"version": "1.1.21"
},
"schema": {
"groups": [
{
"name": "Frigate Configuration",
"description": "Configure Frigate"
},
{
"name": "Network Configuration",
"description": "Configure Network for Frigate"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Frigate"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Frigate"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Frigate"
}
],
"questions": [
{
"variable": "TZ",
"group": "Frigate Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "frigate",
"label": "",
"group": "Frigate Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "image_selector",
"label": "Image Selector",
"description": "The image to use for Frigate.",
"schema": {
"type": "string",
"default": "image",
"required": true,
"enum": [
{
"value": "image",
"description": "Normal Image"
},
{
"value": "tensorrt_image",
"description": "TensorRT Image"
},
{
"value": "rocm_image",
"description": "ROCm Image"
}
]
}
},
{
"variable": "shm_size_mb",
"label": "Shared Memory Size (in MiB)",
"description": "The size of the shared memory to use for Frigate.",
"schema": {
"type": "int",
"default": 64,
"min": 30,
"max": 2048,
"required": true
}
},
{
"variable": "mount_usb_bus",
"label": "Mount USB Bus",
"description": "Mount the USB bus to the container.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "devices",
"label": "Devices",
"description": "Devices to use for Frigate.\nEg: Host Device: /dev/apex_0, Container Device: /dev/apex_0\n",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "device",
"label": "Device",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "host_device",
"label": "Host Device",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "container_device",
"label": "Container Device",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
},
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"description": "Configure additional environment variables for Frigate.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "env",
"label": "Environment Variable",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "network",
"label": "",
"group": "Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "host_network",
"label": "Host Network",
"description": "Bind to the host network. It's recommended to keep this disabled.\n",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": false,
"subquestions": [
{
"variable": "web_port",
"label": "WebUI Port (Auth)",
"description": "The port for Frigate WebUI",
"schema": {
"type": "int",
"default": 30058,
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "enable_no_auth",
"label": "Enable No Auth",
"description": "Enable No Auth for Frigate.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "no_auth_port",
"label": "WebUI Port (No Auth)",
"description": "The port for Frigate WebUI (No Auth)",
"schema": {
"type": "int",
"default": 30059,
"show_if": [
[
"enable_no_auth",
"=",
true
]
],
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "enable_rtsp",
"label": "Enable RTSP",
"description": "Enable RTSP for Frigate.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "rtsp_port",
"label": "RTSP Port",
"description": "The RTSP port for Frigate.</br>\nInternal port: 8554\n",
"schema": {
"type": "int",
"default": 30060,
"show_if": [
[
"enable_rtsp",
"=",
true
]
],
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "enable_webrtc",
"label": "Enable WebRTC",
"description": "Enable WebRTC for Frigate.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "webrtc_port",
"label": "WebRTC Port",
"description": "The WebRTC port for Frigate.</br>\nInternal port: 8555</br>\nApplies to both TCP and UDP.\n",
"schema": {
"type": "int",
"default": 30061,
"show_if": [
[
"enable_webrtc",
"=",
true
]
],
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "enable_go2rtc",
"label": "Enable Go2RTC",
"description": "Enable Go2RTC for Frigate.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "go2rtc_port",
"label": "Go2RTC Port",
"description": "The port for Frigate Go2RTC",
"schema": {
"type": "int",
"show_if": [
[
"enable_go2rtc",
"=",
true
]
],
"default": 30062,
"required": true,
"$ref": [
"definitions/port"
]
}
}
]
}
},
{
"variable": "certificate_id",
"label": "Certificate",
"description": "The certificate to use for Frigate.",
"schema": {
"type": "int",
"null": true,
"$ref": [
"definitions/certificate"
]
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "config",
"label": "Frigate Config Storage",
"description": "The path to store Frigate Config.",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "ix_volume",
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "config"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "media",
"label": "Frigate Media Storage",
"description": "The path to store Frigate Media.",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "ix_volume",
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "media"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "cache",
"label": "Frigate Cache Storage",
"description": "The path to store Frigate Cache.",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\ntmpfs: Is a temporary directory that will be created on the RAM.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "ix_volume",
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
},
{
"value": "tmpfs",
"description": "tmpfs (Temporary directory created on the RAM)"
}
]
}
},
{
"variable": "tmpfs_config",
"label": "tmpfs Configuration",
"description": "The configuration for the tmpfs dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"tmpfs"
]
],
"attrs": [
{
"variable": "size",
"label": "Tmpfs Size Limit (in Mi)",
"description": "The maximum size (in Mi) of the temporary directory.</br>\nFor example: 500\n",
"schema": {
"type": "int",
"default": 500,
"required": true
}
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "cache"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "additional_storage",
"label": "Additional Storage",
"description": "Additional storage for Frigate.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "storageEntry",
"label": "Storage Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.\n",
"schema": {
"type": "string",
"required": true,
"default": "ix_volume",
"immutable": true,
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
},
{
"value": "cifs",
"description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
}
]
}
},
{
"variable": "read_only",
"label": "Read Only",
"description": "Mount the volume as read only.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mount_path",
"label": "Mount Path",
"description": "The path inside the container to mount the storage.",
"schema": {
"type": "path",
"required": true
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "storage_entry"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
}
]
}
},
{
"variable": "cifs_config",
"label": "SMB Configuration",
"description": "The configuration for the SMB dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"cifs"
]
],
"attrs": [
{
"variable": "server",
"label": "Server",
"description": "The server to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "path",
"label": "Path",
"description": "The path to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "username",
"label": "Username",
"description": "The username to use for the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "password",
"label": "Password",
"description": "The password to use for the SMB share.",
"schema": {
"type": "string",
"required": true,
"private": true
}
},
{
"variable": "domain",
"label": "Domain",
"description": "The domain to use for the SMB share.",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "labels",
"label": "",
"group": "Labels Configuration",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "label",
"label": "Label",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "containers",
"label": "Containers",
"description": "Containers where the label should be applied",
"schema": {
"type": "list",
"items": [
{
"variable": "container",
"label": "Container",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "frigate",
"description": "frigate"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "resources",
"label": "",
"group": "Resources Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Limits",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "cpus",
"label": "CPUs",
"description": "CPUs limit for Frigate.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Frigate.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
},
{
"variable": "gpus",
"group": "Resources Configuration",
"label": "GPU Configuration",
"schema": {
"type": "dict",
"$ref": [
"definitions/gpu_configuration"
],
"attrs": []
}
}
]
}
}
]
},
"readme": "<h1>Frigate</h1> <p><a href=\"https://github.com/blakeblackshear/frigate\">Frigate</a> is an NVR With Realtime Object Detection for IP Cameras</p> <blockquote> <p>Note: Coral <strong>m.2</strong> TPU devices is not supported.</p> </blockquote>",
"changelog": null,
"chart_metadata": {
"app_version": "0.15.1",
"capabilities": [
{
"description": "Frigate is able to chown files.",
"name": "CHOWN"
},
{
"description": "Frigate are able to bypass permission checks for it's sub-processes.",
"name": "FOWNER"
},
{
"description": "Frigate is able to bypass permission checks.",
"name": "DAC_OVERRIDE"
},
{
"description": "Frigate is able to set group ID for it's sub-processes.",
"name": "SETGID"
},
{
"description": "Frigate is able to set user ID for it's sub-processes.",
"name": "SETUID"
},
{
"description": "Frigate is able to monitor performance counters.",
"name": "PERFMON"
}
],
"categories": [
"security"
],
"changelog_url": "https://github.com/blakeblackshear/frigate/releases",
"date_added": "2024-09-12",
"description": "Frigate is an NVR With Realtime Object Detection for IP Cameras",
"home": "https://frigate.video/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/frigate/icons/icon.svg",
"keywords": [
"camera",
"nvr"
],
"lib_version": "2.1.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "frigate",
"run_as_context": [
{
"description": "Frigate runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/frigate/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/frigate/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/frigate/screenshots/screenshot3.png"
],
"sources": [
"https://github.com/blakeblackshear/frigate"
],
"title": "Frigate",
"train": "community",
"version": "1.1.21"
}
}
}
Support, maintenance, and documentation for applications within the Community catalog is handled by the TrueNAS community. The TrueNAS Applications Portal hosts but does not validate or maintain any linked resources associated with this app.
There currently aren’t any resources available for this application!
Please help the TrueNAS community create content or discuss this application in the TrueNAS Community forum.