ShinobiCE/Installation

From r00tedvw.com wiki
Jump to: navigation, search

Installation

Contents

Overview

Node.JS Zoneminder CCTV alternative

Ubuntu 20.04

UPDATE: I had a lot of issues installing Shinobi on Ubuntu, part of which was the installation scripts, but the other part was just Ubuntu issues with my TrueNAS iSCSI connection to ESXi 6. Ubuntu was not happy with the iSCSI and had alot of read/write errors to SDA, causing massive stability problems. I ended up abandoning Ubuntu and using CentOS 7 and is always works flawlessly with my TrueNAS iSCSI to ESXi 6.

Requirements

estimate
per 5MP IP camera @ 30FPS 5000 bitrate (full resolution)

  • CPU - unknown
  • RAM - unknown
  • Disk - 72GB per day

Installation

Installation needs to be done as root

~$ sudo su

Dependencies

~$ add-apt-repository universe
~$ apt install -y wget curl git software-properties-common net-tools dos2unix make zip ffmpeg

NodeJS

~$ curl -fsSL https://deb.nodesource.com/setup_12.x | bash -
~$ apt update -y && apt install -y nodejs

Clone Project

Place the project in the opt directory

~$ cd /opt/
~$ git clone https://gitlab.com/Shinobi-Systems/Shinobi.git Shinobi

Update SQL Scripts

I had issues with the default installation scripts so I had to make a few changes.

~$ vim /opt/Shinobi/sql/user.sql
CREATE USER 'majesticflame'@'%' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON ccio.* TO 'majesticflame'@'%';
FLUSH PRIVILEGES;

Install Shinobi

~$ cd /opt/Shinobi
~$ chmod +x INSTALL/ubuntu.sh && INSTALL/ubuntu.sh

Update pm2 so there are no autostart issues with the pm2-root service.

~$ pm2 unstartup
~$ npm install [email protected] -g
~$ pm2 startup

Troubleshooting

Verify services are running.

MariaDB
~$ systemctl status mariadb.service
NodeJS
~$ systemctl status pm2-root.service

~$ sudo pm2 list
...
┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬──────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid  │ status │ restart │ uptime │ cpu  │ mem       │ user │ watching │
├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼──────┼───────────┼──────┼──────────┤
│ camera   │ 0  │ fork │ 5821 │ online │ 0       │ 55s    │ 0.5% │ 99.3 MB   │ root │ disabled │
│ cron     │ 1  │ fork │ 5932 │ online │ 0       │ 41s    │ 0.2% │ 50.2 MB   │ root │ disabled │
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴──────┴───────────┴──────┴──────────┘


Remove and re-add nodeJS services to PM2 for auto start on boot.
It is CRITICAL that you start the JS processes from within the directory they live. Unfortunately the JS processes rely on other dependencies that are called from the relative directory you are launching them from, not the folder the JS file lives in.

~$ cd /opt/Shinobi
~$ sudo pm2 start /opt/Shinobi/camera.js
~$ sudo pm2 start /opt/Shinobi/cron.js
~$ sudo pm2 startup
~$ sudo pm2 save


CentOS7

Requirements

estimate
Base Installation w/o cameras

  • CPU - 2 core opteron 6380 @ 2.5GHZ
  • RAM - 1024 GB

Each additional 5MP IP camera @ 30FPS 5000 bitrate (full resolution) with motion detection and recording

  • CPU .5 core opteron 6380 @ 2.5GHZ
  • RAM - 500 GB
  • 72 GB per day.

These estimates are based on testing I did with a single camera vs with 3 cameras after bumping the system specs a little.
1 camera

  • CPU 2 core @ 2.5GHZ = 90% utilization
  • RAM 2GB = 50% utilization

3 cameras

  • CPU 4 core @ 2.5GHZ = 60% utilization
  • RAM 4GB = 50% utilization

Installation

Installation needs to be done as root

~$ sudo su

Dependencies

~$ yum update -y
~$ yum install -y epel-release
~$ yum update -y
~$ yum install -y curl wget net-tools git vim gcc gcc-c++ cmake make zip dos2unix

NodeJS

~$ curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
~$ yum install -y nodejs npm

Clone Project

Place the project in the opt directory

~$ cd /opt/
~$ git clone https://gitlab.com/Shinobi-Systems/Shinobi.git Shinobi

Install Shinobi

~$ cd /opt/Shinobi
~$ chmod +x ./INSTALL/centos.sh && ./INSTALL/centos.sh

Open port on firewalld

~$ firewall-cmd --zone=public --add-port=8080/tcp --permanent
~$ firewall-cmd --reload

Verify pm2-root.service is running

~$ systemctl status pm2-root.service
~$ systemctl start pm2-root.service
Personal tools
Namespaces

Variants
Actions
Navigation
Mediawiki
Confluence
DevOps Tools
Ubuntu
Oracle Linux
AWS
Windows
OpenVPN
Grafana
OwnCloud
Pivotal
osTicket
OTRS
phpBB
WordPress
VmWare ESXI 5.1
Crypto currencies
HTML
CSS
Python
Java Script
PHP
Raspberry Pi
Canvas LMS
Kaltura Media Server
Plex Media Server
MetaSploit
Zoneminder
ShinobiCE
Photoshop CS2
Fortinet
Uploaded
Certifications
General Info
Games
Meal Plans
NC Statutes
2020 Election
Volkswagen
Toolbox