Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Обновлено 10 октября 2026 г.
Видеонаблюдение и камеры

Frigate

Видеорегистратор для своих IP-камер, который работает на вашем сервере: сохраняет видео, распознает людей и машины, ищет события в архиве. На стенде даже один демопоток с распознаванием на CPU занял около 2,5 ядра; разберем настройку камер, расчет диска и выбор между VPS и своим железом.

Проверено на версии v0.18.0, 9 октября 2026~11 минут чтенияFatmetal Team
Frigate NVRЛицензия: MITРусский интерфейс

Вердикт

Подходит
  • владельцу объекта, которому нужен архив отдельно от места установки камер
  • администратору RTSP-камер, который хочет искать записи с людьми и машинами
  • для выбора своего срока хранения вместо тарифа за каждую камеру
Не подходит
  • для покупки готового охранного сервиса с обслуживанием камер
  • для тяжелой детекции на обычном VPS без ускорителя
  • для камер, у которых доступен только закрытый облачный протокол
  • если на объекте нестабильный интернет или нельзя обеспечить защищенное соединение между VPS и камерами
Рекомендуем: CPU4-RAM8-DISK100Сложность: mediumЗапуск с готовым образом: 17 с до healthyГлавный риск: CPU и объем архиваПрод-готовность: один администратор, HTTPS и резервные копии
Что это

Свой архив камер с поиском по объектам

Обычная запись отвечает на вопрос «что было в это время». Frigate добавляет поиск по объектам: откройте события с людьми, машинами или велосипедами и перейдите к нужному фрагменту.

На главном экране виден текущий поток. В обзоре событий открывается видеозапись с временной шкалой, а Search группирует найденные объекты и показывает снимки. Это самостоятельный NVR, то есть сетевой видеорегистратор.

Базовая установка хранит видео и базу событий на вашем диске. Облачная учетная запись производителя камеры и подписка Frigate+ для нее не нужны. Настройки и рабочие экраны доступны по-русски.

Новая версия

Что изменилось после 0.17.2

В прежнем разборе настройка шла через config.yml. В 0.18.0 появился полноценный Settings: глобальные параметры, управление камерами, запись, снимки и Profiles собраны в панели.

Теперь срок архива можно увидеть и изменить в разделе записи. Profiles вынесены на отдельный экран; в исходной установке они выключены. Обзор событий и поиск получили новый интерфейс.

Есть и несовместимости: на диске снимки теперь сохраняются как чистые WebP вместо JPEG с аннотациями. Изменилась схема зон, масок и нескольких GenAI-провайдеров; старые параметры и API экспорта удалены.

Внутри нового образа установлены FFmpeg 8.1.1 и go2rtc 1.9.14. Переход стоит начинать с копии конфигурации и базы, затем сверять настройки с примечаниями к релизу.

Лицензия ядра остается MIT. Указанная в прежних метаданных AGPL-3.0 была ошибкой описания, а не сменой условий в новой версии.

Frigate 0.18.0: Profiles выключены в исходной установке
Новая панель Profiles. Профили по умолчанию выключены.
Сравнение

Чем отличается от Ivideon и Blue Iris

Frigate позволяет самому выбирать сервер, камеры и глубину архива. Ivideon продает готовые облачные услуги, а Blue Iris переносит запись на ваш Windows-компьютер.

ПродуктЦена на 9 октября 2026Что оплачивается
FrigateБазовый NVR бесплатенСвой сервер, диск и обслуживание
Frigate+50 $ в годДополнительные модели, до 12 дообучений
Ivideon CloudОт 350 руб./камера/месяц при годовой оплатеОблачный архив на 3 дня
Blue Iris Full99,95 $; обслуживание после первого года 44,95 $/годWindows-лицензия до 128 камер

Ivideon доступен российскому покупателю: рублевые тарифы, карта, СБП и счет. Выбор Frigate здесь связан с собственным архивом и конфигурацией, а не с невозможностью оплатить конкурента.

