Яндекс

Установка сервера видеонаблюдения Shinobi на Астра Линукс 1.7

Установка сервера видеонаблюдения Shinobi на Астра Линукс 1.7

(4 Votes)

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: 900
EOF
cat << EOF > /etc/apt/sources.list
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/             1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/         1.7_x86-64 main contrib non-free astra-ce
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-base/     1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-extended/ 1.7_x86-64 main contrib non-free astra-ce
EOF

sudo apt update

После этих строк  путем вставки в наш скрипт shinobi-astra-install.sh следующего кода добавим в папку склонированной ветки git репозитория 3 файла с необходимым нам содержимым для Astra Linux и заменим содержимое одного файла путем вставки в наш скрипт shinobi-astra-install.sh следующего кода:

cat << EOF > "$installLocation"/Shinobi/INSTALL/now.sh
#!/bin/bash
echo "Установщик 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 oschoicee
case \$oschoicee in
"1")
chmod +x INSTALL/ubuntu-touchless.sh
sh INSTALL/ubuntu-touchless.sh
  ;;
"2")
chmod +x INSTALL/ubuntu.sh
sh INSTALL/ubuntu.sh
  ;;
"3")
chmod +x INSTALL/rocky9-touchless.sh
sh INSTALL/rocky9-touchless.sh
  ;;
"4")
chmod +x "INSTALL/CentOS - Quick Install.sh"
sh "INSTALL/CentOS - Quick Install.sh" 1
  ;;
"5")
chmod +x INSTALL/macos.sh
sh INSTALL/macos.sh
  ;;
"6")
chmod +x INSTALL/freebsd.sh
sh INSTALL/freebsd.sh
  ;;
"7")
chmod +x INSTALL/opensuse.sh
sh INSTALL/opensuse.sh
  ;;
"8")
chmod +x INSTALL/astra.sh
sh INSTALL/astra.sh
  ;;
*)
  echo "Choice not found."
  ;;
