СПЕКТР

Документация / Установка

Установка

Что нужно из железа, как установить, первый вход и лицензия.

Что нужно

Сервер. Отдельный компьютер или виртуальная машина, работающая круглосуточно. Подойдёт мини-ПК, системный блок или ВМ на вашем сервере.

Камер Ядер Память Диск
до 4 2 4 ГБ от 250 ГБ
до 12 4 8 ГБ от 1 ТБ
до 24 8 16 ГБ от 2 ТБ

Ядра из таблицы — про запись, а не про распознавание. Запись и детекция движения — это много лёгких процессов, они делятся по ядрам почти поровну, и чем ядер больше, тем больше камер. А вот распознавание объектов (кто именно в кадре: человек, машина, животное) считает нейросеть, и её цену задаёт не количество ядер, а то, какие векторные инструкции умеет процессор и как быстро у него память. Поэтому старый серверный процессор, который по таблице «проходит с запасом», на распознавании может оказаться медленнее современного четырёхъядерного мини-ПК.

Если распознавание объектов вам нужно — а без него не работает большинство сценариев, — при выборе железа смотрите на процессор, а не только на число ядер:

  • Процессор не старше 2019 года. Наш стенд работает на Xeon E5-2670 v3 2014 года (машине отданы два ядра). Камеры он тянет спокойно, а вот один кадр нейросети считает 0.1 секунды — и это потолок: при таком темпе на все объекты в кадре времени не хватает, система сама снижает частоту проверок и часть объектов остаётся без класса.
  • Мини-ПК на современном процессоре — лучше списанного сервера. Ядер меньше, но каждое считает нейросеть заметно быстрее.
  • Встроенное видеоядро Intel — плюс. Оно умеет считать нейросеть вместо процессора и разгружает его; продукт это поддерживает.

Проверить процессор до покупки можно так (Linux):

lscpu | grep -o 'avx2\|avx512[a-z]*\|vnni' | sort -u

Чем длиннее список — тем быстрее считается распознавание. Пусто — распознавание работать будет, но медленно, и лучше ограничиться записью и детекцией движения.

Диск — главное. Одна камера 4K пишет около 40 ГБ в сутки, камера Full HD — около 12 ГБ. Считайте так: число камер × суточный объём × сколько суток хранить. Не хватит места — система сама удалит самые старые записи, ничего не сломается, но глубина архива окажется меньше ожидаемой.

Операционная система. Debian, Ubuntu или Astra Linux. Для РЕД ОС и Альт сборка готовится отдельно.

Сеть. Камеры и сервер в одной локальной сети. Камеры должны отдавать поток по RTSP — это умеют практически все.

Полоса до камер — считайте заранее, это ловит объекты от 30 камер. Сервер забирает у каждой камеры два потока (основной и дополнительный), и весь этот трафик течёт через коммутаторы между камерами и сервером. Камера Full HD даёт 2–4 Мбит/с, 4K — 8–12; двадцать камер — уже под 100 Мбит/с. Если по дороге стоит хоть одно 100-мегабитное звено (старый коммутатор, стык между коммутаторами, кабель, «договорившийся» на 100), при добавлении камер оно упирается в потолок, и дальние камеры начинают отваливаться — все разом и без видимой причины, хотя каждая по отдельности пингуется. Признак: пинг до камер с сервера в десятки и сотни миллисекунд вместо долей миллисекунды.

Правила простые: стыки между коммутаторами и порт сервера — гигабитные; основной поток камеры — не выше 4 Мбит/с для Full HD (постоянный битрейт); держите запас хотя бы в треть от полосы самого узкого звена. Всё это видно в Настройки → Сеть: сколько приходит на каждую карту сервера, сколько даёт каждая камера и сколько к ней открыто сессий, а по кнопке «Замерить задержки» — время ответа каждой камеры; ниже — выводы, что именно на пределе и какие камеры тяжелее всех.

Установка

Всё делается в консоли того сервера, куда ставим. Скачивать браузером и копировать файл по сети не нужно.

wget https://vspektre.ru/dl/spektr-latest-py3.10.tar.gz
tar xzf spektr-latest-py3.10.tar.gz
cd spektr-*/
sudo bash install.sh

Адрес устойчивый — он всегда указывает на свежую сборку, и переписывать команду при обновлении не придётся.

Установка занимает несколько минут, и дольше всего идёт шаг «Python venv + зависимости». На нём скачивается около 200 мегабайт библиотек — это нормально, и на медленном канале может занять и десять минут. Установщик показывает, что именно качается; если хочется убедиться со стороны, в другом терминале: du -sh /opt/spektr/venv — каталог должен расти.

