IP and USB cameras recorded to MP4 and watched in the browser
Shinobi is a self-hosted network video recorder (NVR) written in Node.js. It uses FFmpeg to pull feeds from IP or USB cameras, records them straight to MP4 and streams the live view to a web dashboard over WebSocket, so the phone or laptop used to watch needs nothing installed. The GitLab project claims support for more than 6,000 camera models. The README offers a more practical check: if a feed plays in VLC, the same URL works in Shinobi. Pushing a camera live to YouTube or Twitch without keeping the footage is a job for Restreamer, a self-hosted server that republishes one feed to streaming platforms.
Motion regions, offloaded AI detectors and FTP or email alerts
- Motion by region, objects by plugin: motion across the whole scene or inside a chosen region can start a recording. Object detection plugins (YOLO, TensorFlow, Coral Edge TPU) can run on a separate machine.
- Events from basic cameras: a built-in FTP server turns each uploaded file into an event, for cameras whose only way to report motion is an FTP upload. A built-in SMTP server does the same with alert emails, and an MQTT client accepts triggers from other systems.
- Restricted and multi-tenant accounts: an account can get limited rights or manage its own cameras. Sign-in works with LDAP or Google, and two-factor authentication is available.
- Off-site copies and scheduled cleanup: recordings can be sent to Amazon S3, Backblaze B2, Google Drive, Wasabi or WebDAV, and a scheduled job deletes footage older than the account's retention period.
- Alerts and home automation: Discord, Telegram, Matrix or Pushover. In Home Assistant, each camera shows up as a full set of entities.
Commercial use under a paid EULA, updates through git pull
The README says open source; the license is a usage agreement. LICENSE.md calls itself an End User License Agreement from Shinobi Systems. It lets you modify the code and strip the branding from the interface, but any contributed code becomes Shinobi Systems property, and the company can change the terms at any time.
Free use covers homes, schools and part of the public sector. The license grants it for personal or non-commercial use, research, primary and secondary schools, emergency services with fewer than 50 cameras and healthcare facilities with fewer than 100. Testing is capped at 5 cameras for 14 days. An organization using it for free must display "shinobi.video", on site or on its website.
A shop pays from its first camera, any other non-personal setup from its fifteenth. The license counts as commercial any use in a place that sells goods or services, and any install with at least 15 active cameras outside personal use and schools. Past 150, buyers have to ask for an Enterprise license. Easy Remote Access, which reaches the server from outside without port forwarding or a VPN, is reserved for license holders.
The recommended install is Ubuntu on dedicated hardware, with MariaDB and FFmpeg. The docs favor a dedicated Ubuntu 22.04 machine, a Raspberry Pi or a Jetson Nano over Docker or a VM, though a Docker guide exists. Their "Ninja Way" method installs Node.js, FFmpeg and MariaDB. Only the MySQL drivers, which also serve MariaDB, ship with Shinobi: PostgreSQL or SQLite mean installing their driver by hand.
No release since July 2022: updates come straight from Git. The last GitLab releases date from 15 and 16 July 2022. Work continues on branches, with the latest master commit on 20 August 2026 and the latest dev commit on 20 October 2026. UPDATE.sh runs git reset --hard and then git pull, so any local change to the code is wiped on every update.