Frigate+ не входит в бесплатную установку. Лицензия этих моделей отдельно ограничивает обслуживание чужих камер и перепродажу моделей в составе сервиса.

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

Источники цен: Ivideon, Blue Iris, Frigate+.

Устройство

Как поток превращается в запись и событие

Frigate объединяет Python-бэкенд, веб-панель и SQLite в одном контейнере. FFmpeg принимает видео, встроенный go2rtc передает поток, детектор распознает объекты. Caddy на сервере обеспечивает HTTPS и вход.

Запись и детекция идут разными путями. Архив сохраняет исходное видео, а для распознавания кадры декодируются и передаются детектору. Поэтому снижение detect.fps само по себе не уменьшает битрейт записи.

В этой установке config.yml и база frigate.db находятся в /opt/frigate/config. Записи, снимки и экспорт лежат в /opt/frigate/media. Рабочий буфер /tmp/cache размещен в памяти и не служит архивом.

PythonSQLiteFFmpeg 8.1.1go2rtc 1.9.14Docker ComposeCaddy 2.11.7
Ресурсы

Какой сервер и диск выбрать

Для повторения инструкции возьмите CPU4-RAM8-DISK100 с Ubuntu 24.04 LTS, архитектура x86-64. На стенде такой сервер стоил 1100 руб./месяц; это отправная конфигурация, а не минимум вендора.

Сначала определите срок хранения и битрейт камер. Наш демопоток за короткие окна записи дает расчетные 5-5,3 ГБ в сутки: три дня занимают 15-16 ГБ, тридцать - 150-160 ГБ.

Это расчет для конкретного видео, а не универсальный расход камеры. При выборе диска оставляйте место системе, образам, базе и снимкам; архив на месяц в 100 ГБ не помещается.

Когда емкости не хватает, подключайте диск и монтируйте его в /opt/frigate/media до запуска. Frigate пишет архив в файловую систему; штатной настройки записи прямо в S3 в установленной версии нет.

До переноса реальных камер на VPS обеспечьте сетевой путь до их RTSP-адресов. Камера с адресом локальной сети объекта не станет доступной из облака только потому, что регистратор установлен.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, после установки получаете рабочий домен, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe от 990 ₽/мес

В маркетплейс →
Установка

Развертывание на Fatmetal Cloud Server

