Frigate Network Video Recorder

This lab guides students through designing, deploying, and optimizing a local edge AI surveillance pipeline using the Frigate Network Video Recorder system. Students configure network topologies using Power-over-Ethernet (PoE) and dual network interfaces to physically isolate IP surveillance cameras while ingesting multi-resolution RTSP and ONVIF video streams. Working with host compute hardware and dedicated edge AI accelerators such as neural processing units (NPUs), Edge TPUs, or GPUs, students benchmark video decoding pipelines, tune motion masks and detection zones, and evaluate real-time object detection latency and throughput. Through hands-on experimentation, students learn the fundamentals of computer vision inference acceleration, hardware-accelerated video decoding, low-latency streaming protocols such as WebRTC and HLS, and event-driven automation architectures utilizing MQTT and REST APIs.

network video recorder NVR edge AI computer vision IP surveillance cameras RTSP Real-Time Streaming Protocol ONVIF object detection neural processing unit NPU Edge TPU hardware acceleration Power-over-Ethernet PoE video decoding WebRTC MQTT OpenVINO TensorRT

Uploaded by demo on 2026-09-03 · ready · Electronics · Original source ↗

Files: Frigate_README.md · hardware.md · requirements-wheels.txt · web_package.json

Readiness checks

  • complete 2026-09-03 16:03 🛡 Cybersecurity: Review before networking · 28 findings 22 searches · 24 pages
    view · PDF

Latest report — 2026-09-03 16:03

Readiness: Frigate Network Video Recorder

Verdict: Ready with caveats · 2026-09-03 · est. parts cost $450–$900 for a one-camera system Cybersecurity — software & network: Review before networking

This is the cold check for this lab — there is no previous report, so every price and stock level below is the baseline the next check will measure drift against. The bill of materials is a menu of alternatives rather than a shopping list: Frigate needs one host, at most one AI accelerator, and one or more cameras, so a troubled line only matters if its whole section is troubled. No section is. A Raspberry Pi 5 8 GB is in stock at an authorized distributor for $175.00, the Raspberry Pi AI HAT+ accelerator is in stock at $70.00 (13 TOPS) or $110.00 (26 TOPS), an Intel Arc A310 starts at $144.99, and the lab's primary recommended camera is an exact-model match at $199.99. What keeps this off a clean "Ready" is that the Google Coral accelerators most older Frigate guides lead with have no authorized-distributor stock at all, the Raspberry Pi AI Kit named in the BOM has been replaced in the reseller channel by the AI HAT+, the Hikvision panoramic camera could not be found for sale anywhere checked, and four BOM lines were not priced at all this run.

Action required

Part Problem Recommended action
Google Coral USB Accelerator (G950-06809-01) No authorized-distributor stock: Arrow shows 0 on hand, a 22-week factory lead time and only a 1,584-piece price break. Retail resellers want $107–$120 for a part the snapshot already calls deprecated. Do not buy Coral for new builds. Use the Raspberry Pi AI HAT+ on a Pi 5 host, or the host's own Intel iGPU/NPU under OpenVINO, or an Intel Arc / Nvidia card on an x86 host — all sanctioned by the snapshot.
Google Coral M.2 Accelerator A+E key (G650-04527-01) Same broken channel: Arrow is the only authorized distributor and shows "Out of stock" at $29.63. Same as above. Do not read the $55.24 "Dual Edge TPU" M.2 listing as this part — it is a different board.
Raspberry Pi AI Kit (Hailo-8L) The reseller product URL for the AI Kit now serves the Raspberry Pi AI HAT+ 13 TOPS page instead; no price or stock for the AI Kit itself was found anywhere this run. Order the AI HAT+ 13 TOPS (SC1785, $70.00, in stock). Note the AI HAT+ integrates the accelerator, so an existing AI Kit's M.2 2242 module cannot be moved over.
Hailo-8 M.2 Module (HM218B1C2GA) Not stocked by DigiKey and listed by no ECIA-authorized distributor. The Hailo-8 silicon is current, but that order code is unobtainable through the channels checked. On a Raspberry Pi 5 host, buy the AI HAT+ 26 TOPS (SC1791, $110.00, in stock). For an x86 host, no priced bare M.2 card was found — use the host iGPU/NPU or a PCIe GPU instead.
Hikvision DS-2CD2387G2P-LSU/SL No purchasable route found: 0 products at DigiKey, no ECIA-authorized distributor, and an empty Google Shopping result set for the exact model. Verify availability with a security-channel dealer directly. If it is gone, drop the panoramic option and cover the same field of view with two fixed cameras.
Beelink EQ13 Mini PC (N100, dual GbE) The exact EQ13 N100 did not appear in this run's retail results. Substitute any dual-NIC x86-64 Intel host with AVX2 — but not the EQ14, which appears at $375.00 and which Frigate's own documentation blacklists.
Loryta / Dahua IPC-T54IR-AS The bare -AS SKU is not listed; the current -S3 revision appears only in a 10-camera bulk kit at $1,879.91. Buy the IPC-T549M-ALED-S3 instead ($199.99, exact model match, single unit) unless IR night vision specifically is required.

Cybersecurity — software & network

Review before networking — The recorder ships a deliberately unauthenticated admin API on port 5000 and prints its generated admin password to the log, and this run confirmed published vulnerabilities in the web UI's HTTP client and in the backend's upload parser, which the project pins to a version with no available fix.

