mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-01-23 12:38:29 +03:00
Implements a complete GUI-based configuration editor that provides a user-friendly alternative to editing YAML files. No more YAML nightmares! ## Features ### Complete Coverage - ALL 500+ configuration fields across 70+ nested objects accessible - 35 top-level sections with 100% schema coverage - 27 camera fields with 20 nested sub-configurations - Every detector type, every option, every setting ### User-Friendly Interface - 17+ tabbed sections for logical organization - Schema-driven form generation (auto-adapts to new fields) - Tooltips on every field with descriptions - Real-time validation with helpful error messages - Smart defaults pre-filled - Example values in placeholders ### Sections Include - Cameras (streams, detection, zones, recording, motion, PTZ) - Detectors (Coral, OpenVINO, TensorRT, CPU, etc.) - Objects (tracking, filters, masks) - Recording (retention, storage, events) - Snapshots (capture, retention) - Motion Detection - MQTT (broker, topics) - Audio Detection & Transcription - Face Recognition - License Plate Recognition (LPR) - Semantic Search - Birdseye View - Review System - GenAI Integration - Authentication & Roles - UI Preferences - Advanced (database, logging, telemetry, networking, proxy, TLS) ### Technical Implementation - React Hook Form for performant form state - Schema-driven architecture (single source of truth) - TypeScript for type safety - Radix UI components for accessibility - Comprehensive validation - YAML ↔ GUI mode toggle ### Files Added - web/src/components/config/GuiConfigEditor.tsx - Main editor - web/src/components/config/SchemaFormRenderer.tsx - Schema-to-UI engine - web/src/components/config/fields/* - Field components (7 types) - web/src/components/config/sections/* - Section components - web/src/lib/configUtils.ts - YAML conversion & validation - web/src/types/configSchema.ts - TypeScript types - docs/docs/guides/config_gui.md - User documentation - COMPLETE_CONFIG_SCHEMA.json - Full schema reference - CONFIG_SCHEMA_SUMMARY.md - Schema documentation - verify_gui_completeness.py - Coverage verification script ### Verification Smoke test confirms 100% coverage: - ✅ 35 top-level sections (ALL in schema) - ✅ 26 explicit GUI tabs - ✅ 27 camera fields with 20 sub-configs - ✅ All JSON Schema types supported - ✅ Every field accessible |
||
|---|---|---|
| .. | ||
| .vscode | ||
| images | ||
| public | ||
| src | ||
| themes | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| .prettierrc | ||
| components.json | ||
| index.html | ||
| login.html | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| site.webmanifest | ||
| tailwind.config.cjs | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
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