esac
EOF
cat << EOF > "$installLocation"/Shinobi/INSTALL/astra.sh
#!/bin/bash
DIR=\$(dirname \$0)
echo "========================================================="
echo "==!! Shinobi : The Open Source CCTV and NVR Solution !!=="
echo "========================================================="
echo "Чтобы ответить утвердительно нажмите (y) в строчном режиме и нажмите ENTER."
echo "По умолчанию нет (N). Пропустите компоненты в которых не нуждаетесь."
echo "============="
#Detect Ubuntu Version
echo "============="
echo " Определяем версию Astra"
echo "============="
getubuntuversion=\$(lsb_release -r | awk '{print $2}' )
echo "============="
echo " Версия Astra: \$getubuntuversion"
echo "============="
sudo apt install sudo wget -y
sudo apt install -y software-properties-common
sudo apt install  git gcc-8 g++-8 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
#create conf.json
if [ ! -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.json
fi
#create super.json
if [ ! -e "./super.json" ]; then
    echo "============="
    echo "* Вы можете изменить эти настройки в файле \"super.json\" расположенном в каталоге Shinobi."
    sudo cp super.sample.json super.json
fi
if ! [ -x "\$(command -v ifconfig)" ]; then
    echo "============="
    echo "Shinobi - устанавливаем Net-Tools и Dos2Unix"
    sudo apt install net-tools -y
fi
sudo apt install dos2unix
if ! [ -x "\$(command -v node)" ]; then
    echo "============="
    echo "Shinobi - устанавливаем Node.js"
    $installLocation/Shinobi/INSTALL/nodejs-astra.sh
else
    echo "Node.js найден..."
    echo "Версия : \$(node -v)"
fi
if ! [ -x "\$(command -v npm)" ]; then
    sudo apt install npm -y
fi
sudo apt install make zip -y
if ! [ -x "\$(command -v ffmpeg)" ]; then
        echo "============="
        echo "Shinobi - установка кодеков FFMPEG"
        sudo apt install ffmpeg -y
else
    echo "FFmpeg найден..."
    echo "Версия : \$(ffmpeg -version)"
fi
echo "============="
#TODO УСТАНОВКА БАЗЫ ДАННЫХ СДЕЛАТЬ КАК В PHPMYADMIN
echo "Shinobi - Вы хотите установить MariaDB? Выберите нет, если она уже установлена."
echo "(y)es or (N)o"
read -r mysqlagree
if [ "\$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 start
fi
echo "============="
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
#fi
echo "============="
echo "Shinobi - Установка библиотек NPM"
sudo npm i npm -g
sudo npm install --unsafe-perm
# sudo npm audit fix --force
echo "============="
echo "Shinobi - Установка PM2"
sudo npm install pm2@latest -g
echo "Shinobi - Установка завершена"
sudo chmod -R 755 .
touch INSTALL/installed.txt
dos2unix INSTALL/shinobi
ln -s \`readlink -f INSTALL/shinobi\` /usr/bin/shinobi
echo "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
#fi
echo "====================================="
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.sh
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
rm /etc/apt/keyrings/nodesource.gpg
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
#NODE_MAJOR=16
echo "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.list
sudo apt-get update
sudo apt-get install nodejs -y
EOF

Ну и конечно же нужно дать вновь созданным файлам права на исполнение:

добавляем в наш скрипт 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, откроем и проверим:

 

Ура!

Работает!

Добавить комментарий

Будьте взаимовежливы и корректны.

Все сообщения проходят премодерацию.

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


На развитие проекта

Вход
hacklink serp takip teknik seo rehberi icerik optimizasyonu yerel seo google algoritma guncellemeleri backlink stratejileri backlink nedir dofollow nofollow backlink guest post backlink anchor text optimizasyonu broken link building core web vitals seo schema markup site hizi optimizasyonu mobile first indexing xml sitemap robots txt seo uyumlu icerik anahtar kelime arastirmasi eeat google kalite google analytics seo rakip analizi seo seo raporlama metrikleri google my business seo yerel arama siralama hacklink panel jojobet matbet matbet matbet holiganbet holiganbet güncel Holiganbet güncel giriş Jojobet Jojobet giriş Jojobet güncel Jojobet Güncel Giriş Jojobet Telegram meritking meritking Jojobet Pusulabet matbet jojobet Jojobet Jojobet giriş Jojobet güncel Jojobet Güncel Giriş Jojobet Telegram Jojobet Telegram giriş Jojobet Telegram güncel роуминг МТС в Дубае jojobet Casibom Casibom giriş Casibom güncel Casibom Casibom giriş Casibom güncel Casibom Casibom giriş Casibom güncel Casibom Casibom giriş Casibom güncel Casibom Casibom giriş Casibom güncel jojobet giriş jojobet jojobet jojobet galabet giriş galabet Casibom Casibom giriş Casibom güncel Casibom Casibom giriş Casibom güncel Casibom Casibom giriş Casibom güncel Casibom Casibom giriş Casibom güncel matbet matbet matbet matbet matbet matbet matbet matbet matbet kavbet kavbet kavbet betebet interbahis interbahis kingroyal kingroyal kingroyal kingroyal kingroyal interbahis kingroyal interbahis interbahis kingroyal Casibom Casibom giriş Casibom güncel kingroyal kingroyal giriş jojobet Meritking Meritking giriş Meritking güncel Holiganbet Holiganbet giriş Holiganbet güncel Jojobet Jojobet giriş Jojobet güncel Betebet Betebet giriş Betebet güncel holiganbet Holiganbet Holiganbet giriş Holiganbet güncel Holiganbet Holiganbet giriş Holiganbet güncel Holiganbet Holiganbet giriş Holiganbet güncel Holiganbet Holiganbet giriş Holiganbet güncel Holiganbet Holiganbet giriş Holiganbet güncel interbahis kingroyal piabet Holiganbet Holiganbet giriş Holiganbet güncel betlike betticket meritking meritking giriş meritking mobil adres meritking güncel betebet betebet nesinecasino nesinecasino giriş nesinecasino güncel Piabellacasino Piabellacasino giriş Piabellacasino güncel Bahiscasino Bahiscasino giriş Bahiscasino güncel Timebet Timebet giriş Timebet güncel Betebet Betebet giriş Betebet güncel Betebet Betebet giriş Betebet güncel grandpashabet Betasus Betasus giriş Betasus güncel marsbahis