Frigate — отличный выбор для домашнего видеонаблюдения с аналитикой. Эта система может не только записывать видео, но и определять, был ли человек, машина или животное в кадре. Что важно для конфиденциальности, все это происходит локально, без необходимости отправлять данные в облако.
Удобно запускать Frigate внутри LXC-контейнера Proxmox. Это простая виртуальная среда, которая не требует много ресурсов сервера. Этот метод легче использовать, чем установка на отдельную виртуальную машину, и он позволяет легко управлять доступными мощностями контейнера.
В этой статье мы рассмотрим шаги, необходимые для настройки такого контейнера. Вы узнаете, как подготовить место, правильно смонтировать USB-устройство с камерой и настроить базовую конфигурацию Frigate. Всего, что вам понадобится, это Proxmox, который уже установлен, и немного времени.
Давайте начнём с предисловия:
Фриgate — это приложение, первоначально созданное для Home Assistant, но впоследствии оно значительно разрослось, чтобы стать полноценным отдельным продуктом.
Но так-же самый популярный способ установки Home Assistant на мой взгляд – это установка его на MiniPC под управлением Proxmox. И вот в одну из виртуальных машин уже устанавливается Home Assistant OS (HAOS).
Таким образом, установка Home Assistant на виртуальную машину группой удобна. Кроме того, у вас остается возможность создавать дополнительные виртуальные машины с помощью Proxmox.
Несмотря на это, использование Frigate в HAOS приводит к ряду проблем. Например, чтобы установить фригат в HAOS, крайне неудобно хранить файл конфига frigate.yaml в корне сервера Home Assistant.
Мини-ПК с процессорами Intel являются вторым неудобством. Благодаря тому, что обработка видео осуществляется непосредственно процессором, Intel может гарантировать, что ее графика не пострадает в HAOS, и во время запуска frigate процессор начинает сильно грузиться.
Чтобы уменьшить нагрузку на процессор, добавьте одну строчку в конфиг Frigate. Это сделает видео ядром процессора и снизит нагрузку на процессор. Структура выглядит следующим образом:
ffmpeg:
hwaccel_args: preset-vaapi
Однако просто добавить эту строчку не поможет в HAOS системе. До этой виртуалки необходимо пробросить дополнительное видео. Видео пробрасывается как шина PCIe, и проброс на процессоре N5105 выглядит следующим образом:

Обратите внимание на все галочки в основной GPU и все функции. Итак, устройство 0000:00:02.0 — это видеоядро процессора Intel:

Кроме того, после проброса графики процессор перестанет работать.
Тем не менее, это касается только HAOS в виртуалке и Frigate, который установлен в HAOS.
К недостаткам этого метода приходит теперь. Кроме того, существует недостаток в том, что видео, пробросанное в HAOS, «намертво» захватывается виртуальной машиной HAOS и больше не может быть использовано. Например, консольный вход в любую виртуальную машину в web-интерфейсе proxmox перестанет работать из-за этого.
Из-за этого мы плавно перейдем к тому, что лучше устанавливать Frigate имя Proxmox и HAOS в отдельный контейнер от самого Proxmox. Поначалу нам не нужно будет прокидывать видео в этот контейнер, потому что контейнер использует все, что находится на сервере proxmox. Во вторых, видеокарта не будет «намертво» занята и может использоваться для других целей.
Кроме того, поскольку холодильник работает с помощью дома только через mqtt, его можно перемещать куда угодно, важно, чтобы он и HA были подключены к сети.
Установка Frigate в LXC контейнер на сервер Porxmox:
Установка Frigate на proxmox такая-же лёгкая как и установка HAOS (Home Assistant Operation System) в proxmox. Все это выполняется буквально одной командой:
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/frigate.sh)"
После добавления этой команды в консоль Proxmox начнется установка Frigate в контейнер LXC. Во время установки спросит несколько вопросов, на которые мы соглашаемся, а затем дожидаемся завершения.
Установка длительная, по моему мнению, из-за того, что этот контейнер, насколько я понимаю, собирается из исходников специально для вас. Заняло это примерно тридцать минут на процессоре N5095.
Контейнер LXC Frigate появится в веб-интерфейсе Proxmox после завершения установки:

