Документация / Установка
Установка
Что нужно из железа, как установить, первый вход и лицензия.
Что нужно
Сервер. Отдельный компьютер или виртуальная машина, работающая круглосуточно. Подойдёт мини-ПК, системный блок или ВМ на вашем сервере.
| Камер | Ядер | Память | Диск |
|---|---|---|---|
| до 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
и по умолчанию остаются.
Не нашли ответа? Заведите обращение в личном кабинете — отвечаем текстом, без звонков.