frigate/web
Josh Hawkins 7413ce08d4
Merge detector and model in settings UI (#23216)
* add embedded mode to BaseSection so parents can host the save action

* add optional action slot to current Frigate+ model summary

* add w-full to action slot flex wrapper for explicit width contract

* i18n

* merged detectors and model settings view

* fix document title

* Embed detector form in merged settings view

* add detection model card with tabs and custom model embed

* add Frigate+ model selector with filter popover to merged page

* Add mismatch banner and gate save on detector and model compatibility

* Wire atomic save, restart toast, and undo on detectors and model page

* Clear child pending data on undo

* route merged detectors and model view in settings

* trim Frigate+ page to account-only and remove old detection model view

* basic e2e

* Fix unsaved-changes guard, custom path leak, and post-failure cache resync

* Rename to Detectors and model, float Modified badge, use ConfigMessageBanner for mismatch

* Hide Plus/Custom tabs when Frigate+ is not enabled

* Detect active Plus model via model.plus.id instead of path prefix

* Sync state back to snapshot when child form un-modifies and remount on undo

* Always require restart on save since model changes also need one

* Wrap Frigate+ model selector in SplitCardRow with label and description

* rename tab

* update docs

* sync top-level model with default detector's resolved model

when the user doesn't define a top-level `model:` block, `FrigateConfig.model` stayed at pydantic field defaults (320×320, /labelmap.txt) while the per-detector model picked up `DEFAULT_MODEL` for openvino on cpu (300×300, coco_91cl_bkgr.txt introduced in #23127), causing `RemoteObjectDetector` to fail with "buffer is too small for requested array" because the SHM was sized from the per-detector model but mapped using the top-level one. After the detector loop, copy the first detector's resolved model up to `self.model` so both sides agree on dimensions and labelmap

* revert to cpu detector by default

use openvino cpu for new configs only

* add defaults
2026-05-17 11:54:21 -06:00
..
.vscode Update web readme (#12062) 2024-06-19 08:11:51 -06:00
e2e Merge detector and model in settings UI (#23216) 2026-05-17 11:54:21 -06:00
images llc to inc and 2025 to 2026 (#21484) 2026-01-01 09:56:09 -06:00
patches Replace react-tracked and react-use-websocket with useSyncExternalStore (#22386) 2026-03-11 09:02:51 -05:00
public Merge detector and model in settings UI (#23216) 2026-05-17 11:54:21 -06:00
src Merge detector and model in settings UI (#23216) 2026-05-17 11:54:21 -06:00
themes Detail Stream tweaks (#20533) 2025-10-16 14:15:23 -06:00
.eslintrc.cjs Auth! (#11347) 2024-05-18 10:36:13 -06:00
.gitignore chore: i18n use cache key (#20885) 2025-11-14 09:36:46 -06:00
.prettierrc Use prettier-plugin-tailwindcss (#11373) 2024-05-14 09:06:44 -06:00
components.json Add shadcn sidebar component (#20292) 2025-09-30 15:02:35 -06:00
i18next.config.ts i18n workflow improvements and tweaks (#22586) 2026-03-23 08:48:02 -05:00
index.html Various Tweaks (#22609) 2026-03-24 13:53:39 -06:00
login.html clarify trademark and license interaction (#21019) 2025-11-23 08:42:48 -07:00
package-lock.json Bump fast-uri from 3.1.0 to 3.1.2 in /web (#23137) 2026-05-10 12:10:23 -05:00
package.json Bump lodash from 4.17.23 to 4.18.1 in /web (#22787) 2026-04-22 14:39:08 -05:00
postcss.config.js Fix linter and fix lint issues (#10141) 2024-02-28 16:23:56 -06:00
README.md Update web readme (#12062) 2024-06-19 08:11:51 -06:00
site.webmanifest Update webmanifest to use /BASE_PATH/ (#17310) 2025-03-23 05:34:33 -06:00
tailwind.config.cjs Tweaks (#22965) 2026-04-22 09:19:30 -06:00
tsconfig.json Use new UI (#8983) 2024-01-31 12:56:11 +00:00
tsconfig.node.json Use new UI (#8983) 2024-01-31 12:56:11 +00:00
vite.config.ts Full UI configuration (#22151) 2026-02-27 08:55:36 -07:00

This is the Frigate frontend which connects to and provides a User Interface to the Python backend.

Web Development

Installing Web Dependencies Via NPM

Within /web, run:

npm install

Running development frontend

Within /web, run:

PROXY_HOST=<ip_address:port> npm run dev

The Proxy Host can point to your existing Frigate instance. Otherwise defaults to localhost:5000 if running Frigate on the same machine.

Extensions

Install these IDE extensions for an improved development experience:

  • eslint