Кроме того, устройство требует установки четырех гигабайт оперативной памяти и двадцати гигабайт свободного места на диске.
После того, как Frigate будет установлен в LXC контейнер, мы не сможем использовать его конфиг, кроме как через веб-интерфейс управления самого Frigate. Но я думаю, что вы и так это делали там, просто я привык иначе.
В настоящее время Frigate с видеoядром работает правильно, и я добавил эту строчку в конфиг:
ffmpeg:
hwaccel_args: preset-vaapi
Вы увидите, насколько сильно разгружен ваш процессор, если, конечно, вы оставили параметры, которые позволяют обнаружению объектов осуществляться не процессором, а чем-то другим.
Вычисление объектов можно отправить на NPU процессор, например Google Coral: https://alii.pub/75cs5e?erid=2SDnjek8uDN.
Установка Frigate в контейнере LXC на Proxmox — это простой и эффективный способ развернуть систему видеонаблюдения с распознаванием объектов, не тратя ресурсы на полноценную виртуальную машину. Если правильно настроить доступ к камере через RTSP, выделить контейнеру необходимые привилегии и подключить GPU для ускорения анализа, все работает быстро. Для тех, кто хочет использовать уже существующий сервер на базе Proxmox, не требуя дополнительных настроек, этот метод удобен.
Настройки Google Coral на LXC контейнере Frigate:
Поскольку у Google Coral по умолчанию нет драйверов на сервере Proxmox, Google Coral не сможет работать в Frigate, установленном на Porxmox в LXC контейнер.
Можно использовать одну стопону для установки драйвера, но, по моему мнению, это не лучший метод, поскольку в самом LXC контейнере есть все, что необходимо для работы с Google Coral. Таким образом, его достаточно будет пробросить в контейнер.
Для проброса Google Coral в контейнер LXC Frigate необходимо сначала определить его адрес. (Поскольку я использовал его, я буду показывать на USB версии Google Coral).
Вводим рекламу и оцениваем ее результат:
lsusb
Этот Вывод нам покажет что Google Inc. у нас находится по адресу Bus 002 Device 004 (USB шина 2 девайс 4).
Это похоже на этот адрес:
/dev/bus/usb/002/004
Это направление можно даже пройти, но мы должны указать его в параметрах LXC контейнера.
После этого переходим к конфигу LXC контейнера:
nano /etc/pve/nodes/pve/lxc/101.conf
101.conf — это конфиг устройства 101 в Poxmox. Он может быть не таким, как ожидалось, но его можно найти, посмотрев на номер виртуальной машины в Poxmox.
Коулф откроет конфиг, что необходимо под строкой:
lxc.cgroup2.devices.allow: c 189:* rwm
Пропишите строчку проброса Google Coral таким образом:
lxc.mount.entry: /dev/bus/usb/002/004 dev/bus/usb/002/004 none bind,optional,create=file
Место, где находится /dev/bus/usb/002/004 Какое устройство и куда оно пробрасывается в контейнере, указывается дважды в файле dev/bus/usb/002/004.
Кроме того, в целом это выглядит так:

Следующим шагом является перезапуск frigate, сохранение конфига. После этого LXC контейнер Frigate будет иметь возможность сотрудничать с Google Coral.
Кроме того, я рассмотрел, как Google Coral описывает ужe в конфиге Frigate, в этом документе:
Настройка работы Frigate с Google Coral TPU.
Это все! Добавление Frigate в LXC-контейнер позволяет вам получить мощную систему видеонаблюдения, которая работает прямо на вашем сервере Proxmox. Это оптимальное решение, которое сочетает в себе эффективность и эффективный контроль над ресурсами.
Этот метод обеспечивает гибкость. LXC контейнер изолирует фригат от системы, не перегружая ее. Используя Proxmox, вы можете легко создавать резервные копии, контролировать доступ к аппаратным ресурсам или быстро перезапустить всю систему при необходимости.
Теперь самое интересное — добавить свои камеры, настроить детектирование объектов и наслаждаться результатами. Благодаря своей «умной» записи система сама будет защищать ваш дом и экономить место на диске.
Не бойтесь экспериментировать с настройками под свой сценарий; чистый LXC-контейнер всегда можно удалить и начать заново, если что-то пойдёт не так. Удачи в настройке!








