Эта статья поможет любой семье, магазину, школе или монтажной компании быстро развернуть систему видеонаблюдения через CMS, управляемую из одного Docker‑контейнера. Мы остановимся на выборе оборудования, подготовке сети, настройке Docker‑образа, подключении IP‑камер и финальной проверке.
ffmpeg + nginx + python‑flask или готовый stack от Y‑SS.Подумайте, как камеры будут «видеть» сервер. Самый простой вариант – все камеры находятся в одной подсети, у них статические IP‑адреса, а сервер прописывается как шлюз. При больших расстояниях или в разных зданиях открывают VPN‑канал.
| Компонент | Тип подключения |
|---|---|
| Камера | Ethernet / Wi‑Fi, статический IP |
| Сервер | IP‑адрес в той же подсети или VPN‑связь |
| Консоль CMS | Браузер: http:// |
1) Зайти на сервер и установить Docker (самый быстрый способ – curl -fsSL https://get.docker.com | sh).
2) Создать docker‑file:
# Dockerfile
FROM python:3.10-slim
RUN apt-get update && apt-get install -y ffmpeg nginx
COPY app /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 8080
CMD ["python", "app.py"]
3) В папке app разместить простое Flask‑приложение, которое проксирует потоки RTSP камер к страницам web‑интерфейса. Пример кода в репозитории (скачайте, при необходимости адаптируйте).
4) Собрать и запустить контейнер:
docker build -t cam_cms .
docker run -d -p 8080:8080 --name cam_cms cam_cms
Откройте браузер, зайдите на http://. У интерфейса найдите кнопку «Добавить камеру». Введите:
rtsp://user:pass@ip/streamПосле добавления нажмите «Тест» – должно появиться изображение. При проблемах проверьте: трудоустройство и диагностику.
Камеру можно ограничить по IP‑файрволу и добавить VPN‑клиент на сервер. Всегда храните пароли в переменных окружения (в Docker‑композе – env_file). Регулярно обновляйте прошивку камер и Docker‑образ. Если вы работаете с персональными данными, получите согласие субъектов и соблюдайте правила российского законодательства о хранении видеоданных.
Проверьте несколько вещей:
Если вы захотите масштабировать проект, просто подключите новый Docker‑контейнер и добавьте его в пул камер. Настройте reverse‑proxy и сертификат Let's Encrypt, чтобы использовать HTTPS.
| Пункт | Статус |
|---|---|
| Docker сервер запущен | ✓ |
| CMS контейнер работает | ✓ |
| Камеры подключены и выводятся | ✓ |
| Файрвол и VPN настроены | ✓ |
| Регулярные резервные копии созданы | ✓ |
| Масштабируемый план на 24 нед | ✓ |
Теперь вы можете следить за своими объектами из любого места, с любого устройства. Если понадобится расширить спектр наблюдений – просто добавьте новые камеры в список, и они автоматически начнут показываться на стене вашего окна, в офисе или в доме.
