Что такое «Разгляди»
«Разгляди» — программное обеспечение для организации системы видеонаблюдения на базе IP-камер с поддержкой протоколов RTSP и ONVIF. Система обеспечивает централизованное управление камерами, непрерывную запись видеоархива на серверные узлы, онлайн-просмотр видеопотоков в реальном времени и аналитическую обработку видео на GPU.
Доступ к системе осуществляется через веб-браузер или мобильное приложение (iOS, Android, RuStore) без установки дополнительного ПО на стороне пользователя.
Онлайн-трансляция
Просмотр видеопотока в реальном времени по протоколу WebRTC с минимальной задержкой
Видеоархив
Непрерывная запись на серверные узлы с хранением архива и навигацией по таймлайну
Аналитика
Детекция движения и объектов нейросетевыми моделями на GPU (ncnn, Vulkan, PP-YOLOE+)
Мобильное приложение
Flutter-приложение для iOS, Android и RuStore с полным функционалом веб-версии
Возможности системы
В системе предусмотрены две роли: пользователь и администратор.
- Онлайн-просмотр видеопотока с камеры в реальном времени (WebRTC). Поддержка PTZ-управления для совместимых камер. Полноэкранный режим.
- Просмотр видеоархива через таймлайн с навигацией по дате и времени. Отображение скриншотов событий при наведении.
- Скачивание фрагментов архива с выбором временного диапазона.
- Просмотр аналитики движения — временны́е отметки периодов активности в кадре.
- Просмотр аналитики детекций — события обнаружения объектов заданных классов с привязкой к времени. Скриншоты с выделенными областями детекций.
- Добавление серверных узлов (нод) в кластер записи. Настройка точек монтирования дисков. Просмотр статистики нод: дисковое пространство, статус, нагрузка.
- Добавление IP-камер с указанием параметров подключения (адрес, протокол RTSP/ONVIF, учётные данные). Управление записью и настройка длительности хранения архива.
- Создание учётных записей пользователей. Назначение прав доступа к камерам. Управление ролями (пользователь / администратор).
- Настройка параметров аналитики для каждой камеры: классы объектов для детекции, чувствительность и пороги срабатывания нейросетевых моделей.
Компоненты ПО
Все серверные компоненты размещены в едином репозитории и разворачиваются на серверах в зависимости от их роли в кластере.
Инфраструктурные зависимости
Руководство по установке
Требования к серверу
| Параметр | Требование |
|---|---|
| ОС | Debian Linux 13 (совместимо с другими современными дистрибутивами Linux) |
| Python | 3.12+ |
| СУБД | PostgreSQL 17 с расширением PostGIS |
| Брокер сообщений | Redis |
| Веб-сервер | nginx |
| Доменное имя | Обязательно — для автоматического выпуска HTTPS-сертификата Let's Encrypt |
| GPU (опционально) | FFmpeg hwaccel Vulkan — для компонента аналитики видео razglyadi_ncnn_rq |
Установка на основной сервер
Клонируйте репозиторий и запустите скрипт установки:
# Клонирование репозитория git clone https://github.com/liker383/razglyadi /srv/projects/razglyadi cd /srv/projects/razglyadi # Запуск установки bash install.sh
Скрипт в интерактивном режиме запросит:
- Доменное имя сервера
- Имя пользователя и пароль базы данных
- ID ноды (числовой идентификатор сервера в кластере)
Что делает скрипт установки
1. Создаёт .env из шаблона, генерирует секретный ключ 2. Устанавливает системные зависимости (apt) 3. Создаёт Python-окружение через uv, устанавливает зависимости 4. Инициализирует БД, применяет миграции Alembic 5. Заполняет начальные данные (seed), создаёт учётную запись admin 6. Создаёт systemd-сервисы для всех компонентов 7. Настраивает Redis с паролем 8. Настраивает nginx, выпускает HTTPS-сертификат через certbot
Запуск сервисов после установки
sudo systemctl enable --now razglyadi sudo systemctl enable --now razglyadi_master sudo systemctl enable --now razglyadi_recorder sudo systemctl enable --now razglyadi_ncnn_rq@0.service sudo systemctl enable --now razglyadi_store_rq.service
Установка на дополнительные серверы (стримеры)
На дополнительных серверах запускаются только компоненты
razglyadi_recorder
и
razglyadi_streamer. Полная установка с СУБД и nginx не требуется. Компоненты подключаются к PostgreSQL и Redis
основного сервера через сеть.
Первый вход
После запуска сервисов веб-интерфейс доступен по адресу установленного домена. Учётная запись администратора создаётся в процессе установки. Пароль администратора задаётся установщиком. После первого входа рекомендуется изменить пароль.
Руководство пользователя
Комплексная инструкция для конечных пользователей по работе с системой видеонаблюдения через веб-браузер и мобильные приложения.
Ключевые операции
- Вход в систему: авторизация по учётным данным, регистрация девайса, восстановление пароля
- Открытие списка камер: просмотр всех камер, доступных пользователю, фильтрация и поиск
- Просмотр трансляции: онлайн-трансляция в качестве реального времени, управление звуком
- Поиск архива: навигация по видеоархиву с выбором даты и времени, просмотр прошлых рекордингов
- Просмотр множественных камер: расположение нескольких камер на одном экране в режиме сетки
- Скачивание записей: экспорт видео с выбранным диапазоном времени, режимы сжатия
- Работа с детекциями: просмотр результатов аналитики, видео с выявленными объектами
- Карты: просмотр камер на интерактивных картах, фильтрация по начинальным территориям
📹 Видео-инструкция
Наглядное видеоруководство по основным операциям в системе.
Руководство администратора
Администраторская консоль доступна по адресу
/razglyadi/admin
и предоставляет полный контроль над системой видеонаблюдения.
📊 Главный дашборд
При входе в админку вы видите дашборд со статистикой системы:
- Статистика по всем камерам в системе
- Нагрузка на нодах рекордеров (CPU, память)
- Информация о занятом и свободном дисковом пространстве
- Количество камер, ведущих запись в данный момент
- Статус всех активных нод
📋 Организации
Раздел для управления аккаунтами и пользователями системы.
- Аккаунты: основная единица управления, привязана к одной организации или группе камер. В каждом аккаунте находятся камеры и пользователи
- Пользователи: создание пользователей в рамках аккаунта с управлением доступом к камерам
- Права доступа: новые пользователи автоматически получают доступ ко всем камерам аккаунта, новые камеры автоматически доступны всем пользователям. Высокие права администратора выдаются только техническому персоналу, занимающемуся обслуживанием серверной части
📹 Устройства
Управление камерами, аналитикой и доступом к видеопотокам.
Камеры
- Добавление: интеграция IP-камер через RTSP поток и стандарт ONVIF
- Конфигурация: указание RTSP URL потока и дополнительных параметров подключения
- Привязка: камеры привязываются к конкретному аккаунту для управления доступом
- Публичность: опция public включается для отображения камеры в картах на сайте
- Размещение: просмотр информации о том, на какую ноду рекордера пишется камера
- Миграция: возможность переместить камеру с одной ноды на другую для оптимизации нагрузки
- Просмотр видео: встроенное воспроизведение видеопотока камеры прямо из административной консоли
Права доступа
- Настройка: управление разрешениями пользователей к различным камерам
- По умолчанию: новому пользователю предоставляется доступ ко всем камерам его аккаунта
- Ограничение: администратор может заблокировать доступ пользователя к отдельным камерам
Запросы и настройки аналитики
- Статистика: просмотр отчётов по аналитике детекций на камерах
- Параметры: изменение настроек детекции для каждой камеры отдельно
- Модели: указание требуемых моделей нейросетей для различных типов детекции (движение, объекты, люди и т.д.)
- Точность: настройка уровня доверия для срабатывания детекции
🗺️ Карты
Создание и управление объектами карт для встраивания на сайт.
- Создание объектов: добавление камер и элементов на интерактивную карту
- Встраивание: получение готовой ссылки для встраивания карты в модуль <iframe> на вашем сайте
- Публичность: для отображения в карте камера должна иметь включённую опцию public
⚙️ Настройки платформы
Конфигурирование инфраструктуры и интеграций системы.
Ноды рекордера
- Регистрация: добавление серверных узлов для записи видеоархива
- Параметры: указание IP адреса и URL для подключения ноды
- Доступ: убедитесь, что мастер-нода имеет сетевой доступ к рекордеру
Точки монтирования
- Диски: указание доступных дисков для записи видеоархивов на нодах
- Аналитика: на нодах с поддержкой аналитики желательно указать папку analytic folder для сохранения скриншотов детекций
- Управление: мониторинг свободного места и управление периодом хранения архива
API ключи
- Интеграция: создание ключей доступа для внешних приложений и сервисов
-
Документация: полное описание API доступно на странице
/razglyadi/docs - Безопасность: регулярно проверяйте используемые ключи и удаляйте неиспользуемые
📋 Логи и диагностика
Для отслеживания работы системы и диагностики проблем используются логи.
-
Расположение логов: все логи системы находятся в директории
app/logs -
Поиск ошибок: для диагностики проблем проверьте логи на наличие записей с
errorилиdisaster -
Мониторинг в реальном времени:
используйте команду
journalctl -u razglyadi -fдля просмотра логов в реальном времени - Техническая поддержка: при возникновении внештатных ситуаций и критических ошибок обратитесь в службу поддержки с копией релевантных логов
Инструкция по обновлению
Пошаговые инструкции для администраторов по безопасному обновлению системы на новые версии.
При подготовке к обновлению
- Остановите модули системы
- Сохраните резервную копию базы данных и конфигурации
Процесс обновления
-
Откройте терминал на сервере и перейти в директорию проекта:
cd /srv/projects/razglyadi -
Скачайте новую версию из репозитория:
git pull -
Обновите зависимости текущего окружения:
uv pip sync requirements.txt -
Выполните миграции базы данных:
ALEMBIC_RUNNING=1 PYTHONPATH=. alembic -c app/alembic/razglyadi/alembic.ini upgrade head
-
Перезапустите все модули системы:
sudo systemctl restart razglyadi razglyadi_master razglyadi_recorder razglyadi_ncnn_rq@0.service razglyadi_store_rq.service
После обновления
-
Проверьте статус модулей:
systemctl status razglyadi razglyadi_master - Откройте веб-интерфейс и проверьте версию
- При проблемах откатите git и миграции к предыдущей версии Восстановите резервную копию базы данных и конфигурацию
Контакты техподдержки
Время ответа: обычно в течение 24 часов
Используемые технологии
Серверная часть
Аналитика видео
Клиентская часть
Требования к окружению
- ОС: Debian Linux 13, Ubuntu 24.04 LTS и совместимые
- Python: 3.12+
- СУБД: PostgreSQL 17 с расширением PostGIS
- Брокер сообщений: Redis 7.0+
- Веб-сервер: nginx
- Веб-браузер клиента: любой с поддержкой WebRTC
- GPU (опционально): ncnn, Vulkan, PP-YOLOE+
- Дисковое пространство: зависит от количества камер и периода хранения
- Нагрузка на канал и стример: 4-12 Мбит/s на каждую IP-камеру
Исходный код
Исходный код ПО размещён в двух репозиториях на GitHub. Репозитории закрытые — доступ предоставляется отдельно.