Стример предназначен для сетевого подключения к камерам, получения от камер видео, аудио, мета данных, ретрансляции данных от камер зрителям (онлайн просмотр), записи данных в архив и воспроизведения архива по запросу, а также для применения алгоритмов аналитики (видео, аудио).
На сервере стример представлен сервисом cctv-streamer, состоящим из одноименного процесса и бинарного файла, который обычно находится в папке /usr/local/sbin. Сервис запускается автоматически при запуске сервера и управляется из командной строки следующими командами:
service cctv-streamer status
service cctv-streamer restart
service cctv-streamer stop
service cctv-streamer start
Стример выполняет журналирование операций в файлы streamer.err.log и streamer.out.log, которые по умолчанию находятся в папке /data/cctv/log. В частности в файл streamer.err.log при запуске процесса записывается версия стримера: Date: Tue Jun 20 08:52:07 2023 +0500.
Мастер предназначен для управления кластером: балансировки нагрузки между стримерами, которые входят в состав кластера; хранения состояния разных сущностей в БД; авторизации запросов пользователей на получение трансляций. Именно мастер, в случае выхода из строя одного из стримеров, перераспределяет камеры между другими стримерами кластера.
На сервере стример представлен сервисом cctv-master, состоящим из одноименного процесса и бинарного файла, который обычно находится в папке /usr/local/sbin. Сервис запускается автоматически при запуске сервера и управляется из командной строки следующими командами:
service cctv-master status
service cctv-master restart
service cctv-master stop
service cctv-master start
Мастер выполняет журналирование операций в файлы master.err.log и master.out.log, которые по умолчанию находятся в папке /data/cctv/log. В частности в файл master.err.log при запуске процесса записывается версия мастера: Date: Tue Jun 20 08:52:07 2023 +0500.
В конфигурационном файле мастера master.conf указывается лицензионный ключ, который может иметь один следующих типов: онлайн (ключ привязан к внешнему IP-адресу сервера) или оффлайн (ключ привязан к аппаратной платформе сервера). Идентификатор ключа, независимо от типа, вводится при установке Форпост на сервере.
В качестве СУБД используется ПО MySQL или MariaDB. При установке Форпост в СУБД создается БД с именем cctv.
При необходимости выполнить прямой SQL-запрос к БД требуется подключиться к СУБД, выполнив в командной строке команду:
mysql cctv
По умолчанию резервное копирование БД не выполняется. Чтобы его настроить, необходимо создать скрипт с кодом:
#!/bin/bash
/usr/bin/find /var/lib/cctv/backups -name "cctv-*.sql.gz" -mtime +7 -delete
/usr/bin/mysqldump --skip-lock-tables -B DB_NAME | gzip -c - > /var/lib/cctv/backups/cctv-`date '+%Y%m%d-%H%M'`.sql.gz
Дополнительно выполнить команды:
mkdir /var/lib/cctv/backups
chmod 755 /var/lib/cctv/tools/cctv-db-backup
И добавить выполнение скрипт в crontab:
0 3 * * * root /var/lib/cctv/tools/cctv-db-backup
Веб-портал предназначен для предоставления доступа к административной панели, к личному кабинету пользователя (браузер, приложение для ПК, мобильное приложение) и к API для интеграции с внешними системами. Веб-портал работает под управлением веб-сервера Apache.
Для работы веб-портала необходим PHP версии 7 или 8.
Настройка веб-портала выполняется через административную панель (раздел Настройки сайта) и через конфигурационный файл local.php (секция params), который по умолчанию находится в папке /var/www/cctv-portal/protected/config:
<?php
return array(
'timeZone' => 'Asia/Yekaterinburg',
'params'=>array(
'IsCameraConnectionByMACEnabled' => true,
'DemoLink' => "http://user.fpst.ru/demo.html",
),
'components'=>array(
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=cctv',
'username' => 'cctv',
'password' => '',
),
),
);
Компоненты, указанные выше, обмениваются друг с другом информацией по сети согласно следующей схеме:

Используемые по умолчанию входящие сетевые TCP-порты (компонента, принимающая подключения: входящий порт - компонента, которая подключается):