ShinobiCCTV - сервер видеонаблюдения с открытым исходным кодом, написан на Node.js и очень прост в использовании.
Shinobi рассчитан на высокую производительность. Вы можете собрать видеопотоки различных протоколов в одном месте и не заморачиваться с перекодировкой и какими-то еще дополнительными действиями.
Собрать в кучу IP камеры и видеорегистраторы на одном своем сайте? Не вопрос! Shinobi на Astra Linux поможет Вам в этом!

Основатель Shinobi Systems Мо Алам хотел создать облачное решение для записи видео. Такое, которым мог бы легко пользоваться каждый. Просто войдите в свою учетную запись, добавьте сведения о камере, задайте параметры, и все готово. Просмотр трансляций и записей на вашем мобильном устройстве простым открытием веб-страницы. Никаких установок. Это означает, что вы можете просматривать их на любом устройстве с поддерживаемым браузером.
За основу возьмем стандартный скрипт установки Shinobi и поправим его под Astra Linux:
Скачаем скрипт-установщик с официального сайта в домашнюю папку ну и заодно переименуем его:
sudo wget -O ~/shinobi-astra-install.sh https://cdn.shinobi.video/installers/shinobi-install.sh
1. Начнем править скрипт установки Shinobi для Astra Linux:
Скрипт установки скачивает ветку git репозитория в нашу локальную домашнюю папку.
Все что нам необходимо - это создать по аналогии с Ubuntu файлы установки Shinobi для Astra Linux.
Ну и, естественно добавить выбор операционной системы Astra Linux в еще одном файле, путем замены его содержимого также в нашем редактируемом скрипте установки shinobi-astra-install.sh.
Путем замены и дополнения содержимого нашего файла-установщика shinobi-astra-install.sh, для начала, разрешим установку пакетов не только релиза Astra Linux, так как нам будет нужна версия Node.js выше 10ой, которая имеется в репозитории Astra Linux, так сказать закомментируем содержимое файла /etc/apt/preferences.d/smolensk , ну и заменим сурслисты Astra Linux на верные интернет-репозитории Astra Linux путем замены содержимого файла /etc/apt/sources.list
Откроем наш файл на редактирование:
kate ~/shinobi-astra-install.sh
После 110 строки добавляем:
cat << EOF > /etc/apt/preferences.d/smolensk#Package: *#Pin: release n=1.7_x86-64#Pin-Priority: 900EOF
cat << EOF > /etc/apt/sources.listdeb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-freedeb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free astra-cedeb https://dl.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-base/ 1.7_x86-64 main contrib non-freedeb https://dl.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-extended/ 1.7_x86-64 main contrib non-free astra-ceEOF
sudo apt update
После этих строк путем вставки в наш скрипт shinobi-astra-install.sh следующего кода добавим в папку склонированной ветки git репозитория 3 файла с необходимым нам содержимым для Astra Linux и заменим содержимое одного файла путем вставки в наш скрипт shinobi-astra-install.sh следующего кода:
cat << EOF > "$installLocation"/Shinobi/INSTALL/now.sh#!/bin/bashecho "Установщик Shinobi"echo "========"echo "Выберите свою ОС"echo "Если Ваша ОС не в списке, пожалуйста, обратитесь к документации."echo "========"echo "1. Ubuntu - Fast and Touchless"echo "2. Ubuntu - Advanced"echo "3. Alma Linux 9.2 / Rocky 9 / CentOS 8 - Fast and Touchless (Red Hat)"echo "4. CentOS"echo "5. MacOS"echo "6. FreeBSD"echo "7. OpenSUSE"echo "8. Astra Linux 1.7"echo "========"read oschoiceecase \$oschoicee in"1")chmod +x INSTALL/ubuntu-touchless.shsh INSTALL/ubuntu-touchless.sh ;;"2")chmod +x INSTALL/ubuntu.shsh INSTALL/ubuntu.sh ;;"3")chmod +x INSTALL/rocky9-touchless.shsh INSTALL/rocky9-touchless.sh ;;"4")chmod +x "INSTALL/CentOS - Quick Install.sh"sh "INSTALL/CentOS - Quick Install.sh" 1 ;;"5")chmod +x INSTALL/macos.shsh INSTALL/macos.sh ;;"6")chmod +x INSTALL/freebsd.shsh INSTALL/freebsd.sh ;;"7")chmod +x INSTALL/opensuse.shsh INSTALL/opensuse.sh ;;"8")chmod +x INSTALL/astra.shsh INSTALL/astra.sh ;;
*) echo "Choice not found." ;;esacEOF
cat << EOF > "$installLocation"/Shinobi/INSTALL/astra.sh#!/bin/bashDIR=\$(dirname \$0)echo "========================================================="echo "==!! Shinobi : The Open Source CCTV and NVR Solution !!=="echo "========================================================="echo "Чтобы ответить утвердительно нажмите (y) в строчном режиме и нажмите ENTER."echo "По умолчанию нет (N). Пропустите компоненты в которых не нуждаетесь."echo "============="#Detect Ubuntu Versionecho "============="echo " Определяем версию Astra"echo "============="getubuntuversion=\$(lsb_release -r | awk '{print $2}' )echo "============="echo " Версия Astra: \$getubuntuversion"echo "============="sudo apt install sudo wget -ysudo apt install -y software-properties-commonsudo apt install git gcc-8 g++-8 -ysudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8#create conf.jsonif [ ! -e "./conf.json" ]; then sudo cp conf.sample.json conf.json #Generate a random Cron key for the config file cronKey=\$(head -c 1024 < /dev/urandom | sha256sum | awk '{print substr($1,1,29)}') #Insert key into conf.json sudo sed -i -e 's/change_this_to_something_very_random__just_anything_other_than_this/'"$cronKey"'/g' conf.jsonfi#create super.jsonif [ ! -e "./super.json" ]; then echo "=============" echo "* Вы можете изменить эти настройки в файле \"super.json\" расположенном в каталоге Shinobi." sudo cp super.sample.json super.jsonfiif ! [ -x "\$(command -v ifconfig)" ]; then echo "=============" echo "Shinobi - устанавливаем Net-Tools и Dos2Unix" sudo apt install net-tools -yfisudo apt install dos2unixif ! [ -x "\$(command -v node)" ]; then echo "=============" echo "Shinobi - устанавливаем Node.js" $installLocation/Shinobi/INSTALL/nodejs-astra.shelse echo "Node.js найден..." echo "Версия : \$(node -v)"fiif ! [ -x "\$(command -v npm)" ]; then sudo apt install npm -yfisudo apt install make zip -yif ! [ -x "\$(command -v ffmpeg)" ]; then echo "=============" echo "Shinobi - установка кодеков FFMPEG" sudo apt install ffmpeg -yelse echo "FFmpeg найден..." echo "Версия : \$(ffmpeg -version)"fiecho "============="#TODO УСТАНОВКА БАЗЫ ДАННЫХ СДЕЛАТЬ КАК В PHPMYADMINecho "Shinobi - Вы хотите установить MariaDB? Выберите нет, если она уже установлена."echo "(y)es or (N)o"read -r mysqlagreeif [ "\$mysqlagree" = "y" ] || [ "\$mysqlagree" = "Y" ]; then echo "Shinobi - Установка MariaDB" echo "Пароль для пользователя SQL root, Если вы устанавливаете сейчас SQL Вы должны ввести какой-либо пароль:" read -r sqlpass echo "mariadb-server mariadb-server/root_password password \$sqlpass" | debconf-set-selections echo "mariadb-server mariadb-server/root_password_again password \$sqlpass" | debconf-set-selections sudo apt install mariadb-server -y sudo service mysql startfiecho "============="echo "Shinobi - Создаем базу данных "#echo "(y)es or (N)o"#read -r mysqlagreeData#if [ "\$mysqlagreeData" = "y" ] || [ "\$mysqlagreeData" = "Y" ]; then# if [ "\$mysqlagree" = "y" ] || [ "\$mysqlagree" = "Y" ]; then sqluser="root"# fi# if [ ! "\$mysqlagree" = "y" ]; then# echo "Введите имя пользователя SQL"# read -r sqluser# echo "Введите пароль SQL?"# read -r sqlpass# fi sudo mysql -u "\$sqluser" -p"\$sqlpass" -e "source sql/user.sql" || true#fiecho "============="echo "Shinobi - Установка библиотек NPM"sudo npm i npm -gsudo npm install --unsafe-perm# sudo npm audit fix --forceecho "============="echo "Shinobi - Установка PM2"sudo npm install pm2@latest -gecho "Shinobi - Установка завершена"sudo chmod -R 755 .touch INSTALL/installed.txtdos2unix INSTALL/shinobiln -s \`readlink -f INSTALL/shinobi\` /usr/bin/shinobiecho "Shinobi - Генерируем ключ cron"node tools/modifyConfiguration.js addToConfig="{\"cron\":{\"key\":\"\$(head -c 64 < /dev/urandom | sha256sum | awk '{print substr($1,1,60)}')\"}}"#echo "Shinobi - Запустить Shinobi и установить в автозагрузку?"#echo "(y)es or (N)o"#read -r startShinobi#if [ "$startShinobi" = "y" ] || [ "$startShinobi" = "y" ]; then sudo pm2 start camera.js #sudo pm2 start cron.js sudo pm2 startup sudo pm2 save sudo pm2 list#fiecho "====================================="echo "||===== Установка Завершена =====||"echo "====================================="echo "|| Войдите с учетной записью Superuser и создайте нового пользователя !!!"echo "||==================================="echo "|| Откройте http://\$(ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'):8080/super в вашем браузере."echo "||===================================" EOF
cat << EOF > "$installLocation"/Shinobi/INSTALL/nodejs-astra.shsudo apt-get updatesudo apt-get install -y ca-certificates curl gnupgsudo mkdir -p /etc/apt/keyringsrm /etc/apt/keyrings/nodesource.gpgcurl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg#NODE_MAJOR=16echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.listsudo apt-get updatesudo apt-get install nodejs -yEOF
Ну и конечно же нужно дать вновь созданным файлам права на исполнение:
добавляем в наш скрипт shinobi-astra-install.sh после вышестоящего блока и перед sudo chmod +x INSTALL/start.sh команды, меняющие права на исполнение этим файлам:
sudo chmod +x INSTALL/astra.sh
sudo chmod +x INSTALL/nodejs-astra.sh
sudo chmod +x INSTALL/now.sh
Ну вот, в принципе и все, файл установки подготовлен, сохраняем его, даем права на исполнение и запускаем.
Как это сделать указано ниже:
1. Переходим в root
$ sudo su
2. Переходим в папку с установщиком, даем права на исполнение:
chmod +x shinobi-astra-install.sh
3. Запускаем: ./shinobi-astra-install.sh
как ответить на вопросы, покажем на картинках:
Устанавливать ветку разработки? Ответим n, нам нужна мастер ветка:
Какую же ОС мы выберем то? Ну конечно нашу Астру, вводим вариант 8:
Устанавливать базу данных MariaDB ? Если еще не установлена, то конечно же да! выбираем y :
Однозначно, нужно ввести пароль для root базы данных. Главное его не забыть потом:
Ну вот, сервер установлен:
Переходим по ссылке зажав Ctrl и нажав мышью на адрес нашего сервера http://какой-то-наш-ИП-сервер:8080/super
Первоначально зайдем на него с учетной записью админа как на картинке:

