Self-hosted service
cameraui/camera.ui avatar
cameraui/camera.ui

camera.ui: A Local-First Video Surveillance Platform With a Paid Feature Split

The modern, local-first platform for professional video surveillance.

1,108 stars166 forksTypeScriptMIT

At a glance

What is it?
camera.ui is a self-hosted, TypeScript-based surveillance platform with live viewing, recording, on-device AI detection, and a plugin ecosystem. The MIT core is free, but several headline features require a subscription, which changes the adoption calculus.
Who is it for?
Adopt camera.ui if you want a local-first surveillance platform with a modern UI, plugin extensibility, and are willing to accept that features like semantic search, push notifications, and 24/7 recording require a subscription. Do not adopt it if you need a fully open-source, no-cost surveillance system or if you require extensive documentation beyond the README.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem camera.ui Solves and Who It Targets

camera.ui addresses a specific gap in the surveillance market: most professional platforms are cloud-dependent, sending footage to third-party servers, which raises privacy concerns and recurring costs. This project offers a self-hosted alternative where your footage stays on hardware you own. The target audience is professionals and enthusiasts who want control over their video data but still expect modern features like AI detection and semantic search. The README explicitly states 'no mandatory cloud, your footage stays with you,' which is the core value proposition. It is not for casual users who want a plug-and-play cloud service; it assumes you are comfortable running your own server, whether via Docker, Proxmox, or bare-metal Linux.

How the Architecture Works: Plugins, On-Device AI, and Local Storage

The platform is built on an extensible plugin ecosystem, which the README describes as enabling 'endless possibilities.' The core mechanism is a server component (the npm package @camera.ui/server) that handles live viewing and recording. AI detection runs on-device, meaning video analysis happens locally rather than in the cloud. Semantic search, which likely uses AI-generated metadata to find events by description, is a subscription feature. The data flow is straightforward: cameras stream to the server, which records to local storage and runs detection. Plugins extend functionality, likely for smart-home integration or custom notifications. The architecture is modular, but the README does not detail the plugin API or how detection models are deployed. Based on the repository layout, the server is the central component, and the desktop app, mobile apps, and web UI are clients.

Installation Paths: Docker, Proxmox, Bare-Metal, and Desktop

The README points to docs.cameraui.com for installation, listing several methods: desktop app, Docker, Proxmox, bare-metal Linux, and mobile apps. No specific commands are given in the README, but the Docker container is available via GitHub Container Registry (ghcr.io/cameraui/camera.ui). A typical Docker deployment would involve pulling the image and running it with volume mounts for config and storage, but the exact flags are not in the material. For bare-metal, you would likely run the server as a Node.js process, given it is TypeScript. The guided first run is documented at docs.cameraui.com/intro/getting-started. A live demo is 'coming soon,' so you cannot try it without installing. This is a gap: the README offers no quick-start command, which may frustrate users who want to evaluate before reading extensive docs.

The Subscription Model: What Is Free vs. Paid

A critical aspect is the feature split. The README marks 24/7 recording, semantic search, and push notifications with an asterisk, stating these require a camera.ui subscription. This means the core is free under MIT, but the most compelling features are not. The subscription funds ongoing development, as stated. This is a common open-core model, but it has implications: if you adopt the free core, you may find that essential surveillance features like continuous recording are paywalled. The MIT license applies to the code, but the subscription is for using certain features. This is not a limitation of the code itself but a business model constraint. You must read the subscription terms on cameraui.com to understand pricing and what exactly is included. The README does not list which features are free beyond the core live viewing and recording (though recording is marked, so it may be limited).

Limitations and Failure Modes

The most obvious limitation is the dependency on a subscription for key features. If you deploy the free version, you might only get live viewing and basic recording, which defeats the purpose of a professional platform. Another limitation is the lack of a live demo; the README says it is 'in the works,' so you cannot test the UI without installing. The documentation is external, and the README is sparse, so you must rely on docs.cameraui.com for details. There is no mention of supported camera protocols (ONVIF, RTSP, etc.), which is essential for integration. If your cameras use a proprietary protocol, camera.ui might not work. The plugin ecosystem is touted, but the README does not specify how to write plugins or what the API looks like. This could be a wrong tool if you need a fully offline, subscription-free system or if you have non-standard cameras.

Alternatives: How camera.ui Differs in Approach

A real alternative is Frigate, an open-source NVR that also focuses on local AI detection. Frigate uses a different approach: it is built around a real-time object detection engine that runs on a Google Coral or GPU, with a focus on efficiency. camera.ui, in contrast, emphasizes a plugin ecosystem and a modern UI, but its detection is on-device without specifying hardware acceleration. Frigate is fully open-source under MIT-like licenses without a subscription model, though it lacks semantic search. Another alternative is ZoneMinder, which is older and uses a traditional event-based recording approach with a less modern UI. The key difference is that camera.ui has a commercial layer, while Frigate and ZoneMinder are purely open-source. If you want a no-cost solution, those are better. If you want a polished, plugin-driven platform and are willing to pay, camera.ui is the choice.

Maintenance and Upgrade Cost

The repository shows recent releases with version numbers like server-v2.1.12, pushed on 2026-08-28. This indicates active maintenance, with multiple releases in the same week (v2.1.11 and v2.1.12), suggesting a fast iteration cycle. The project is not archived, and the last push is recent. The license is MIT, which is permissive, but the subscription model means you must track subscription changes. Upgrades are likely handled through the server package, but the README does not describe an upgrade process. You would need to follow the docs for migration steps. The cost of maintenance includes keeping the server updated, managing plugins, and ensuring compatibility with camera firmware. There is no mention of a migration path from other NVRs, so switching to camera.ui may require manual configuration.

Editorial conclusion

Adopt camera.ui if you want a local-first surveillance platform with a modern UI, plugin extensibility, and are willing to accept that features like semantic search, push notifications, and 24/7 recording require a subscription. Do not adopt it if you need a fully open-source, no-cost surveillance system or if you require extensive documentation beyond the README. Before deploying, verify the subscription pricing and feature availability on cameraui.com, and check the docs for supported camera protocols and hardware requirements.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes