Shinobi: Build Your Own Free Surveillance CCTV NVR System in Minutes with Easy Docker Installation
Shinobi is the Open Source CCTV Solution written in Node.JS. Designed with multiple account system, Streams by WebSocket, and Direct saving to MP4. Shinobi can record IP Cameras and Local Cameras.
Shinobi is an open-source free NVR/ CCTV and DVR system that can be used for home security, business surveillance, store camera DVR, baby monitoring, and site security.
Shinobi can record videos in modern video formats that include MP4, WebM and supports real-time streaming using Websocket.
The app comes with full support to GPU, NVIDIA and comes with built-in object detection using TensorFlow.
Features
- Open Source: Free and customizable surveillance software.
- Web-based Interface: Easily manage cameras via browser access.
- Flexible Recording Modes: Continuous, motion detection, or scheduled recording.
- Video Formats: Supports H.264, H.265, MJPEG, and more.
- Cloud Storage: Integration with platforms like Google Drive, AWS, and Backblaze.
- Multi-Camera Support: Monitor hundreds of cameras simultaneously.
- Motion Detection: Advanced settings for zone detection and alerts.
- User Management: Create and manage multiple users with different access levels.
- API Access: Developers can extend functionalities through RESTful APIs.
- Alerts and Notifications: Get email, SMS, or webhook alerts on events.
- Mobile App Access: Stream cameras via mobile browsers or third-party apps.
- Event Logging: Searchable logs for events and recordings.
- Dashboard Customization: Personalize the UI to fit your needs.
- Third-Party Integrations: Works with systems like Home Assistant, IoT devices, and NVR setups.
Platforms
The solution works seamlessly on Linux systems, Windows and macOS. The easiest way to install is using Docker.
Install Shinobi CCTV the Ninja Way (From Source)
This method allows you to directly install Shinobi on several Linux systems that include:
- Ubuntu
- Debian
- CentOS
- macOS
- FreeBSD
- openSUSE
First make sure you logged in as the root user of the systems su
, then run:
sh <(curl -s https://cdn.shinobi.video/installers/shinobi-install.sh)
In the following video a complete setup tutorial for Shinobi:
Installing Your Shinobi CCTV/ NVR System using Docker
In this section, we will review the tradition way to install and installing it using Docker.
This Docker image comes with the following features:
- Shinobi & MariaDB image are two separate containers.
- You can easily swap out MariaDB for another DB image, such as MySQL, or change the MariaDB version.
- You can even decide to have a DB sitting directly on a physical machine, rather then as a container.
- Multi-arch builds, which means the Shinobi image is compatible with different CPU architectures.
- Such as ARM used by Raspberry Pis, etc.
PHP My Admin
is included, so you can manage the data in your database, simply by browsing tohttp://xxx.xxx.xxx.xxx:8888
. This gives you an easy way to export/import your Shinobi database via a GUI!- Works on Raspberry Pi
To install Shinobi CCTV using Docker and Docker Compose, follow these steps:
Clone the Docker Repository: Open a terminal and clone the Docker repository for Shinobi:
git clone https://github.com/deltoss/ShinobiDocker.git ShinobiDocker && cd ShinobiDocker
Start the Containers: In the ShinobiDocker
directory, run the following command to start the Shinobi and MariaDB containers:
docker-compose up -d
Access Shinobi: After the containers are running, open a web browser and access the Shinobi interface through your host machine's IP address on port 8080:
http://<your-ip>:8080/super
- Use the default credentials to log in:Username: admin@shinobi.videoPassword: admin
Create Your Account: After logging in, set up your administrator account. You can then access the main interface at:
http://<your-ip>:8080
Optional: Adjust Database Settings: The setup uses separate containers for MariaDB and Shinobi, which makes it easier to maintain. You can modify the .env
file if you need to change the database configuration or use alternative images, especially if deploying on ARM devices such as Raspberry Pi.
Custom Docker Image that Works in Kubernetes
The GitHub repository docker-shinobi-cctv by cr1st1p provides a Docker image tailored for deploying the Shinobi CCTV system.
This version focuses on lightweight deployment, optimizing it for Kubernetes environments by excluding MySQL setup and certain build tools.
Users can to configure external MySQL instances and provide necessary configuration files. It also supports testing via Docker Compose, with setup instructions available in the repository.
This approach enables more modular deployment and integration into cloud-native infrastructures like Kubernetes.