Component Version How known Support status
Frigate NVR (application) not determined not determined (The lab materials name no Frigate release; dependency files were read from the project's dev branch this run) —
Debian (container base OS) 12 read from project (docker/main/Dockerfile: ARG BASE_IMAGE=debian:12 / SLIM_BASE=debian:12-slim) extended/LTS support only until 2028-06-30
Python (backend runtime) 3.11 inferred (cp311 wheel tags in docker/main/requirements-wheels.txt; no interpreter version is stated directly) supported until 2027-10-31
Frigate backend Python dependencies not determined unpinned (docker/main/requirements-wheels.txt: 64 of 67 rows are ==X.Y.* series constraints, not exact versions) —
NVIDIA Linux display driver 545 inferred (snapshot: hardware.md states a minimum driver version of 545 for CUDA 12.x) —
NVIDIA JetPack (Jetson hosts) 6 inferred (snapshot: hardware.md requires JetPack 6 for the TensorRT and ONNX detectors) —
tflite_runtime 2.17.1 inferred (read from the wheel release URLs in docker/main/requirements-wheels.txt (v2.17.1 tags), not from an exact == pin) —
py3nvml not determined unpinned (docker/main/requirements-wheels.txt installs git+https://github.com/fbcotter/py3nvml with no tag or commit) —
python-multipart 0.0.26 read from project (exact pin in docker/main/requirements-wheels.txt) —
axios 1.13.6 read from project (pinned in web/package-lock.json) —
js-yaml 4.1.1 read from project (pinned in web/package-lock.json) —
react-router 6.30.3 read from project (pinned in web/package-lock.json) —
react-router-dom 6.30.3 read from project (pinned in web/package-lock.json) —
@remix-run/router 1.23.2 read from project (pinned in web/package-lock.json) —
follow-redirects 1.15.11 read from project (pinned in web/package-lock.json) —
fast-uri 3.1.2 read from project (pinned in web/package-lock.json) —
form-data 4.0.5 read from project (pinned in web/package-lock.json) —
i18next-http-backend 3.0.1 read from project (pinned in web/package-lock.json) —
nanoid 3.3.11 read from project (pinned in web/package-lock.json) —
object-path 0.6.0 read from project (pinned in web/package-lock.json) —
uuid 13.0.0 read from project (pinned in web/package-lock.json) —
postcss 8.5.8 read from project (pinned in web/package-lock.json) —
brace-expansion 1.1.11 read from project (pinned in web/package-lock.json) —
braces 3.0.2 read from project (pinned in web/package-lock.json) —
micromatch 4.0.5 read from project (pinned in web/package-lock.json) —
picomatch 2.3.1 read from project (pinned in web/package-lock.json) —
vite 6.4.2 read from project (pinned in web/package-lock.json) —
vitest 3.0.7 read from project (pinned in web/package-lock.json) —
Component Finding Severity Fix available?
vitest With the Vitest UI server listening, any file on the machine can be read and executed; this is the test runner, so it only matters if someone runs the UI test server on the lab machine. — GHSA-5xrq-8626-4rwp critical Yes - update to 3.2.6
axios The HTTP client the Frigate web UI uses carries 28 advisories at this version, the most serious being a full man-in-the-middle via prototype pollution in the proxy config plus several header-leak and denial-of-service issues. — GHSA-35jp-ww65-95wh, GHSA-777c-7fjr-54vf, GHSA-hfxv-24rg-xrqf, GHSA-j5f8-grm9-p9fc (+2 more) high Yes - update to 1.16.0 (web/package.json already allows it with ^1.13.6; refresh web/package-lock.json)
brace-expansion Denial-of-service flaws in a glob helper used by the frontend build chain; not reachable from a running Frigate container. — GHSA-rgw5-rvv9-x895, GHSA-mh99-v99m-4gvg, GHSA-3jxr-9vmj-r5cp, GHSA-f886-m6hf-6m8v (+1 more) high Yes - update to 1.1.18
braces Uncontrolled resource consumption in another build-chain glob helper; build tooling only. — GHSA-grv7-fg5c-xmjg high Yes - update to 3.0.3
fast-uri The URI parser used by the UI's schema validation mis-normalises hostnames in six different ways, which can be used for server-side request forgery or host confusion wherever a URL from the config is trusted. — GHSA-f65p-4m7j-42xc, GHSA-fph4-wmhf-6fwf, GHSA-jqff-g426-hqxp, GHSA-7p8r-x3mc-p8w7 (+2 more) high Yes - update to 3.1.6
form-data CRLF injection through unescaped multipart field names lets a crafted upload forge extra headers. — GHSA-hmw2-7cc7-3qxx high Yes - update to 4.0.6
js-yaml The YAML parser behind Frigate's in-browser configuration editor can be pushed into quadratic CPU consumption by a crafted config, hanging the editor for the person who opens it. — GHSA-5p4m-2wfm-xmqj, GHSA-52cp-r559-cp3m, GHSA-h67p-54hq-rp68 high Yes - update to 4.3.1
nanoid The ID generator can loop indefinitely or wrap around on hostile input, which would hang whichever UI component asked for an ID. — GHSA-xwg4-73v4-xw9w, GHSA-28wg-ghj8-5hjv, GHSA-2v37-7h3g-55p8 high Yes - update to 3.3.18
object-path Three prototype-pollution flaws in a long-outdated helper that the UI's JSON-schema form stack pulls in; prototype pollution is the usual first step towards script injection in a browser app. — GHSA-cwx2-736x-mf6w, GHSA-8v63-cqqc-6r2c, GHSA-v39p-96qg-c8rf high Yes - update to 0.11.8
picomatch Regular-expression denial of service and incorrect glob matching in the build chain; build tooling only. — GHSA-c2c7-rcm5-vvqj, GHSA-3v7f-55p6-f55p high Yes - update to 2.3.2
postcss Arbitrary local file disclosure through an attacker-controlled source-map comment; this is frontend build tooling, so it bites whoever builds the UI from source, not a running Frigate container. — GHSA-r28c-9q8g-f849, GHSA-6g55-p6wh-862q, GHSA-qx2v-qp2m-jg93, GHSA-fxqj-rqcc-2cmp high Yes - update to 8.5.23
python-multipart Frigate's FastAPI backend parses uploaded form data with this library, and this version can be driven into a CPU denial of service or made to buffer a whole request body in memory by a crafted upload - reachable by anyone who can reach the API. — GHSA-5rvq-cxj2-64vf, GHSA-pp6c-gr5w-3c5g, GHSA-6jv3-5f52-599m, GHSA-v9pg-7xvm-68hf (+1 more) high No - project pins ==0.0.26 in docker/main/requirements-wheels.txt (fixed in 0.0.30); needs an upstream Frigate bump
vite A file-serving restriction bypass in the development server; it only applies while someone is running the Vite dev server on Windows, not to a built Frigate image. — GHSA-fx2h-pf6j-xcff, GHSA-v6wh-96g9-6wx3 high Yes - update to 6.4.3
@remix-run/router The routing core underneath React Router carries the same protocol-relative open-redirect issue. — GHSA-2j2x-hqr9-3h42 moderate Yes - update to 1.23.3
follow-redirects Custom authentication headers are leaked to a cross-domain redirect target, which matters for the outbound calls Frigate makes to cloud AI and push-notification endpoints. — GHSA-r4q5-vmmm-2653 moderate Yes - update to 1.16.0
i18next-http-backend The UI's translation loader accepts unsanitised language and namespace values, allowing path traversal or URL injection when fetching translation files. — GHSA-q89c-q3h5-w34g moderate Yes - update to 3.0.5
micromatch Regular-expression denial of service in the build chain's glob matcher; build tooling only. — GHSA-952p-6rrq-rcjv moderate Yes - update to 4.0.8
react-router The web UI's router can be tricked into redirecting a logged-in user to an attacker's site through a protocol-relative or backslash-prefixed link. — GHSA-337j-9hxr-rhxg, GHSA-wrjc-x8rr-h8h6, GHSA-2j2x-hqr9-3h42 moderate Yes - update to 6.30.4
react-router-dom An open redirect in the same router family that can be escalated to cross-site scripting, and this one has no fixed release. — GHSA-jjmj-jmhj-qwj2 moderate Mitigation only - no fixed version exists; keep the UI off untrusted networks and do not follow UI links from outside sources
uuid A missing buffer bounds check in the v3/v5/v6 generators when a caller supplies its own buffer. — GHSA-w5hq-g745-h8pq moderate Yes - update to 13.0.1
Debian (container base OS) The container base image is Debian 12, which left standard support on 2026-07-11 and now receives only extended/LTS security updates (until 2028-06-30). posture Mitigation only - stay current with the LTS security updates and plan for the upstream image to rebase before June 2028
Frigate backend Python dependencies dependencies unpinned: 64 of 67 in docker/main/requirements-wheels.txt - the backend installs whatever patch release of each ==X.Y.* series is current at image build time, so two builds of the same lab can ship different code and neither has a checkable security state. posture Mitigation only - pin versions / use a lockfile, and record the image digest the class actually ran
Frigate NVR (admin account) The admin user and password are generated at first startup and printed into the container log, so anyone who can read the logs can log in until the password is changed. posture Mitigation only - change the admin password under Settings > Users immediately after the first login and restrict access to the container logs
Frigate NVR (HTTP API) Frigate serves an unauthenticated UI and API on port 5000 whose role is overridden to admin-level access, so anyone who can reach that port controls the recorder without logging in; only port 8971 requires authentication. posture Mitigation only - publish only port 8971, keep 5000 on the internal Docker network, and block it at the campus firewall
Frigate web UI (development server) The web UI's development script is "dev": "vite --host", which binds the unauthenticated dev server to every network interface; it is a development convenience, not something to run on a shared campus network. posture Mitigation only - never run the dev server on a shared network; serve the built bundle through Frigate's own port 8971
NVIDIA Linux display driver The documentation's minimum driver version 545 corresponds to a driver branch that reached end of life on 2024-10-01 (endoflife.date cycle r545-linux, checked this run), so a host installed to that floor receives no further driver security updates. posture Mitigation only - treat '>= 545' as a floor and install a currently supported NVIDIA driver branch instead of 545 itself
py3nvml py3nvml is installed straight from a GitHub master branch with no tag or commit hash, so the code pulled into the image is whatever that repository held on build day. posture Mitigation only - pin the dependency to a commit or tag before building
tflite_runtime The TFLite runtime wheels are downloaded as prebuilt binaries from third-party GitHub release URLs (one from a personal fork, feranick/TFlite-builds) with no checksum in the manifest, so the image trusts a binary nobody in the toolchain verifies. posture Mitigation only - verify the wheel checksum against the release, or build the runtime from source

What this means for your lab

Frigate is a video recorder that is meant to sit on its own network segment, and this check found two things an instructor should act on before plugging it into a campus LAN. First, Frigate deliberately offers two web ports: 8971 asks for a login, and 5000 does not - and on port 5000 every request is treated as an administrator. Anyone who can reach port 5000 can watch the live cameras, browse and delete recordings, and change the configuration without any password at all, so that port must stay on the machine's internal Docker network or be blocked at the firewall. Second, the administrator password is generated when Frigate first starts and printed into the container log, so change it in Settings > Users on day one and treat those logs as sensitive. Beyond that, the software check found known vulnerabilities in a number of libraries the project ships. The ones that matter for a machine on a network are in the web interface and the API: the UI's HTTP client (axios) and its file-upload parser (python-multipart) both have serious published issues, and about half of the remaining findings are in frontend build tools that never run inside a deployed Frigate container. Most of the web UI's libraries can be brought up to date by refreshing the frontend lockfile; the backend upload parser cannot, because Frigate pins it to an old version, so that one has to wait for upstream. What this check cannot tell you is how the cameras themselves are configured - their passwords, their firmware and whether they reach the internet were not examined, and Frigate's own backend library versions are declared as ranges rather than fixed versions, so 64 of 67 of them have no checkable security state at all. The practical advice: put the recorder and its cameras on an isolated VLAN with no route to the internet, expose only port 8971 and only to the classroom, change the admin password immediately, and talk to campus IT before connecting any of it to the main network.

Not checked

  • Frigate backend Python dependencies (64 of 67 rows): Range constraints (==X.Y.*) name no exact version, so OSV has nothing to match; includes aiohttp, cryptography, fastapi, starlette, uvicorn, requests, numpy, tensorflow and openvino.
  • py3nvml: Installed from an unpinned git master clone with no commit or tag - no version exists to look up.
  • tflite_runtime 2.17.1: Distributed as prebuilt wheels from third-party GitHub releases rather than a registry release, so no OSV package matches.
  • Coral PCIe gasket driver (jnicolson/gasket-builder): Out-of-tree Linux kernel driver build script - no version and no advisory database for it.
  • Apple Silicon detector ZMQ proxy (frigate-nvr/apple-silicon-detector): Unversioned external proxy repository - nothing to look up.
  • NVIDIA JetPack 6 and nvidia-container-runtime: No endoflife.date product matches either, and neither has a vulnerability database.
  • NVIDIA Linux display driver 545: Support status could not be bound automatically: endoflife.date names the branch 'r545-linux' rather than '545'. The branch itself was looked up separately and is end of life (see findings).
  • Frigate application code itself: No release version is recorded in the lab materials, so the application's own advisories could not be checked.
  • 380 further dependencies in package-lock.json: beyond the 500-dependency automatic check cap (e.g. @inquirer/number, @inquirer/password, @inquirer/prompts, @inquirer/rawlist, @inquirer/search)
  • nvidia-driver 545: support status: version matches no release cycle on endoflife.date

Parts

Host Compute Platforms

Part Spec/Package Status Stock Price Source
Beelink EQ13 Mini PC Intel N100, dual GbE, mini-PC, 12 V DC hard to obtain (exact model not listed) — — Google Shopping returned no EQ13 N100; nearest Beelink hits were EQi13 $499.00, EQ14 $375.00 (blacklisted upstream), Mini S13 $459.00
Beelink i3-1220P Mini PC Core i3-1220P, 19 V DC, QuickSync not checked — — —
MINISFORUM Pro 125H Barebone Core Ultra 5 125H + Intel AI Boost NPU, dual 2.5 GbE, 19 V DC readily available (family) — $863.00 barebone-family listing; $367.00 as 32 GB/1 TB minisforum.com; Newegg — Minisforum Official
Raspberry Pi 5 8 GB (SC1112) BCM2712, 85 × 56 mm, 5.1 V / 5 A USB-C PD readily available 17,324 $175.00 DigiKey (order code SC1432, "SBC 2.4GHZ 4 CORE 8GB PI 5", Active)
Nvidia Jetson Developer Kit Orin Nano / Orin NX / Xavier NX / AGX Orin, 9–20 V DC not checked — — —
Rockchip RK3588 SBC (Radxa ROCK 5B) 4× A76 + 4× A55, 6 TOPS NPU, 2.5 GbE, 5–12 V USB-C PD available through approved partners; price not checked — — radxa.com product page — live, NPU "up to 6 TOPS", partners only
Synaptics SL1680 Astra Machina Proprietary dev board, 12 V DC actively distributed; price not checked — — synaptics.com Astra Machina Foundation Series — current kit with a distributor path; SL1680 SKU/price not confirmed
AXERA AX650N / AX8850N PCIe add-in accelerator or SoM, 12 V DC not checked — — —

Dedicated Hardware AI Accelerators

Part Spec/Package Status Stock Price Source
Hailo-8 M.2 Module (HM218B1C2GA) M.2 2280/2242, M or A+E key, 26 TOPS, 3.3 V hard to obtain (order code unstocked) 0 — DigiKey: 0 products. ECIA: "No ECIA-authorized distributor lists this exact part number." Product itself current per hailo.ai
Hailo-8L / Raspberry Pi AI Kit Hailo-8L 13 TOPS on M.2 HAT+, Pi 5 superseded in the reseller channel — — PiShop AI Kit URL now serves the "Raspberry Pi AI HAT+ 13 TOPS" page (SC1785 / SC1430)
Google Coral USB Accelerator (G950-06809-01) USB 3.0 Type-C dongle, 65 × 30 × 8 mm, 5 V / 900 mA available but overpriced; no authorized stock 0 authorized $111.00 retail (band $107–$120) Seeed Studio via Google Shopping. Authorized: Arrow only — stock 0, "Factory Lead Time: 22 Weeks", $80.45 at a 1,584-piece break
Google Coral M.2 Accelerator A+E key (G650-04527-01) M.2 2230 A+E key, 3.3 V, gasket driver required hard to obtain 0 $29.63 (Arrow, out of stock) ECIA/TrustedParts: Arrow only, "Out of stock", 0 distributors with stock
MemryX MX3 M.2 Module M.2 2280 M-key, 4× MX3, up to 24 TFLOPS, PCIe Gen 3 ×2/×4 product live; price and stock not checked — — memryx.com/products — 2280 M-key and PCIe Gen 3 match the requirement; "Engineering Samples now available"
Intel Arc Discrete GPU (A310 representative) PCIe 4.0 low-profile, 4 GB GDDR6, 12 V slot power readily available — $144.99 (band $144.99–$307.99) ASRock Arc A310 Low Profile 4 GB, Techinn.com via Google Shopping
Nvidia GPU, CUDA CC ≥ 5.0 (RTX 3050 8 GB representative) PCIe add-in board, 12 V slot + aux power readily available — $189.99 (8 GB band $189.99–$364.99) PNY RTX 3050 8 GB XLR8, eBay via Google Shopping. The MSI "Gaming X 6G" at $279.99 is a 6 GB card — not this part
AMD Radeon Discrete GPU (RX 9060 XT 16G / 780M / 8700G) PCIe add-in card or AM5 APU, 12 V not checked — — —

IP Surveillance Cameras

Part Spec/Package Status Stock Price Source
Loryta / Dahua IPC-T549M-ALED-S3 4 MP 1/1.8" full-colour warm-LED turret, 802.3af PoE or 12 V, < 8.5 W readily available — $199.99 EmpireTech via Google Shopping — exact model match including the -S3 suffix
Loryta / Dahua IPC-T54IR-AS 4 MP 1/1.8" Starlight+ IR fixed-focal turret, PoE 36–57 V or 12 V, < 7.5 W hard to obtain (exact SKU); -S3 revision available — $1,879.91 per 10-camera kit (about $188.00 each) EmpireTech IPC-T54IR-AS-S3 bulk kit via Google Shopping; no single-unit listing found
Amcrest IP5M-T1179EW-AI-V3 5 MP weatherproof turret, 802.3af PoE or 12 V, ≤ 6 W, microSD model family readily available; exact V3 SKU not confirmed — $119.83 (family band $79.99–$150.00) Newegg — ElectroVille via Google Shopping. No listing title carried the IP5M-T1179EW-AI-V3 order code
Hikvision DS-2CD2387G2P-LSU/SL 8 MP dual-lens 180° panoramic ColorVu turret, PoE 802.3at/af or 12 V, ≤ 10.5 W hard to obtain — no route found 0 — DigiKey 0 products; ECIA: no authorized distributor lists it; Google Shopping returned zero results for the exact model

Substitutes

For part Substitute Differences Verified Judgment
Raspberry Pi AI Kit (Hailo-8L) Raspberry Pi AI HAT+ 13 TOPS, SC1785 — $70.00, 699 in stock Same Hailo-8L accelerator at the same 13 TOPS; same Raspberry Pi 5 host requirement; host link is PCIe Gen 3 versus the AI Kit's PCIe 2.0 — exceeds the original, acceptable. Same 3.3 V / 5 V HAT power envelope, no new supply rail. The accelerator is integrated onto the HAT, so an existing M.2 2242 module cannot be reused. Verified: same Hailo-8L accelerator and same Pi 5 PCIe-HAT attachment (fetched Pi Hut product pages); lifecycle Active, stock 699 and price $70.00 (DigiKey exact match on SC1785). Not verified: mechanical drop-in equivalence with an installed AI Kit — board dimensions and standoff positions were not retrieved; not verified: whether Frigate's Hailo detector configuration is unchanged between the two boards. Acceptable, and the preferred buy
Hailo-8 M.2 Module (HM218B1C2GA) Raspberry Pi AI HAT+ 26 TOPS, SC1791 — $110.00, 700 in stock Same Hailo-8 silicon at the same 26 TOPS. Hard stop on form factor: the BOM line needs an M.2 2280/2242 M-key or A+E-key card in a host M.2 slot at 3.3 V; the AI HAT+ is a Raspberry Pi 5 HAT and fits no M.2 slot. Verified: Hailo-8 silicon and 26 TOPS rating (fetched Pi Hut AI HAT+ page); SKU identity SC1791 (fetched PiShop page); lifecycle Active, stock 700, price $110.00 (DigiKey exact match). Not verified: nothing about M.2 mechanical or electrical compatibility — the form factors differ by design. Acceptable on a Raspberry Pi 5 host only; not acceptable as an M.2 card substitute
Google Coral USB Accelerator Raspberry Pi AI HAT+ 13 TOPS — $70.00, the host's own Intel iGPU/NPU under OpenVINO, Intel Arc A310 — $144.99, or an RTX 3050 8 GB — $189.99 The Coral is a 5.0 V / 900 mA USB 3.0 dongle; every alternative is a PCIe device (Pi 5 HAT or 12 V add-in card). Interface and supply rail both differ, and no adapter bridges that. What makes the swap sound is that the snapshot treats the accelerator as a per-host design choice, states that Hailo-8 "replaces Google Coral TPU", and calls Coral deprecated for new deployments. Verified: lifecycle, stock and price of SC1785 (DigiKey exact match); retail availability and price bands of the Arc A310 and 8 GB RTX 3050 (Google Shopping, this run); the snapshot's own statement that Hailo-8 replaces Coral. Not verified: that detection accuracy or frame rate is preserved across detectors — nothing in this run measures that; not verified as any footprint or interface match, which it explicitly is not. Acceptable as a design-level substitution, per the snapshot's own guidance
Beelink EQ13 Mini PC Any dual-NIC x86-64 Intel N100/N150 mini PC except the EQ14 — candidates seen this run: Beelink Mini S13 (N150, dual 2.5 GbE) $459.00, Beelink Mini S12 Pro (N100) $773.99, MINISFORUM M1 Pro 125H 32 GB/1 TB $367.00 The snapshot grants high latitude: any x86-64 Intel host with AVX and AVX2, at least dual GbE for camera-LAN isolation, and Debian compatibility. The EQ14 is excluded because the snapshot records it as blacklisted in Frigate's documentation. Verified: nothing beyond listed price and seller from the shopping results, plus the dual-2.5 GbE claim in the Mini S13's own listing title. Not verified: AVX/AVX2 support, NIC count and Debian compatibility for every candidate — no product page was fetched. Plausible, unverified — check the CPU's AVX2 support and the port count on the vendor's spec page before ordering
Loryta / Dahua IPC-T54IR-AS Loryta / EmpireTech IPC-T54IR-AS-S3 — $1,879.91 per 10-camera kit, about $188.00 each Same model line and the same fixed-focal 4 MP IR turret role; -S3 is a later hardware revision. Only available as a 10-unit order, which is impractical at classroom scale. Verified: model-line and revision naming from the listing title; price and seller from the shopping result. Not verified: what the -S3 suffix encodes, and none of the line's requirements (H.264, AAC audio, multiple RTSP substreams, 1/1.8" sensor, 802.3af PoE, under 7.5 W) were confirmed against a datasheet or product page for the -S3 revision. Plausible, unverified — the lower-risk path is the IPC-T549M-ALED-S3 at $199.99, an exact model match sold singly

Verify any substitute against its datasheet and the lab's own constraints before ordering.

Other dependencies

  • Fabrication: none required. The snapshot records no PCB CAD, Gerber, schematic or drill files — the build is plug-and-play COTS assembly. Mounting hardware is standard M.2 standoffs, M2 × 3 mm screws and Cat5e/Cat6 RJ45 patch cabling: commodity, not checked individually.
  • PoE network switch — implied by the snapshot's 802.3af/at camera powering and its dual-NIC isolated-camera-LAN recommendation, but it is not a BOM line and carries no sourcing plan. Not checked.
  • docs.frigate.video (project documentation portal) — not checked as a live site this run.
  • hosted.weblate.org/projects/frigate-nvr (localization portal) — not checked.
  • GitHub download URLs the lab depends on (the TFLite wheel releases at frigate-nvr/TFlite-builds and feranick/TFlite-builds, the py3nvml repository, jnicolson/gasket-builder, frigate-nvr/apple-silicon-detector, blakeblackshear/frigate-hass-integration) — reachable: the project's own manifests and documentation were fetched successfully from GitHub this run. What those URLs serve is software and is judged in the Cybersecurity section above.

Watch list

  • Google Coral USB and M.2 — the authorized channel is already empty (Arrow: 0 stock, 22-week lead time). If the reseller band climbs above about $150 or the lead time grows, these lines should be reported as not implementable as specified and Coral should stop being presented as an option.
  • Raspberry Pi AI HAT+ (SC1785 / SC1791) — currently the entire accelerator story for Raspberry Pi 5 hosts and single-sourced through Raspberry Pi. Watch stock, which stands at 699 and 700 today, and lifecycle status.
  • Hikvision DS-2CD2387G2P-LSU/SL — an empty Google Shopping result set for a named camera model usually means the channel has withdrawn it. Re-check; if it is still empty next time, propose a specific non-Hikvision panoramic substitute rather than leaving the line open.
  • Raspberry Pi 5 8 GB at $175.00 — two independent sources agree today, but one ECIA line (RS, $422.62, 0 stock) shows the channel is not uniform. Worth tracking as a price series.
  • Beelink EQ13 / EQ14 — if the EQ13 disappears from retail entirely, the snapshot's primary-host recommendation needs rewriting, because its successor model is the one Frigate blacklists.
  • Bare Hailo-8 M.2 modules — if any authorized distributor picks up HM218B1C2GA or an equivalent M-key card, that closes the only real accelerator gap for x86 hosts.
  • The four unpriced lines (Nvidia Jetson kit, AMD Radeon, Beelink i3-1220P, RK3588 board) — the next check should spend its shopping budget here so the baseline is complete.
Snapshot What the lab depended on when it was uploaded — the baseline the readiness checks research against.

Frigate Network Video Recorder is an open-source, real-time NVR system designed for local IP camera video ingestion, motion pre-filtering, 24/7 video recording, and low-latency hardware-accelerated AI object detection with Home Assistant integration. The physical hardware ecosystem consists of commercial off-the-shelf (COTS) IP security cameras, host compute platforms (mini-PCs, x86 workstations, or ARM single-board computers), and dedicated neural processing acceleration modules (M.2/PCIe NPUs, USB Edge TPUs, or discrete/integrated GPUs). Operating voltage rails across the system encompass: 48 V DC nominal (44 V to 57 V DC under IEEE 802.3af/at Power-over-Ethernet) or auxiliary 12 V DC (1 A to 2 A) powering IP surveillance cameras; 100 V to 240 V AC mains or external 12 V to 19 V DC power bricks powering mini-PCs and desktop hosts; 5.0 V DC (up to 5 A via USB-C PD) powering ARM SBC hosts; 3.3 V DC rails (PCIe / M.2 Key-E, Key-M, or Key-B+M interfaces) powering embedded AI accelerator modules; and 5.0 V DC (USB 3.0, up to 900 mA) powering external coprocessor dongles.

Bill of Materials

Host Compute Platforms

  • Identity: Beelink EQ13 Mini PC (Intel Processor N100 Alder Lake-N, 4 cores / 4 threads up to 3.4 GHz with AVX/AVX2 support, dual Gigabit Ethernet NICs)

  • Quantity needed: 1 (primary recommended entry host platform)

  • Footprint/package: Compact mini-PC desktop enclosure (approximately 115 mm × 102 mm × 39 mm) with internal M.2 2280 PCIe/SATA slot, SO-DIMM DDR4 slot, and dual RJ45 ports

  • Electrical constraints: Input supply voltage 12 V DC nominal via external AC-to-DC adapter (100–240 V AC 50/60 Hz input), power draw approximately 12 W to 36 W

  • Substitution latitude: High; any x86-64 host featuring Intel CPU with AVX and AVX2 instruction set extensions, at least dual GbE network interfaces for physical camera LAN isolation, and Debian compatibility can substitute. Beelink EQ14 is explicitly blacklisted in documentation due to known hardware compatibility issues.

  • Operated control: No (power button set once; headless server operation)

  • Sourcing plan: retail shopping search: Beelink EQ13 N100 Mini PC dual NIC

  • Identity: Beelink i3-1220P Mini PC (Intel Core i3-1220P 10-core / 12-thread Alder Lake processor, integrated Intel UHD Graphics 64EU)

  • Quantity needed: 1 (alternative high-activity multi-camera host)

  • Footprint/package: Compact mini-PC desktop enclosure with internal M.2 NVMe PCIe slot and dual display/NIC interfaces

  • Electrical constraints: Input supply voltage 19 V DC nominal via external AC-to-DC power adapter, power consumption up to 65 W under peak inference/decoding load

  • Substitution latitude: High; any Intel 12th/13th/14th Gen mobile or desktop host capable of running Debian Linux with VA-API/QuickSync video decoding support

  • Operated control: No

  • Sourcing plan: retail shopping search: Beelink i3-1220P Mini PC

  • Identity: MINISFORUM Pro 125H Barebone Computer (Intel Core Ultra 5 125H Meteor Lake processor with integrated Intel Arc GPU and integrated Intel AI Boost NPU)

  • Quantity needed: 1 (recommended NPU-integrated host platform for Frigate 0.17+)

  • Footprint/package: Mini-PC barebone chassis with M.2 2280 PCIe 4.0 slots, DDR5 SO-DIMM slots, and dual 2.5 GbE Ethernet interfaces

  • Electrical constraints: 19 V DC nominal input via external power brick, 65 W to 100 W peak power rating

  • Substitution latitude: Moderate; requires an Intel Core Ultra processor with an integrated NPU supported by OpenVINO 2025.x runtime under Linux

  • Operated control: No

  • Sourcing plan: retail shopping search: MINISFORUM Pro 125H Core Ultra 5 barebone

  • Identity: Raspberry Pi 5 Single Board Computer (Broadcom BCM2712 quad-core Arm Cortex-A76 at 2.4 GHz, 4 GB or 8 GB LPDDR4X SDRAM, PCIe 2.0 ×1 expansion connector)

  • Quantity needed: 1 (supported ARM host platform)

  • Footprint/package: Standard Raspberry Pi form factor (85 mm × 56 mm) with 16-pin 0.5 mm pitch FPC PCIe connector

  • Electrical constraints: 5.1 V DC at 5.0 A via USB-C Power Delivery

  • Substitution latitude: Low if using Raspberry Pi AI Kit PCIe HAT; otherwise any supported ARM64 SBC supported by Hailo/MemryX drivers

  • Operated control: No

  • Sourcing plan: distributor lookup (representative example — sources give spec only): Raspberry Pi 5 8GB / SC1112

  • Identity: Nvidia Jetson Developer Kit (Jetson Orin Nano, Orin NX, Xavier NX, or AGX Orin running JetPack 6)

  • Quantity needed: 1 (alternative embedded platform)

  • Footprint/package: Jetson Carrier Board with SoM module

  • Electrical constraints: 9 V to 20 V DC barrel jack input (15 W to 25 W power mode typical)

  • Substitution latitude: Must support Nvidia JetPack 6 and TensorRT runtime

  • Operated control: No

  • Sourcing plan: retail shopping search: Nvidia Jetson Orin Nano Developer Kit

  • Identity: Rockchip RK3588 Single Board Computer (Octa-core 4× Cortex-A76 + 4× Cortex-A55, integrated 6 TOPS NPU; e.g., Radxa ROCK 5B or Orange Pi 5)

  • Quantity needed: 1 (alternative low-power ARM platform)

  • Footprint/package: SBC form factor with on-board NPU coprocessor

  • Electrical constraints: 5 V DC to 12 V DC USB-C PD input (up to 30 W)

  • Substitution latitude: Limited; sources specifically validate only Rockchip processors RK3562, RK3566, RK3568, RK3576, and RK3588 (RK3588 recommended for multi-core NPU performance)

  • Operated control: No

  • Sourcing plan: retail shopping search: Rockchip RK3588 SBC

  • Identity: Synaptics SL1680 Evaluation Board (Astra Machina SL1680 embedded AI platform with integrated NPU)

  • Quantity needed: 1 (specialized community platform)

  • Footprint/package: Proprietary development board

  • Electrical constraints: 12 V DC nominal

  • Substitution latitude: Low; must execute the Synaptics Synap NPU inference framework

  • Operated control: No

  • Sourcing plan: general web research: Synaptics Astra Machina SL1680 development board

  • Identity: AXERA AX650N / AX8850N AI Processing Hardware

  • Quantity needed: 1 (specialized community platform)

  • Footprint/package: Embedded PCIe add-in accelerator or evaluation SoM

  • Electrical constraints: 12 V DC (PCIe slot / aux power)

  • Substitution latitude: Must run the AXERA AXEngine inference stack

  • Operated control: No

  • Sourcing plan: general web research: AXERA AX650N AX8850N NPU board

Dedicated Hardware AI Accelerators

  • Identity: Hailo-8 AI Acceleration Module (Hailo-8 M.2 Key M 2242/2280 or Key A+E module, 26 TOPS INT8 compute)

  • Quantity needed: 1 (primary recommended standalone accelerator)

  • Footprint/package: M.2 2280 or 2242 form factor card (M-key or A+E key)

  • Electrical constraints: 3.3 V DC ±5% supplied via M.2 slot, power dissipation 2.5 W to 5.0 W

  • Substitution latitude: High compatibility across Hailo-8 and Hailo-8L modules; replaces Google Coral TPU

  • Operated control: No

  • Sourcing plan: distributor lookup (representative example — sources give spec only): Hailo-8 M.2 Module / HM218B1C2GA

  • Identity: Hailo-8L AI Acceleration Module / Raspberry Pi AI Kit (Hailo-8L 13 TOPS M.2 module mounted on Raspberry Pi 5 M.2 HAT+)

  • Quantity needed: 1 (standard accelerator for Raspberry Pi 5)

  • Footprint/package: Raspberry Pi HAT+ form factor with ribbon cable connecting to RPi 5 PCIe FPC

  • Electrical constraints: 3.3 V and 5 V DC supplied across 40-pin GPIO header and PCIe ribbon cable, power consumption 1.5 W to 3 W

  • Substitution latitude: High between Hailo-8 and Hailo-8L (Hailo-8L yields ~11 ms YOLOv6n vs ~7 ms on Hailo-8)

  • Operated control: No

  • Sourcing plan: retail shopping search: Raspberry Pi AI Kit Hailo-8L

  • Identity: Google Coral USB Accelerator (Google Edge TPU coprocessor, model G950-06809-01)

  • Quantity needed: 1 (legacy accelerator; noted as deprecated for new deployments)

  • Footprint/package: External anodized aluminum dongle (65 mm × 30 mm × 8 mm) with USB 3.0 Type-C female socket

  • Electrical constraints: 5.0 V DC supplied via USB port, peak current 900 mA (4.5 W peak)

  • Substitution latitude: Can substitute with Coral M.2 or PCIe variants, but Hailo-8, OpenVINO iGPU/NPU, or Nvidia GPUs are preferred for new builds

  • Operated control: No

  • Sourcing plan: distributor lookup: Google Coral USB Accelerator G950-06809-01

  • Identity: Google Coral M.2 / PCIe Accelerator (Google Edge TPU, M.2 Key A+E or B+M form factor; e.g., G650-04527-01 or G650-04323-01)

  • Quantity needed: 1 (legacy internal accelerator)

  • Footprint/package: M.2 2230 A+E key or M.2 2280 B+M key

  • Electrical constraints: 3.3 V DC ±5% from M.2 socket, requires gasket-builder Linux kernel driver

  • Substitution latitude: Can substitute Coral USB or Hailo-8 M.2 module

  • Operated control: No

  • Sourcing plan: distributor lookup: Google Coral M.2 Accelerator A+E key G650-04527-01

  • Identity: MemryX MX3 M.2 AI Accelerator Module (MemryX At-Memory Computing AI inference accelerator)

  • Quantity needed: 1 (community-supported accelerator)

  • Footprint/package: M.2 2280 form factor add-in card

  • Electrical constraints: 3.3 V DC from M.2 interface, low thermal dissipation (pipelined architecture)

  • Substitution latitude: Moderate; operates via MemryX drivers in YOLO-NAS-Small default model

  • Operated control: No

  • Sourcing plan: general web research: MemryX MX3 M.2 AI accelerator module

  • Identity: Intel Arc Discrete Graphics Card (Intel Arc A310, Arc A380, Arc A750, or B-Series Battlemage dGPU)

  • Quantity needed: 1 (recommended OpenVINO hardware accelerator)

  • Footprint/package: Standard PCIe 4.0 ×8/×16 desktop expansion card (low profile or full height)

  • Electrical constraints: 12 V DC via PCIe slot (up to 75 W for A310/A380) or external 6-pin/8-pin PCIe auxiliary power cable (A750 up to 225 W)

  • Substitution latitude: High; any modern 6th Gen or newer Intel CPU integrated GPU (HD 630, UHD 730, UHD 770, Iris Xe) or Arc dGPU compatible with OpenVINO 2025.4

  • Operated control: No

  • Sourcing plan: retail shopping search: Intel Arc A310 Low Profile PCIe Graphics Card

  • Identity: Nvidia Dedicated GPU with CUDA Compute Capability ≥ 5.0 (Nvidia GeForce GTX 1070, RTX 3050, RTX 3070, RTX 5060 Ti, RTX A4000, or Tesla P40)

  • Quantity needed: 1 (high-performance CUDA / TensorRT / ONNX detector)

  • Footprint/package: Standard PCIe desktop/server add-in board

  • Electrical constraints: 12 V DC via PCIe slot plus 6-pin, 8-pin, or 16-pin 12VHPWR auxiliary power connectors (70 W to 250 W TDP depending on card model)

  • Substitution latitude: High; any Nvidia GPU meeting Compute Capability 5.0 (Maxwell) or higher, running host driver version 545 or greater and CUDA 12.x

  • Operated control: No

  • Sourcing plan: retail shopping search: Nvidia GeForce RTX 3050 8GB PCIe GPU

  • Identity: AMD Radeon Discrete GPU (AMD Radeon RX 9060XT 16G, or integrated 780M / 8700G APU)

  • Quantity needed: 1 (ROCm detector platform)

  • Footprint/package: PCIe add-in card or integrated AM5 processor package

  • Electrical constraints: 12 V DC PCIe / 65 W to 250 W depending on card model

  • Substitution latitude: Moderate; must be supported by the ROCm detector backend in Linux

  • Operated control: No

  • Sourcing plan: retail shopping search: AMD Radeon RX graphics card ROCm compatible

IP Surveillance Cameras

  • Identity: Loryta / Dahua IPC-T549M-ALED-S3 (4 MP Full-Color Fixed-focal Warm LED Eyeball Network Camera with 1/1.8" CMOS sensor)

  • Quantity needed: 1 or more (primary recommended camera)

  • Footprint/package: Eyeball / turret chassis with RJ45 10/100Base-T PoE interface and 12 V DC barrel jack

  • Electrical constraints: IEEE 802.3af PoE (class 0, 48 V nominal) or 12 V DC auxiliary (typical power consumption < 8.5 W)

  • Substitution latitude: High; requires H.264 video codec output, AAC audio, and multiple RTSP substreams (high-res for recording, low-res for detection). Avoid WiFi cameras and Reolink cameras above 5 MP.

  • Operated control: No (factory hardware aiming / set-once physical positioning)

  • Sourcing plan: retail shopping search: Loryta IPC-T549M-ALED-S3 Dahua 4MP turret camera

  • Identity: Loryta / Dahua IPC-T54IR-AS (4 MP Starlight+ IR Fixed-focal Turret Network Camera with 1/1.8" sensor)

  • Quantity needed: 1 or more (recommended IR night vision camera)

  • Footprint/package: Turret outdoor enclosure with RJ45 female connector

  • Electrical constraints: PoE 802.3af (36 V to 57 V DC) or 12 V DC input, power draw < 7.5 W

  • Substitution latitude: High; any Dahua 1/1.8" sensor camera with H.264 and substream support

  • Operated control: No

  • Sourcing plan: retail shopping search: Loryta IPC-T54IR-AS Dahua 4MP camera

  • Identity: Amcrest IP5M-T1179EW-AI-V3 (5 MP Turret AI IP Camera with microphone and micro-SD storage)

  • Quantity needed: 1 or more (budget recommended camera)

  • Footprint/package: Weatherproof turret enclosure with RJ45 PoE connector

  • Electrical constraints: PoE (802.3af) or 12 V DC, power consumption ≤ 6 W

  • Substitution latitude: High; standard H.264/AAC RTSP camera

  • Operated control: No

  • Sourcing plan: retail shopping search: Amcrest IP5M-T1179EW-AI-V3 turret camera

  • Identity: Hikvision DS-2CD2387G2P-LSU/SL ColorVu 8MP Panoramic Turret IP Camera (Dual-lens 180-degree panoramic camera)

  • Quantity needed: 1 or more (panoramic camera recommendation)

  • Footprint/package: Dual-lens turret enclosure with RJ45 PoE port, audio I/O, alarm I/O

  • Electrical constraints: PoE 802.3at / 802.3af or 12 V DC, power consumption ≤ 10.5 W

  • Substitution latitude: Moderate; requires capable host decoder for wide aspect panoramic H.264 stream

  • Operated control: No

  • Sourcing plan: distributor lookup (representative example — sources give spec only): Hikvision DS-2CD2387G2P-LSU/SL

Software and network dependencies

Backend Python Dependencies

Source manifest file: requirements-wheels.txt. Python version environment: Python 3.11 (indicated by pre-compiled CPython wheels cp311).

  • aiofiles, version == 24.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: aiofiles / PyPI / 24.1.0
  • click, version == 8.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: click / PyPI / 8.1.7
  • aiohttp, version == 3.12.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: aiohttp / PyPI / 3.12.0
  • starlette, version == 0.47.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: starlette / PyPI / 0.47.0
  • starlette-context, version == 0.4.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: starlette-context / PyPI / 0.4.0
  • fastapi[standard-no-fastapi-cloud-cli], version == 0.116.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: fastapi / PyPI / 0.116.0
  • uvicorn, version == 0.35.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: uvicorn / PyPI / 0.35.0
  • slowapi, version == 0.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: slowapi / PyPI / 0.1.9
  • joserfc, version == 1.2.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: joserfc / PyPI / 1.2.0
  • cryptography, version == 44.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: cryptography / PyPI / 44.0.0
  • pathvalidate, version == 3.3.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: pathvalidate / PyPI / 3.3.0
  • markupsafe, version == 3.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: markupsafe / PyPI / 3.0.0
  • python-multipart, version == 0.0.26, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: python-multipart / PyPI / 0.0.26
  • tensorflow, version == 2.19.* (target platform aarch64), pinned in requirements-wheels.txt. Check plan: vulnerability lookup: tensorflow / PyPI / 2.19.0
  • tensorflow-cpu, version == 2.19.* (target platform x86_64), pinned in requirements-wheels.txt. Check plan: vulnerability lookup: tensorflow-cpu / PyPI / 2.19.0
  • mypy, version == 1.6.1, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: mypy / PyPI / 1.6.1
  • onvif-zeep-async, version == 4.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: onvif-zeep-async / PyPI / 4.0.0
  • paho-mqtt, version == 2.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: paho-mqtt / PyPI / 2.1.0
  • pandas, version == 2.2.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: pandas / PyPI / 2.2.0
  • peewee, version == 3.17.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: peewee / PyPI / 3.17.0
  • peewee_migrate, version == 1.14.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: peewee_migrate / PyPI / 1.14.0
  • psutil, version == 7.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: psutil / PyPI / 7.1.0
  • pydantic, version == 2.10.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: pydantic / PyPI / 2.10.0
  • py3nvml, git repository git+https://github.com/fbcotter/py3nvml#egg=py3nvml, unpinned in requirements-wheels.txt (unpinned direct git master branch clone). Check plan: not checkable: unpinned git repository dependency without commit hash or tag
  • pytz, version == 2025.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: pytz / PyPI / 2025.1
  • pyzmq, version == 26.2.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: pyzmq / PyPI / 26.2.0
  • ruamel.yaml, version == 0.18.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: ruamel.yaml / PyPI / 0.18.0
  • tzlocal, version == 5.2, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: tzlocal / PyPI / 5.2
  • requests, version == 2.32.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: requests / PyPI / 2.32.0
  • types-requests, version == 2.32.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: types-requests / PyPI / 2.32.0
  • norfair, version == 2.3.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: norfair / PyPI / 2.3.0
  • setproctitle, version == 1.3.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: setproctitle / PyPI / 1.3.0
  • ws4py, version == 0.5.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: ws4py / PyPI / 0.5.1
  • unidecode, version == 1.3.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: unidecode / PyPI / 1.3.0
  • titlecase, version == 2.4.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: titlecase / PyPI / 2.4.0
  • numpy, version == 1.26.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: numpy / PyPI / 1.26.4
  • opencv-python-headless, version == 4.11.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: opencv-python-headless / PyPI / 4.11.0.86
  • opencv-contrib-python, version == 4.11.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: opencv-contrib-python / PyPI / 4.11.0.86
  • scipy, version == 1.16.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: scipy / PyPI / 1.16.0
  • openvino, version == 2025.4.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: openvino / PyPI / 2025.4.0
  • onnxruntime, version == 1.22.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: onnxruntime / PyPI / 1.22.0
  • transformers, version == 4.45.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: transformers / PyPI / 4.45.0
  • google-genai, version == 1.58.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: google-genai / PyPI / 1.58.0
  • ollama, version == 0.6.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: ollama / PyPI / 0.6.0
  • openai, version == 1.65.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: openai / PyPI / 1.65.0
  • py-vapid, version == 1.9.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: py-vapid / PyPI / 1.9.0
  • pywebpush, version == 2.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: pywebpush / PyPI / 2.0.0
  • pyclipper, version == 1.3.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: pyclipper / PyPI / 1.3.0
  • shapely, version == 2.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: shapely / PyPI / 2.0.0
  • rapidfuzz, version == 3.12.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: rapidfuzz / PyPI / 3.12.0
  • appdirs, version == 1.4.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: appdirs / PyPI / 1.4.4
  • argcomplete, version == 2.0.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: argcomplete / PyPI / 2.0.0
  • contextlib2, version == 0.6.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: contextlib2 / PyPI / 0.6.0
  • distlib, version == 0.3.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: distlib / PyPI / 0.3.0
  • filelock, version == 3.8.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: filelock / PyPI / 3.8.0
  • future, version == 0.18.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: future / PyPI / 0.18.3
  • importlib-metadata, version == 5.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: importlib-metadata / PyPI / 5.1.0
  • importlib-resources, version == 5.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: importlib-resources / PyPI / 5.1.0
  • netaddr, version == 0.8.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: netaddr / PyPI / 0.8.0
  • netifaces, version == 0.10.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: netifaces / PyPI / 0.10.9
  • verboselogs, version == 1.7.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: verboselogs / PyPI / 1.7.0
  • virtualenv, version == 20.17.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: virtualenv / PyPI / 20.17.1
  • prometheus-client, version == 0.21.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: prometheus-client / PyPI / 0.21.0
  • tflite_runtime (x86_64), URL wheel release https://github.com/frigate-nvr/TFlite-builds/releases/download/v2.17.1/tflite_runtime-2.17.1-cp311-cp311-linux_x86_64.whl, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: tflite-runtime / PyPI / 2.17.1
  • tflite_runtime (aarch64), URL wheel release https://github.com/feranick/TFlite-builds/releases/download/v2.17.1/tflite_runtime-2.17.1-cp311-cp311-linux_aarch64.whl, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: tflite-runtime / PyPI / 2.17.1
  • sherpa-onnx, version == 1.12.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: sherpa-onnx / PyPI / 1.12.0
  • faster-whisper, version == 1.1.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: faster-whisper / PyPI / 1.1.0
  • librosa, version == 0.11.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: librosa / PyPI / 0.11.0
  • soundfile, version == 0.13.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: soundfile / PyPI / 0.13.0
  • memray, version == 1.15.*, pinned in requirements-wheels.txt. Check plan: vulnerability lookup: memray / PyPI / 1.15.0

Frontend Application Dependencies

Source manifest file: web_package.json. Application package name: web-new (version: 0.0.0). Note that production runtime and dev dependencies are primarily range-pinned using semver carets (^) without a committed lockfile in the dataset.

Key runtime libraries pinned in web_package.json:

  • react, version ^19.2.4. Check plan: vulnerability lookup: react / npm / 19.2.4
  • react-dom, version ^19.2.4. Check plan: vulnerability lookup: react-dom / npm / 19.2.4
  • @radix-ui/react-slot, version 1.2.4 (exact pin). Check plan: vulnerability lookup: @radix-ui/react-slot / npm / 1.2.4
  • @radix-ui/react-compose-refs, version 1.1.2 (in overrides). Check plan: vulnerability lookup: @radix-ui/react-compose-refs / npm / 1.1.2
  • @radix-ui/react-popper, version 1.2.8 (in overrides). Check plan: vulnerability lookup: @radix-ui/react-popper / npm / 1.2.8
  • react-zoom-pan-pinch, version 3.4.4 (exact pin). Check plan: vulnerability lookup: react-zoom-pan-pinch / npm / 3.4.4
  • hls.js, version ^1.6.15. Check plan: vulnerability lookup: hls.js / npm / 1.6.15
  • @cycjimmy/jsmpeg-player, version ^6.1.2. Check plan: vulnerability lookup: @cycjimmy/jsmpeg-player / npm / 6.1.2
  • konva, version ^10.2.3 and react-konva version ^19.2.3. Check plan: vulnerability lookup: konva / npm / 10.2.3
  • monaco-yaml, version ^5.4.1 and monaco-editor version ^0.52.2. Check plan: vulnerability lookup: monaco-editor / npm / 0.52.2
  • axios, version ^1.13.6. Check plan: vulnerability lookup: axios / npm / 1.13.6
  • framer-motion, version ^12.38.0. Check plan: vulnerability lookup: framer-motion / npm / 12.38.0
  • vite, version ^6.4.2 (devDependency). Check plan: vulnerability lookup: vite / npm / 6.4.2
  • typescript, version ^5.9.3 (devDependency). Check plan: vulnerability lookup: typescript / npm / 5.9.3
  • vitest, version ^3.0.7 (devDependency). Check plan: vulnerability lookup: vitest / npm / 3.0.7
  • @playwright/test, version ^1.59.1 (devDependency). Check plan: vulnerability lookup: @playwright/test / npm / 1.59.1

Operating System, Host Drivers, and Firmware

  • Debian Linux: Base host OS stated in documentation (hardware.md specifies Intel CPUs capable of running Debian Linux). Check plan: support-status lookup: Debian Linux 12 (Bookworm)
  • Nvidia Display Driver: Stated in documentation (hardware.md requires minimum driver version >= 545 for CUDA 12.x series). Check plan: support-status lookup: Nvidia Linux Driver 545
  • nvidia-container-runtime: Host runtime stated in documentation to pass through GPUs into Docker containers. Check plan: support-status lookup: nvidia-container-runtime
  • Nvidia Jetpack: Stated in documentation (hardware.md requires Jetpack 6 for TensorRT and ONNX detectors on Jetson). Check plan: support-status lookup: Nvidia Jetpack 6
  • Gasket Driver: External host kernel driver module required for Google Coral PCIe/M.2 devices, built via https://github.com/jnicolson/gasket-builder. Check plan: not checkable: third-party out-of-tree Linux kernel driver build script
  • Apple Silicon Detector ZMQ Proxy: Host proxy required for macOS M1/M3/M4 NPUs (https://github.com/frigate-nvr/apple-silicon-detector). Check plan: not checkable: unversioned external proxy repo

Network Exposure and Topology

  • Network Join and Physical Interface: Wired Ethernet strongly required; hardware documentation explicitly discourages Wi-Fi cameras due to packet loss, high connection latency, and dropped RTSP video frames. Recommendations specify dual Gigabit NICs on the server (e.g., Beelink EQ13) to establish a physically isolated private camera network blocked from WAN/internet access.
  • Ingestion Protocols & Ports: RTSP video streams (standard TCP/UDP port 554 or custom RTSP ports) ingested from cameras. ONNX/Zeep ONVIF auto-discovery and control (UDP port 3702 / HTTP ONVIF ports).
  • Egress / Internal Streaming Protocols: WebRTC live low-latency video streaming, MSE (Media Source Extensions), HLS video streaming, and internal RTSP re-streaming server for downstream clients.
  • Web Interface & REST API: FastAPI/Uvicorn backend web server (default Frigate HTTP port 5000, secure port 8971). Vite frontend dev script binds to all interfaces with "vite --host". The documentation instructs users to access the web UI for live dashboards, multi-camera scrubbing, review workflows, and the interactive mask and zone polygon editor.
  • Event Transport: MQTT client (paho-mqtt) communicating with an external MQTT broker (e.g., Home Assistant Mosquitto on port 1883 or 8883) to publish detection events, bounding boxes, and sensor states.
  • Inter-Process Networking: pyzmq / ZeroMQ proxy sockets used locally for Apple Silicon NPU model execution.
  • External Push Notifications / AI Cloud APIs: Outbound HTTPS connections to OpenAI (api.openai.com:443), Google GenAI, Ollama (localhost/remote:11434), and WebPush VAPID notification relays.
  • Default Credentials: Not stated in the sources; cameras require user-defined RTSP credentials in Frigate's YAML configuration.

Downloads and external URLs

Fabrication

No custom PCB CAD files, Gerber archives, schematic capture files, or drill templates are included in the dataset. All hardware components are commercial off-the-shelf assemblies (COTS mini-PCs, SBCs, PCIe/M.2 accelerator cards, and IP cameras). System assembly involves modular plug-and-play electromechanical installation: inserting M.2 2280/2242/2230 accelerator boards into standard host M.2 key slots, connecting RJ45 Cat5e/Cat6 Ethernet runs between PoE network switches and cameras, and connecting USB 3.0 accelerator dongles. Standard M.2 mounting standoffs, M2×3mm retention screws, and Cat5e/Cat6 RJ45 patch cabling represent the sole electromechanical mounting hardware.