TrueNAS видеонаблюдение: Настройка через Docker | Пошаговое руководство | AdminWiki

TrueNAS видеонаблюдение: Полное руководство по настройке системы на базе Docker

01 февраля 2026 8 мин. чтения #docker #home assistant #ip-камеры #nvr #surveillance #truenas #видеонаблюдение

Представь, что у тебя есть мощный сервер TrueNAS с терабайтами свободного места. Зачем покупать отдельный видеорегистратор, если можно превратить его в профессиональную систему видеонаблюдения? Давай разберем, как это сделать правильно, используя всю мощь контейнеризации.

Почему TrueNAS — идеальная платформа для видеонаблюдения?

TrueNAS (ранее FreeNAS) — это не просто файловое хранилище. Это полноценная операционная система на базе FreeBSD с поддержкой виртуализации и контейнеризации. Для организации видеонаблюдения она предлагает:

  • Надежное ZFS-хранилище с защитой от битового разложения (bit rot)
  • n
  • Встроенную поддержку Docker через плагин TrueCharts или виртуальные машины
  • Гибкое управление дисковыми пространствами и квотами
  • Возможность резервного копирования и репликации данных
Важный момент: Хотя в TrueNAS Scale есть нативный Docker (K3s), в TrueNAS Core используется Jail-система. Мы сосредоточимся на универсальном подходе через Docker в TrueNAS, который работает в обеих версиях через виртуализацию.

Архитектура системы: как всё устроено

Прежде чем переходить к настройке, давай поймем общую схему работы:

IP-камеры → Сеть → Docker-контейнер (NVR) → Запись на ZFS-пул → Просмотр через веб-интерфейс

Выбор NVR-решения для Docker

Есть несколько популярных вариантов для организации видеонаблюдения Docker TrueNAS:

Решение Плюсы Минусы Сложность
Shinobi Бесплатный, открытый исходный код, много функций Требует настройки, документация средняя Средняя
ZoneMinder Очень зрелый проект, детекция движения Устаревший интерфейс, ресурсоемкий Высокая
Frigate ИИ-детекция объектов, интеграция с Home Assistant Требует Coral USB для аппаратного ускорения Средняя
MotionEye Простой, легковесный, быстрый старт Ограниченный функционал Низкая

Пошаговая настройка: Shinobi на TrueNAS через Docker

Давай развернем Shinobi — один из самых гибких вариантов для truenas видеонаблюдение.

Шаг 1: Подготовка хранилища в TrueNAS

Сначала создадим отдельный dataset для видеозаписей:

  1. Зайди в Storage → Pools
  2. Выбери свой пул и нажми Add Dataset
  3. Назови его, например, surveillance
  4. В настройках dataset установи:
    • Compression: LZ4 (для экономии места)
    • Record Size: 1M (оптимально для видео)

Шаг 2: Настройка SMB/NFS общего доступа

Чтобы Docker-контейнер мог писать на ZFS, нужно расшарить папку:

TrueNAS WebUI
# Путь к dataset:
/mnt/pool_name/surveillance

# 1. Shares → Windows (SMB) Shares → Add
# 2. Укажи путь: /mnt/pool_name/surveillance
# 3. Настрой права: Read/Write для нужного пользователя
# 4. Apply permissions recursively

Шаг 3: Установка Docker на TrueNAS

В зависимости от версии TrueNAS, подход будет разным:

Внимание! В TrueNAS Core нет нативного Docker. Нужно использовать виртуальную машину с Linux или Jail с Docker внутри.

Вариант A: TrueNAS Scale (рекомендуется)

Используем встроенный Kubernetes (K3s) через TrueCharts:

bash
# 1. Установи TrueCharts каталог:
# Apps → Settings → Manage Catalogs → Add Catalog
# Name: truecharts
# Repository: https://github.com/truecharts/catalog

# 2. Установи Shinobi через TrueCharts:
# Apps → Available Applications → Поиск "shinobi"
# Настрой storage mounts на наш dataset

Вариант B: TrueNAS Core через виртуальную машину

Создаем Ubuntu/Debian VM и монтируем общую папку:

bash
# В гостевой системе (Ubuntu):
sudo apt update
sudo apt install docker.io docker-compose

# Монтируем SMB-шару от TrueNAS:
sudo mkdir -p /mnt/surveillance
sudo mount -t cifs //truenas_ip/surveillance /mnt/surveillance \
  -o username=your_user,password=your_pass,uid=1000,gid=1000

Шаг 4: Запуск Shinobi через Docker Compose

Создадим docker-compose.yml для удобного управления:

docker-compose.yml
version: '3.8'

services:
  shinobi:
    image: shinobisystems/shinobi:latest
    container_name: shinobi
    restart: unless-stopped
    ports:
      - "8080:8080"  # Веб-интерфейс
    environment:
      - TZ=Europe/Moscow
      - ADMIN_USER=admin@shinobi.video
      - ADMIN_PASSWORD=your_secure_password
      - PLUGIN_KEY_MOTION=true
      - PLUGIN_KEY_OPENCV=true
    volumes:
      # Конфигурация
      - ./config:/config
      # База данных SQLite
      - ./database:/var/lib/mysql
      # Видеозаписи (монтируем с TrueNAS)
      - /mnt/surveillance/shinobi:/opt/shinobi/videos
      # Для аппаратного ускорения (если есть GPU)
      - /dev/dri:/dev/dri  # Intel VAAPI
    devices:
      # Для USB-камер
      - /dev/video0:/dev/video0
    networks:
      - shinobi-net