Нужны SSH-доступ с sudo и базовое знакомство с Linux. Начните с чистой Ubuntu: ниже весь состав установки, конфигурация камеры, защита панели и запуск.

  1. Установите Docker

    Выполняйте команды в root-shell: sudo -i. Официальный репозиторий дает Engine и плагин Compose; без них следующие шаги не запустятся.

    apt-get update && apt-get install -y ca-certificates curl
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    chmod a+r /etc/apt/keyrings/docker.asc
    echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable' > /etc/apt/sources.list.d/docker.list
    apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  2. Поставьте Caddy и задайте адрес

    Адрес ваш-домен должен вести на сервер; откройте входящие TCP 80 и 443 для сертификата и панели. На Fatmetal подойдет автоматически разрешаемый адрес IP-с-дефисами.fatmetal.net.

    curl -fsSL https://github.com/caddyserver/caddy/releases/download/v2.11.7/caddy_2.11.7_linux_amd64.deb -o /tmp/frigate-caddy.deb
    apt-get install -y /tmp/frigate-caddy.deb
    DOMAIN=ваш-домен
    mkdir -p /opt/frigate/{config,media,demo}
    cd /opt/frigate
  3. Подготовьте поток для проверки

    Это зацикленное тестовое видео с людьми и машинами. Оно позволяет проверить запись до подключения вашей камеры; без stream_loop поток закончится вместе с файлом.

    curl -fsSL https://raw.githubusercontent.com/intel-iot-devkit/sample-videos/master/person-bicycle-car-detection.mp4 -o demo/sample.mp4
    cat > config/config.yml <<'CFG'
    mqtt: {enabled: false}
    auth: {enabled: false}
    detectors: {cpu1: {type: cpu}}
    go2rtc:
      ffmpeg: {file: "-re -stream_loop -1 -i {input}"}
      streams: {demo: ["ffmpeg:/demo/sample.mp4#input=file"]}
    cameras:
      demo:
        ffmpeg:
          inputs: [{path: "rtsp://127.0.0.1:8554/demo", input_args: preset-rtsp-restream, roles: [detect, record]}]
        detect: {enabled: true, width: 768, height: 432, fps: 5}
        objects: {track: [person, car, bicycle]}
    record:
      enabled: true
      continuous: {days: 3}
      motion: {days: 3}
      alerts: {retain: {days: 3, mode: all}}
      detections: {retain: {days: 3, mode: all}}
    snapshots: {enabled: true}
    CFG
    chmod 600 config/config.yml
  4. Закрепите образ и постоянные каталоги

    Тег удерживает проверенную версию. Порт 5000 остается локальным: вход предоставляет Caddy, а встроенная авторизация Frigate выключена.

    cat > compose.yml <<'COMPOSE'
    services:
      frigate:
        image: ghcr.io/blakeblackshear/frigate:0.18.0
        container_name: frigate
        restart: unless-stopped
        shm_size: 256mb
        environment:
          HTTP_PROXY: http://api-proxy.fatmetal.net:8080
          HTTPS_PROXY: http://api-proxy.fatmetal.net:8080
          NO_PROXY: localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,frigate,.fatmetal.net,.fatmetal.ru
        volumes: ["./config:/config", "./media:/media/frigate", "./demo:/demo:ro"]
        tmpfs: ["/tmp/cache:size=1000000000"]
        ports: ["127.0.0.1:5000:5000"]
    COMPOSE
  5. Создайте вход и включите HTTPS

    Сгенерируйте собственный пароль и сохраните его в менеджере паролей. Логин frigate дает одному администратору доступ к панели.

    umask 077
    openssl rand -base64 24 > /root/frigate-password.txt
    HASH=$(caddy hash-password < /root/frigate-password.txt)
    cat > /etc/caddy/Caddyfile <<CADDY
    $DOMAIN {
      basic_auth {
        frigate $HASH
      }
      reverse_proxy 127.0.0.1:5000
    }
    CADDY
    chown root:caddy /etc/caddy/Caddyfile
    chmod 640 /etc/caddy/Caddyfile
    caddy validate --config /etc/caddy/Caddyfile
    systemctl reload caddy
  6. Запустите Frigate и проверьте запись

    Дождитесь healthy в docker ps и версии в API. Затем откройте https://ваш-домен, войдите и посмотрите живую камеру Demo, архив и события Search.

    docker compose pull
    docker compose up -d
    docker ps --filter name=frigate
    until curl -fsS http://127.0.0.1:5000/api/version; do sleep 3; done

После запуска найдите новые MP4 в /opt/frigate/media/recordings и событие person в Search. Один ответ HTTP 200 показывает доступность страницы, но не подтверждает запись.

Frigate 0.18.0: просмотр живого демопотока
Живой поток Demo через публичную панель. Frigate 0.18.0
Настройка

Настройте камеры, запись и уведомления

Откройте «Настройки» → «Глобальная конфигурация» → «Запись». Включите запись и задайте дни непрерывного хранения и хранения движения; для событий предупреждений и обнаружений сроки задаются отдельно.

Чтобы заменить демо, откройте config.yml и поменяйте значение go2rtc.streams.demo на RTSP-адрес вашей камеры. Сохраните имя demo в cameras, задайте width и height под поток детекции, затем пересоздайте контейнер.

cd /opt/frigate
nano config/config.yml
# go2rtc.streams.demo: ["rtsp://ЛОГИН:ПАРОЛЬ@IP-КАМЕРЫ:554/stream"]
docker compose up -d --force-recreate frigate