После входа в так называемую административную панель создадим первого пользователя, с которым мы будем входить во фронтальную часть непосредственно на фронтенд Shinobi на ОС Astra Linux:

Для этого достаточно будет ввести email и пароль с подтверждением и сохранить:


Как для нас привычно поменяем порт с 8080 на привычный нам 80 (стандартный http) чтобы не вводить его в адресной строке, жмем на save (конечно же, после этого, необходимо перезапустиь наш сервер командой sudo pm2 restart all) если не меняем, то продолжаем по тому же адресу:

Естественно, поменяем учетную запись и пароль администратора в разделе preferences:

Ну что, в принципе наш видеосервер сбора информации готов к работе. Переходим в браузере по ссылке (если Вы не меняли порт 8080 на 80)
http://какой-то-наш-ИП-сервер:8080
Логинимся созданной учетной записью фронтального пользователя, которого мы создали в административной панели:

Встречаем интерфейс нашего видеосервера:

ну и проверим какой-нибудь пляж в Лос-Анджелесе :) мы нашли такую ссылку для примера:
https://5ddd47d64e730.streamlock.net:444/westland/westland.stream/chunklist_w258063052.m3u8
Проверим нашу ссылку на работоспособность:

Рабочая? Сохраняем!:

Переименуем ее для себя:

Сохраним, и выбрав в менюшке monitors, откроем и проверим:

Ура!
Работает!

Будьте взаимовежливы и корректны.
Все сообщения проходят премодерацию.
Рекламные сообщения и комментарии с ссылками, не несущими смысловую нагрузку по тематике материала будут удаляться.