
I’ve come across another piece of security camera software called Shinobi.
Shinobi is an open-source, free-to-use NVR and VMS that you can host on your own server. It allows you to connect security cameras from different brands, provided they support RTSP. Cameras that don’t support at least RTSP cannot be connected to Shinobi. All right, I’ve put together a complete guide below showing you how to install and configure Shinobi on Ubuntu. The instructions are based on my own hands-on installation and testing experience.
If you run into any problems or have questions while following this guide, feel free to drop a comment below. I’ll do my best to help!
Get to Know Shinobi, a Self-Hostable Virtual NVR and VMS
I have previously tried several other software programs similar to Shinobi, such as VibeNVR and Sentinel VMS.
So, I assume the functionality will be much the same.
Still, there’s no harm in giving it a try. Its official website states that Shinobi has been installed over 10 million times worldwide—a significant figure. This is certainly a much higher number than that of VibeNVR or Sentinel VMS, both of which, to my knowledge, were developed only recently.
According to its records, Shinobi has been in development since 2016, created by a developer named Moe Alam.
40+ Shinobi Features
- Written in Node.js
- Run Custom Scripts on System Actions
- Runs on Linux, Mac and Windows
- Web Interface
- Docker Deployment
- Mobile Companion App
- RTSP/UDP Camera Support
- Easy Remote Access
- Live Stream display in the Web
- PTZ Support
- H.265 Support
- Automatic PTZ Tracking
- Monitor Map
- Two-Way Audio
- Video Recording Management
- Video Slicer
- Time-lapse Management
- Video Slicer
- Scheduling Camera Presets
- Tiered User System
- Dynamic Substreams
- Multitenancy User System
- Cloud Storage Integration
- Bypass Browser Stream Limit
- Configuration Backup
- Motion Detection
- Migration Tools
- Multi-Storage Locations
- Object Detection with AI
- Cluster Management
- External Plugin System
- Central Management
- Event Alerting
- Failover Servers
- Multicasted Streams
- MQTT Integration
- 2-Factor Authentication
- Home Assistant Integration
- Timeline
- RESTful API Access
- Video Wall Display
- WebSocket Events
- Video Compression
- Developer Friendly
- Event Filtering
- Embeddable Streams
- Enterprise Authentication
- ONVIF Integration
- Multi-Language Support
- External Event Triggering
- HTTPS Encryption
- Trigger Multiple Cameras at Once
Shinobi actually has a lot more features than the ones I’ve mentioned above. I probably won’t use them all, but I’ll take some time to explore what else it can do.
How do I install and set up Shinobi on a Linux Ubuntu PC?
5 Ways to Install Shinobi
- The Ninja Way
- Docker
- Docker Desktop: Windows
- Raspberry Pi
- Jetson Nano
Hardware Requirements for Shinobi
| Cameras / Mode | 720 p @ 25 fps, 1 Mb s⁻¹ (H.264) | 1080 p @ 25 fps, 2 Mb s⁻¹ (H.264) | 4 MP @ 25 fps, 2 Mb s⁻¹ (H.265) |
|---|---|---|---|
| 5 — Object Detection ON | • CPU: 2 c / 4 t (Pentium Gold G7400) • RAM: 4 GB • Storage 24/7: ≈ 0.8 TB • Storage Event: ≈ 19 GB* • Net: 1 GbE • GPU: GTX 1050 Ti 4 GB | • CPU: 4 c (Core i5-3470) • RAM: 6 GB • Storage 24/7: ≈ 1.5 TB • Storage Event: ≈ 38 GB* • Net: 1 GbE • GPU: GTX 1050 Ti | • CPU: 6 c (Core i5-13400 / Ryzen 5 5600) • RAM: 6 GB • Storage 24/7: ≈ 1.5 TB • Storage Event: ≈ 38 GB* • Net: 1 GbE • GPU: GTX 1050 Ti |
| 5 — No Object Detection | • CPU: 2 c (Celeron G6900) • RAM: 4 GB • Storage 24/7: ≈ 0.8 TB • Storage Event: ≈ 19 GB* • Net: 1 GbE | • CPU: 2 c / 4 t (Pentium G4560) • RAM: 4 GB • Storage 24/7: ≈ 1.5 TB • Storage Event: ≈ 38 GB* | • CPU: 3–4 c (Core i3-12100 / Ryzen 3 4100) • RAM: 4 GB • Storage 24/7: ≈ 1.5 TB • Storage Event: ≈ 38 GB* |
| 30 — Object Detection ON | • CPU: 8 c (Ryzen 7 5700X / i7-12700) • RAM: 8 GB • Storage 24/7: ≈ 4.5 TB • Storage Event: ≈ 113 GB* • Net: 1 GbE (2.5 GbE pref.) • GPU: GTX 1050 Ti | • CPU: 16 c (Ryzen 9 5900X / Xeon Silver) • RAM: 12 GB • Storage 24/7: ≈ 9 TB • Storage Event: ≈ 227 GB* • Net: 2.5 GbE • GPU: GTX 1050 Ti | • CPU: 20 c (EPYC 7302 / Xeon Gold) • RAM: 16 GB • Storage 24/7: ≈ 9 TB • Storage Event: ≈ 227 GB* • Net: 2.5 GbE • GPU: GTX 1050 Ti |
| 30 — No Object Detection | • CPU: 4 c (Ryzen 5 5500 / i5-10400) • RAM: 6 GB • Storage 24/7: ≈ 4.5 TB • Storage Event: ≈ 113 GB* | • CPU: 8 c (Ryzen 7 3700X / Xeon E-2278) • RAM: 8 GB • Storage 24/7: ≈ 9 TB • Storage Event: ≈ 227 GB* | • CPU: 10 c (EPYC 7252 / Xeon Silver 4210) • RAM: 12 GB • Storage 24/7: ≈ 9 TB • Storage Event: ≈ 227 GB* |
| 100 — Object Detection ON | • CPU: 16 c (Xeon Gold 5218 / EPYC 7302) • RAM: 128 GB • Storage 24/7: ≈ 16 TB • Storage Event: ≈ 0.4 TB • Net: Dual 10 GbE • GPU: RTX A2000 / RTX 3060 Ti | • CPU: same as 720 row • RAM: 128 GB • Storage 24/7: ≈ 30 TB • Storage Event: ≈ 0.75 TB • Net / GPU: same | • CPU / RAM: same • Storage 24/7: ≈ 30 TB • Storage Event: ≈ 0.75 TB |
| 100 — No Object Detection | • CPU: 10 c (Xeon Silver 4210 / E5-2640 v4) • RAM: 32 GB • Storage figures: same as OD row (no-change) • Net: Single 10 GbE | • CPU / RAM: same • Storage: ≈ 30 TB / 0.75 TB | • CPU / RAM: same • Storage: ≈ 30 TB / 0.75 TB |
| 200 — Object Detection ON | • CPU: 24 c (Xeon Gold 6248 / EPYC 7402) • RAM: 256 GB • Storage 24/7: ≈ 32 TB • Storage Event: ≈ 0.8 TB • Net: Dual 10 GbE • GPU: RTX A4000 / RTX 3080 | • CPU / RAM: same • Storage 24/7: ≈ 60 TB • Storage Event: ≈ 1.5 TB | • CPU / RAM: same • Storage 24/7: ≈ 60 TB • Storage Event: ≈ 1.5 TB |
| 200 — No Object Detection | • CPU: 16 c (Xeon 5218 / EPYC 7302) • RAM: 64 GB • Storage: same as OD row | • CPU / RAM: same • Storage: ≈ 60 TB / 1.5 TB | • CPU / RAM: same • Storage: ≈ 60 TB / 1.5 TB |
| 500 — Object Detection ON | • CPU: 64 c (EPYC 7713 / dual Platinum 8352Y) • RAM: 640–768 GB • Storage 24/7: ≈ 80 TB • Storage Event: ≈ 2 TB • Net: Dual 25 GbE • GPU: 2 × RTX A6000 / 2–3 × RTX 4090 | • CPU / RAM: same • Storage 24/7: ≈ 150 TB • Storage Event: ≈ 3.75 TB | • CPU / RAM: same • Storage 24/7: ≈ 150 TB • Storage Event: ≈ 3.75 TB |
| 500 — No Object Detection | • CPU: 32 c (dual Gold combo / EPYC 7713 (part-ctrl)) • RAM: 128 GB • Storage: same as OD row | • CPU / RAM: same • Storage: ≈ 150 TB / 3.75 TB | • CPU / RAM: same • Storage: ≈ 150 TB / 3.75 TB |
| 1000 — Object Detection ON | • CPU: 128 c (dual EPYC 7713 / dual Platinum 8380) • RAM: 1 TB + • Storage 24/7: ≈ 160 TB • Storage Event: ≈ 4 TB • Net: Dual 40–100 GbE • GPU: 2 + × NVIDIA A100 or multi-4090 cluster | • CPU / RAM: same • Storage 24/7: ≈ 300 TB • Storage Event: ≈ 7.5 TB | • CPU / RAM: same • Storage 24/7: ≈ 300 TB • Storage Event: ≈ 7.5 TB |
| 1000 — No Object Detection | • CPU: 48–64 c (dual Platinum 8380 / dual EPYC 7713) • RAM: 256 GB • Storage: same as OD row | • CPU / RAM: same • Storage: ≈ 300 TB / 7.5 TB | • CPU / RAM: same • Storage: ≈ 300 TB / 7.5 TB |
You can also estimate your storage requirements by visiting this page.
Since this guide focuses on installing Shinobi, I’ll be using the PC I currently have available, with the following specifications:
- PC: Dell OptiPlex 3060 Micro
- RAM: 8 GB
- Storage: 500 GB
- Processor: Intel Core i3-8100T @ 3.10 GHz
Steps to Install Shinobi Manually
1. Update Software
Before installing Shinobi, I recommend updating your Ubuntu system. You can do this by running the following commands in the Terminal.
sudo apt updateAs usual, I’ll be connecting to my Ubuntu PC remotely via SSH to run the commands.
2. Installing Software Updates
Once the package information has been downloaded successfully, the next step is to install the available updates.
Run the following command in the Terminal to install them:
sudo apt upgrade -y3. Installing Git
This step is only necessary if Git isn’t already installed on your Ubuntu system. You can check whether Git is installed by running the following command in the Terminal:
git --versionIf Git is not already installed, you can install it by running the following command:
sudo apt install git -y4. Cloning the Shinobi Source Code from GitHub
Next, you’ll need to download the Shinobi source code from GitHub to your Ubuntu PC. Open the Terminal and run the following command:
git clone https://gitlab.com/Shinobi-Systems/Shinobi.git ShinobiOnce the download is complete, navigate to the Shinobi folder. This is where we’ll install Shinobi. Run the following command in the Terminal:
cd Shinobi5. Installing Shinobi
Before starting the installation, you need to make the installation script executable. You can do this by running the following command in the Terminal:
sudo chmod +x INSTALL/ubuntu.shNow, run the following command to install Shinobi:
sudo INSTALL/ubuntu.shThe installation runs automatically, downloading and installing all the required files. You don’t need to do anything during this process—just wait for it to finish.
Note: If you’re installing Shinobi manually, make sure to follow each step carefully. Even a small mistake can prevent Shinobi from running properly on Ubuntu. For example, as shown below, I ran into an issue where NPM failed to install.