Для остальных параметров используйте управление камерами в Settings. После изменения проверяйте три вещи: живой кадр, появление нового сегмента записи и событие с нужным объектом.

Уведомления. В этой конфигурации MQTT выключен. Запись и поиск событий работают самостоятельно; Home Assistant и доставка оповещений не входят в установленный состав.

GenAI Chat. Нужен собственный ключ выбранного провайдера. Прокси к внешним API http://api-proxy.fatmetal.net:8080 входит в VPS; переменные уже заданы в Compose, отдельная настройка сети не нужна.

На установленном Frigate получен ответ Chat через этот прокси. Основная детекция людей и машин при этом остается локальной и не требует ключа внешней модели.

Frigate 0.18.0: настройки записи с хранением три дня
Settings → Запись: отдельные сроки хранения, исходно три дня.
Замеры

Что ограничивает VPS на практике

Стенд: CPU4-RAM8-DISK100, Xeon E5620 2,4 ГГц, Ubuntu 24.04.4, Docker 29.9.0. Один локальный H.264-демопоток 768×432, CPU-детектор, заданные 5 кадров/с для детекции.

Режим FrigateПамять процессовCPU
Камера выключена500 МиБ2,6%
Запись без детекции объектов561 МиБ11,3%
Запись и CPU-детекция590 МиБ254%

100% CPU соответствует одному ядру. Детекция занимает около 2,5 ядра, тогда как запись без нее значительно дешевле. Память в таблице не включает файловые буферы и память ядра.

Фактически камера передавала в обработку медианные 3,6 кадра/с, а обрабатывались 1,8. Поэтому заданные 5 кадров/с не стали фактической скоростью детекции; ориентироваться только на настройку fps нельзя.

Образ занимает 8,7 ГБ, первый pull занял 315 секунд. Повторный запуск с готовым образом доходил до рабочего API за 15 секунд, до healthy за 17 секунд.

На корневом диске после установки было занято 11,4 ГБ, свободно 91,5 ГБ. Ответ главной страницы занимал медианные 21 мс; задержка видеовоспроизведения этим числом не измеряется.

Frigate 0.18.0: архивный фрагмент с человеком и временной шкалой
Архив воспроизводится в браузере, переход к событию показывает нужный фрагмент.

Проверено на версии v0.18.0, 9 октября 2026. На новых версиях результаты могут отличаться.

Грабли

Где может сломаться

402 Payment Required при установке Caddy

Причина. Репозиторий Cloudsmith вернул отказ на InRelease, и apt перестал обновлять список пакетов.

Решение. Удалите добавленный источник: rm -f /etc/apt/sources.list.d/caddy-stable.list. Затем установите официальный .deb из шага выше вместо этого репозитория.

Демопоток заканчивается после одного прохода

Причина. Стандартный шаблон go2rtc для файла не зацикливает видео.

Решение. Задайте go2rtc.ffmpeg.file со строкой -re -stream_loop -1 -i {input}, как в конфигурации выше, затем docker compose restart frigate.

429 too many certificates already issued for this exact set of identifiers

Причина. Адрес сервера уже использовали для выпуска сертификатов; достигнут недельный лимит центра сертификации.

Решение. Посмотрите дату retry в journalctl -u caddy -n 100 --no-pager, дождитесь ее и выполните systemctl restart caddy. Не отключайте проверку сертификата в рабочем доступе.

Для диагностики камеры начните с docker logs --tail 100 frigate. Логи FFmpeg показывают, доступен ли источник; API /api/stats показывает скорость обработки и пропущенные кадры.

Эксплуатация

Резервная копия, восстановление и обновление

Порт 5000 оставляйте на localhost. Caddy закрывает панель паролем и HTTPS; конфигурация с паролями камер и резервные копии должны быть доступны только администратору.

Для согласованной копии SQLite остановите Frigate и сохраните весь config-каталог вместе с compose.yml. Если требуется сохранить видеодоказательства, архивируйте также media; записи во время остановки не создаются.