networks:
  shinobi-net:
    driver: bridge

Запускаем контейнер:

bash
# Создаем папки для конфигов
mkdir -p ./config ./database

# Запускаем Shinobi
docker-compose up -d

# Проверяем логи
docker-compose logs -f shinobi

Шаг 5: Настройка IP-камер в Shinobi

После запуска зайди на http://truenas_ip:8080 и добавь камеры:

  1. Войди с учетными данными из docker-compose.yml
  2. Нажми "Add New Camera"
  3. Выбери тип подключения: RTSP или ONVIF
  4. Укажи RTSP-поток (пример для Hikvision):
    rtsp://admin:password@camera_ip:554/Streaming/Channels/101
  5. Настрой расписание записи (постоянно или по движению)
  6. Укажи путь сохранения: /opt/shinobi/videos (это наш dataset)

Оптимизация производительности

Чтобы система видеонаблюдения на TrueNAS работала стабильно:

1. Настройка ZFS для видео

bash
# На TrueNAS через Shell настрой dataset:
zfs set recordsize=1M pool_name/surveillance
zfs set compression=lz4 pool_name/surveillance
zfs set atime=off pool_name/surveillance  # Отключаем запись времени доступа

# Создаем квоту (например, 500GB):
zfs set quota=500G pool_name/surveillance

2. Аппаратное ускорение в Docker

Для декодирования видео используй GPU или Intel QuickSync:

docker-compose.yml дополнение
services:
  shinobi:
    # ...
    environment:
      - FFMPEG_VAAPI=1  # Включаем VAAPI
      - LIBVA_DRIVER_NAME=i965  # Для Intel
    # Монтируем устройство GPU
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
    # Даем права
    group_add:
      - "44"  # video group
      - "107" # render group

3. Сетевые настройки

Выдели для видеонаблюдения отдельную VLAN или подсеть. Настрой Jumbo Frames (MTU 9000) если камер много.

Альтернатива: Frigate + Home Assistant

Если нужна интеллектуальная детекция объектов (люди, машины, животные), рассмотри связку:

docker-compose.yml для Frigate
version: '3.9'

services:
  frigate:
    image: ghcr.io/blakeblackshear/frigate:stable
    container_name: frigate
    restart: unless-stopped
    shm_size: "512mb"  # Важно для детекции!
    ports:
      - "5000:5000"
      - "8554:8554"  # RTSP ретрансляция
      - "8555:8555/tcp"  # WebRTC
    environment:
      FRIGATE_RTSP_PASSWORD: "password"
    volumes:
      - /mnt/surveillance/frigate:/media/frigate
      - ./config.yml:/config/config.yml
      - /dev/bus/usb:/dev/bus/usb  # Для Coral USB
    devices:
      # Для Coral PCIe или M.2
      - /dev/apex_0:/dev/apex_0
      # Для Intel GPU
      - /dev/dri/renderD128:/dev/dri/renderD128
Совет: Frigate отлично интегрируется с Home Assistant. При детекции объекта можно включать свет, отправлять уведомления или запускать другие автоматизации.

Часто задаваемые вопросы (FAQ)

Сколько камер выдержит TrueNAS?

Зависит от разрешения, fps и битрейта. На среднем железе (Xeon E3, 16GB RAM):
• 5-8 камер в 1080p@15fps
• 2-4 камеры в 4K@20fps
Главный ограничитель — CPU для декодирования и сетевой интерфейс.

Как организовать ротацию записей?

В Shinobi: Настройки камеры → Диск → "Auto-Delete". Укажи лимит по времени (дни) или размеру (ГБ). ZFS сам удалит самые старые файлы при достижении квоты dataset.

Можно ли использовать облачное хранилище для архива?

Да! TrueNAS умеет реплицировать dataset на S3-совместимые хранилища (Backblaze B2, Wasabi). Настрой Cloud Sync Tasks для периодической выгрузки важных записей.

Как смотреть записи удаленно?

1. Пробрось порт Shinobi (8080) через роутер (небезопасно).
2. Используй WireGuard VPN на TrueNAS.
3. Настрой обратный прокси (Nginx) с HTTPS и аутентификацией.

Заключение

TrueNAS — это мощная платформа для построения профессиональной системы видеонаблюдения. Комбинируя надежность ZFS, гибкость Docker и современные NVR-решения, ты получаешь систему, которая:

  • Масштабируется от 1 до десятков камер
  • Хранит записи с защитой от повреждения
  • Позволяет использовать ИИ-аналитику
  • Интегрируется с умным домом
  • Обходится дешевле коммерческих NVR

Начни с простой настройки MotionEye для тестирования, затем переходи на Shinobi или Frigate для полноценной системы. Не забывай про безопасность: изолируй камеры в отдельной сети, используй сложные пароли и регулярно обновляй контейнеры.

Важно: Перед развертыванием в продакшене протестируй систему на виртуальной машине. Сделай бэкап конфигурации TrueNAS и docker-compose файлов.
Поделиться:
Сохранить гайд? В закладки браузера