py3.10 в имени — это не мелочь. Внутри лежит байткод, а он привязан к версии Python: сборка под 3.10 не запустится на 3.11 или 3.12. Версия 3.10 — это Ubuntu 22.04. Если у вас другая система, скачивать надо сборку под её версию; установщик проверит совпадение и остановится, ничего не изменив, а не поставит наполовину.

Проверить, что файл дошёл целым:

curl -fsSL https://vspektre.ru/dl/SHA256SUMS | sha256sum -c --ignore-missing

Должно ответить OK. Если нет — файл скачался не полностью, повторите загрузку. Проверка не лишняя: оборванная закачка выглядит как обычный архив, а распакуется с ошибкой уже в середине установки.

Если wget не установленsudo apt install -y wget, либо то же самое через curl -O.

Установщик сам поставит недостающие пакеты, создаст служебного пользователя, разложит файлы и запустит службу. Он проверяет, свободны ли нужные порты (8080 для веб-интерфейса, 8554 и 1984 для внутренней работы), и если чем-то занят — скажет об этом до того, как что-либо изменит.

Когда всё закончится, на экране появится адрес вида http://192.168.1.50:8080.

Первый вход

Откройте этот адрес в браузере с любого устройства в той же сети — с компьютера, телефона или планшета.

Логин admin, пароль admin.

Сразу смените пароль: Настройки → Профиль. Пока пароль не сменён, система будет напоминать об этом при каждом входе.

Лицензия

Без лицензии система работает в бесплатном режиме: до восьми камер, один пользователь. Этого хватает, чтобы всё попробовать.

Полученный файл лицензии вставьте в Настройки → Лицензия. Проверка происходит на вашем сервере и не требует интернета — файл подписан, и этого достаточно. Срок действия и подключённые возможности видны там же.

Доступ снаружи

По умолчанию система доступна только из вашей локальной сети — так безопаснее. Чтобы смотреть камеры из любой точки, откройте Настройки → Удалённый доступ, включите тумблер и впишите имя — например sklad-1. Всё остальное уже настроено: адрес нашего сервера, порт и токен приезжают вместе с продуктом.

Система станет доступна по адресу вида имя.cam.vspektre.ru. Белый IP-адрес, проброс портов и настройка роутера не нужны — сервер сам держит исходящее соединение.

Имя лучше сначала закрепить за собой в личном кабинете на vspektre.ru: занятое кем-то имя система не отдаст, и туннель не поднимется. Если что-то не так, причина написана красной строкой прямо под тумблером — пришлите её нам, она называет проблему точно.

Обновление

Система сама скажет, когда вышла новая версия. Раз в сутки, если у сервера есть интернет, она спрашивает нас, не появилось ли обновление, и показывает ответ в Настройках → Система, рядом с номером текущей версии. Там же кнопка «Проверить», если ждать сутки не хочется.

Наружу при этом уходит только версия Python — по ней подбирается подходящая сборка. Ни адресов, ни имён камер, ни отпечатка сервера мы не спрашиваем. Проверку можно выключить: параметр update.check в той же вкладке.

Обновиться можно кнопкой. Рядом со строкой «Доступна версия X» есть кнопка «Обновить до X». Сервер скачает подписанную сборку, проверит подпись и переустановит себя — на это уходит одна-три минуты, и на это время служба останавливается: живые просмотры прервутся, запись остановится. Настройки, камеры, архив и события не трогаются. Если новая версия не запустится, прежняя вернётся сама.

Тем, кому привычнее терминал, — те же команды, что и при установке:

wget https://vspektre.ru/dl/spektr-latest-py3.10.tar.gz
tar xzf spektr-latest-py3.10.tar.gz
cd spektr-*/
sudo bash install.sh

Настройки, камеры, записи и события сохраняются. Установщик заменяет только код: данные лежат отдельно, в /var/lib/spektr, и он их не трогает. Служба перезапустится, живые просмотры прервутся на минуту.

Если распаковываете в тот же каталог, где лежит прошлая версия, cd spektr-*/ найдёт две папки. Тогда заходите в новую по полному имени — оно видно после распаковки.

Второй диск под записи

Каталог для записей должен принадлежать пользователю spektr — под ним работает служба. Второй диск обычно смонтирован от root, и служба не может создать в нём подкаталог. Поэтому один раз в терминале:

sudo mkdir -p /mnt/disk2/spektr && sudo chown spektr:spektr /mnt/disk2/spektr

и затем Настройки → Хранилище → Новое хранилище, каталог /mnt/disk2/spektr. Для NTFS, exFAT и сетевых дисков chown не работает — владельца задают при монтировании, опциями uid=spektr,gid=spektr в /etc/fstab.

Удаление

Запустите из распакованного архива:

sudo ./uninstall.sh

Скрипт спросит отдельно, удалять ли записи: они лежат в /var/lib/spektr и по умолчанию остаются.

Не нашли ответа? Заведите обращение в личном кабинете — отвечаем текстом, без звонков.