cd /opt/frigate
umask 077
docker compose stop frigate
tar -czf /root/frigate-backup.tgz config compose.yml media
docker compose up -d

Перед обновлением выполните эту копию, затем смените тег image в Compose на выбранный стабильный релиз. Загрузите образ и пересоздайте контейнер:

cd /opt/frigate
docker compose pull
docker compose up -d
docker logs --tail 100 frigate
curl -fsS http://127.0.0.1:5000/api/version

После обновления проверьте live, новые записи и поиск событий. Для восстановления верните сохраненные конфигурацию, базу и Compose с прежним тегом вместе, а не только старый образ.

cd /opt/frigate
docker compose down
mv config config.before-restore
tar -xzf /root/frigate-backup.tgz
docker compose up -d

В 0.18.0 исправлена high-уязвимость GHSA-74fj-g666-3rv9, затрагивающая старую встроенную авторизацию. Остаются medium advisories: Web Push SSRF, падение go2rtc от злонамеренного RTSP-источника, обход камерных ACL. Ограничивайте доступ к панели и подключайте только доверенные источники.

Рядом

Какие компоненты обслуживают архив

  • Caddy - единственная внешняя точка входа этой установки; журнал сертификатов доступен через journalctl.
  • Хранилище сервера - config и media переживают пересоздание контейнера; копию /root/frigate-backup.tgz перенесите за пределы этой машины.
  • Внешний провайдер моделей - дополнительный компонент для Chat, со своим ключом и оплатой; для обычной записи он не нужен.

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

Границы

Когда это НЕ ваш выбор

Нужно гарантированно обрабатывать много камер

На обычном VPS нет GPU или TPU. Число реальных камер и стабильные 5 кадров/с этим стендом не подтверждены; тяжелую детекцию разумнее размещать рядом с камерами на подходящем железе.

На объекте нестабильный интернет или закрытые камеры

VPS требует постоянного доступа к видеопотоку. Для камер за NAT сначала нужен защищенный сетевой путь, а закрытый протокол производителя не заменяется установкой Frigate.

Нужны отдельные права для сотрудников

Показанная схема дает одному администратору весь доступ через Basic-auth. Разделение пользователей и прав по камерам в ней не настроено.

Вы покупаете управляемое видеонаблюдение

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

FAQ

Частые вопросы

Нужна ли подписка для поиска людей и машин?

Нет. Базовый CPU-детектор создает события person, car и bicycle без Frigate+ и ключа внешней модели.

Можно ли отключить распознавание и сохранить запись?

Да: задайте detect.enabled: false для камеры. На стенде запись продолжалась, а нагрузка CPU существенно снижалась.

Почему уменьшаю detect.fps, а архив не становится меньше?

Архив сохраняет исходный поток. FPS детекции управляет обработкой кадров, а емкость записи определяется битрейтом и сроком хранения.

Где лежат база и снимки?

SQLite и config.yml находятся в /opt/frigate/config, а архив и чистые WebP-снимки - в /opt/frigate/media.

Как войти после ручной установки?

Откройте https://ваш-домен, логин frigate. Сгенерированный пароль находится в /root/frigate-password.txt; считайте его по SSH и сохраните у себя.

Как включить русский интерфейс?

На стенде достаточно русского языка браузера: локаль ru-RU дала русские Settings, Search и экраны воспроизведения.

Итог

Frigate 0.18 делает собственный архив удобнее: настройка записи доступна в панели, события ведут к нужному фрагменту. Для VPS сначала оценивайте CPU, связь с камерами и срок хранения.

Начните с демопотока по инструкции, убедитесь в записи и воспроизведении, затем подключайте свою камеру. Если цель - тяжелая детекция, выбирайте оборудование под нее до переноса архива.

Рекомендуемая конфигурация для установки:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe

Не хотите устанавливать вручную?

Запустите Frigate на этой конфигурации автоматически - от 990 ₽/мес.

Запустить Frigate →