If you’re new to Shinobi, I’d recommend using the Ninja Way installation method instead. It’s a much easier option for beginners.
Steps to Install Shinobi the Ninja Way
Open the Terminal and switch to the superuser account. Use the method appropriate for the device you are using.
sudo su (Ubuntu)
su (Centos)
su (MasOS)Run the following command to install Shinobi:
sh <(curl -s https://cdn.shinobi.video/installers/shinobi-install.sh)You’ll then be prompted with a confirmation message: “Install the Development branch?” Type Y and press Enter to continue.
Select your OS
If your OS is not on the list please refer to the docs.
========
1. Ubuntu - Fast and Touchless
2. Ubuntu - Advanced
3. Alma Linux 9.2 / Rocky 9 / CentOS 8 - Fast and Touchless (Red Hat)
4. CentOS
5. MacOS
6. FreeBSD
7. OpenSUSE
8. Arch Linux - Fast and Touchless
9. Bazzite / Fedora Atomic - Rootless Podman (Experimental)
Since I’m using Ubuntu, I entered 1 to select Ubuntu and pressed Enter.
Shinobi - Do you want to temporarily disable IPv6?
Sometimes IPv6 causes Ubuntu package updates to fail. Only do this if your machine doesn't rely on IPv6.Type Y and press Enter.
Next, just let the installation run. There’s nothing else you need to do.
It should take less than five minutes to complete.
Once the installation is finished, Shinobi will display your login details, including the IP address to access it through a web browser, along with the default username and password.
Shinobi Default Login Credentials:
- Host: http://192.168.1.9:8080/super (Your computer’s IP address may be different.)
- Username: admin@shinobi.video
- Password: admin

How to Set Up Shinobi for the First Time After Installing It on Ubuntu?
Creating an Account to Access the Dashboard
The default admin account can’t access the dashboard. You’ll need to create a new account the first time you use Shinobi.
Here’s how to create one:
Log in to the Super Admin page, then click the + icon.
Here are the fields I filled in when creating my account:
- Email: Enter your email address.
- Password: Choose a password for your account.
- Permissions: Select All Privileges.
I left all the other settings at their default values. However, you can adjust them to suit your needs if your setup requires different permissions or configurations.
Click Save to create the account.
How to Log In to the Shinobi Dashboard
The URL http://192.168.1.9:8080/super takes you to the Super Admin page.
To access the main dashboard, where you can manage and add cameras, open http://192.168.1.9:8080 in your web browser.
Then, log in using the email address and password you just created.
Shinobi CCTV Dashboard (2026):

How to Change the Shinobi CCTV Web UI Port?
Shinobi uses port 8080 by default to access its web interface through a browser. However, I also want to install another application on my Ubuntu system that uses the same port. To avoid a port conflict, I’ll change Shinobi’s default port to a different one.
Can I change the Shinobi Web UI port?
Yes, you can. Shinobi allows you to change the default Web UI port. First, log in to the Shinobi Superuser page.
Click the Configuration menu.

Scroll down until you find the Server Port section. Change the default port number (8080) to your preferred port. For this example, I’ll use 8181.
After changing the port, click Save to apply the new setting.
A confirmation page will appear with the following message:
This is a change being applied to the configuration file (conf.json). Are you sure you want to do this? You must restart Shinobi for these changes to take effect. The JSON below is what you are about to save.
Click Save to confirm the changes.
Next, restart Shinobi for the changes to take effect.
Select the System menu.
Click the Restart Core button.

A confirmation window will appear with the following message:
Do you want to restart the core (camera.js)? Plugins will not be restarted. They will reconnect when Shinobi is back online.
Click Restart to proceed.
As you can see in the image below, Shinobi is now accessible through my web browser using port 8181 instead of the default port 8080.

Shinobi CCTV Dashboard Menus
The dashboard menus help you navigate Shinobi’s features, from adding cameras and playing back recordings to managing other settings, much like you would on a traditional NVR. Here’s a quick look at the available menus and what they do.
At the top of the dashboard menu, you’ll find system usage information, including:
- CPU
- RAM
- Memori
- Kamera Aktif/Active Monitors
Main Menu:
- Home
- Live Grid
- Monitors
- Timeline
- Monitor Map
- Videos
- Events
- Calendar
- Time-lapse
- FileBin
- Monitor Settings
- Region Editor
- Event Filters
- Monitor States
- Schedules
- Logs
- Account Settings
- Sub-Account Manager
- Permission Groups
- API Keys
- ONVIF Scanner
- ONVIF Device Manager
- Rally
- Probe
- ShinobiHub
- Help
- Logout
How to Add an RTSP IP Camera to Shinobi CCTV on Ubuntu?
To make this guide more complete, I’ll also show you how to add a security camera to Shinobi using an RTSP URL. For this example, I’ll be using a Bardi camera. You can follow the same steps with your own camera, as long as it supports RTSP.
Click Monitor Settings.

Then, scroll down until you find the RTSP URL field. Enter your camera’s RTSP URL here. Since I’m using a Bardi camera, I’ll enter the Bardi camera’s RTSP URL. That’s the only setting I’ll change. I’ll leave all the other fields at their default values.
Click Save to save your camera settings.
If you see the message “Monitor Saved. Some Stream 9m7ArWJyjt has been saved,” it means your camera has been successfully added to Shinobi. Go back to the main dashboard to view the live feed from your connected camera.
Below is an example of my Bardi camera successfully connected to Shinobi.

How to Access Shinobi CCTV from VLC Media Player?
According to the official documentation, you can access Shinobi streams using any video player that supports RTSP. I wanted to test this myself to see how well it works.
Log in to the Shinobi User page.
Select the Monitor menu.
Click the Copy button to copy the stream URL.

Next, paste the copied path at the end of the main URL.
For example, if your main URL is http://192.168.1.13:8080/, the complete URL should look like this after adding the path:
http://192.168.1.13:8181/e43646d5530936cc9fe2b78c87e22359/hls/3ebrRXGBjc/9m7ArWJyjt/s.m3u8Here’s a breakdown of the URL:
- Protocol : http
- Host : 192.168.1.13
- Port : 8181
- API Key : e43646d5530936cc9fe2b78c87e22359
- Group Key : 3ebrRXGBjc
- Monitor ID : 9m7ArWJyjt
Once you have the URL, open VLC Media Player.
- Go to File > Open Network.
- Paste the copied URL into the provided field.
- Click Open to start the live stream.
If everything works correctly, you’ll see your camera’s live feed in VLC, as shown in the image below. In my test, I successfully streamed my Bardi camera from Shinobi to VLC Media Player.

How to Reset a Forgotten Shinobi Login Password?
It’s easy to forget your login credentials sometimes, but don’t worry. You can use the Superuser panel to reset your username and password.
Resetting a User Password
- Open the Superuser page.
- Select Accounts.
- Find the account you want to update and click the lock icon next to it.
- Enter your new password.
- Click Save to apply the changes.
Resetting a Superuser Password
Don’t worry. If you run into this situation, you can still access the Shinobi directory.
Inside, you’ll find two files: super.json and super.sample.json.
Simply replace super.json with super.sample.json. On Unix-based systems (Linux and macOS), you can also run the following command from inside the Shinobi directory to reset the Superuser account to the default credentials listed in super.sample.json.
cp super.sample.json super.json
The command above replaces super.json with super.sample.json. I actually tried changing the password by editing super.json manually, but it didn’t work. I still couldn’t log in, so replacing the file turned out to be the way to go.
By default, Shinobi is installed in the /home/Shinobi directory.
If you can still access the Shinobi Superuser page, you can change the Superuser password from the Preferences menu.
Frequently Asked Questions (FAQs)
What Is Shinobi CCTV?
Shinobi is a self-hosted virtual NVR software that allows me to connect security cameras from different brands using RTSP.
Is Shinobi CCTV Free to Use?
Yes! You can use Shinobi for free. However, paid plans are also available if you want to access your Shinobi system remotely through P2P.
Is There a Shinobi App for Smartphones?
Yes! You can install an app called Shinobi Go on your smartphone to access your Shinobi system.
Conclusion
After 2 days of trying, I finally managed to install Shinobi on Ubuntu!
My first attempt failed because I followed installation guides I found online. However, after switching to the instructions provided by Shinobi’s technical support team, I finally got it working. If you’re following this guide, I recommend going straight to The Latest Method for Installing Shinobi in 2026 to avoid the same problems I encountered.
Tip: It’s best to install Shinobi on a fresh Ubuntu system that doesn’t already have other security camera software installed. This can help prevent port conflicts between applications.
I hope this guide has been helpful. Good luck with your Shinobi installation!