Установка Frigate на VPS забезпечує потужну та приватну систему відеоспостереження з детекцією об'єктів, використовуючи обчислювальні ресурси хмарного сервера для ефективної обробки відеопотоків.
Що таке Frigate і чому `Frigate VPS` — це оптимальний вибір?
Frigate — це високопродуктивна система відеоспостереження з відкритим вихідним кодом, розроблена спеціально для локальної обробки відеопотоків та детекції об'єктів у реальному часі. На відміну від багатьох хмарних рішень, Frigate ставить на перше місце приватність та швидкість, обробляючи всі дані на вашому обладнанні, а не відправляючи їх на сторонні сервери. Він використовує сучасний підхід до комп'ютерного зору, включаючи машинне навчання (ML) для точного розпізнавання людей, автомобілів, тварин та інших об'єктів, мінімізуючи хибні спрацьовування.
Основна особливість Frigate — його здатність працювати з апаратним прискоренням, що значно підвищує ефективність обробки відео. Це може бути як звичайний процесор (CPU), так і спеціалізовані прискорювачі, такі як Google Coral Edge TPU або NVIDIA GPU. Завдяки цьому Frigate здатний обробляти кілька відеопотоків з високою роздільною здатністю одночасно, не перевантажуючи систему.
Вибір Frigate VPS для розгортання цієї системи відеоспостереження є стратегічно вигідним рішенням з кількох причин. По-перше, ви отримуєте повний контроль над своєю інфраструктурою, що критично важливо для безпеки та приватності відеоспостереження. По-друге, VPS-сервери Valebyte.com надають стабільне та масштабоване середовище, яке дозволяє гнучко підлаштовувати ресурси під зростаючі потреби системи Frigate. Ви не обмежені потужністю домашнього обладнання і можете легко збільшити кількість ядер CPU, об'єм оперативної пам'яті або дискового простору за потреби. Крім того, розміщення на VPS забезпечує постійний доступ до вашої системи з будь-якої точки світу через інтернет, без необхідності прокидати порти в домашній мережі.
Переваги `Frigate self-hosted` рішення
Розгортання Frigate self-hosted на власному сервері (будь то локальний міні-ПК або хмарний VPS) дає низку незаперечних переваг перед комерційними хмарними сервісами:
- Приватність даних: Усі відеопотоки та записи зберігаються та обробляються виключно на вашому сервері. Жодні дані не відправляються третім особам, що виключає ризик витоків та несанкціонованого доступу до вашої особистої інформації.
- Відсутність абонентської плати: Після купівлі VPS та налаштування Frigate ви платите лише за сервер. Немає прихованих платежів за хмарне сховище або додаткові функції, як це часто буває у пропрієтарних систем.
- Повний контроль та кастомізація: Ви можете налаштувати Frigate під свої унікальні потреби, інтегрувати його з іншими системами розумного будинку (наприклад, Home Assistant), використовувати будь-яку кількість камер та гнучко керувати правилами детекції.
- Висока продуктивність: Завдяки локальній обробці та можливості використання апаратного прискорення, Frigate забезпечує мінімальну затримку при детекції подій та миттєвий доступ до відеоархіву.
- Надійність: Робота системи не залежить від стабільності інтернет-з'єднання із зовнішніми хмарними серверами. За наявності резервного каналу інтернету на VPS або автономного джерела живлення, ваша система спостереження працюватиме навіть при проблемах з провайдером.
Системні вимоги для ефективної `установки Frigate` на VPS
Для успішної установки Frigate та його стабільної роботи на VPS вкрай важливо правильно підібрати конфігурацію сервера. Frigate — досить ресурсоємний додаток, особливо при обробці кількох відеопотоків високої роздільної здатності. Основні компоненти, які визначають продуктивність, це процесор (CPU), оперативна пам'ять (RAM), дисковий простір і, в ідеалі, апаратний прискорювач.
Шукаєте надійний сервер для ваших проєктів?
VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.
Дивитися пропозиції →Вибір апаратного забезпечення: CPU, RAM, NVMe та GPU-прискорення
-
Процесор (CPU): Frigate активно використовує CPU для декодування відеопотоків та виконання деяких завдань з детекції, якщо немає апаратного прискорювача.
- Для 1-2 камер 1080p (без TPU/GPU): Мінімум 2 vCPU з тактовою частотою від 2.5 ГГц.
- Для 3-5 камер 1080p (без TPU/GPU): Рекомендується 4 vCPU від 3.0 ГГц.
- При використанні Coral Edge TPU або NVIDIA GPU: Основне навантаження з детекції переноситься на прискорювач, тому вимоги до CPU знижуються. Однак CPU все одно потрібен для декодування відео. У цьому випадку 2 vCPU 2.5 ГГц буде достатньо навіть для 5-8 камер.
- Важливо: Frigate виграє від високочастотних ядер, а не лише від їх кількості.
-
Оперативна пам'ять (RAM): Об'єм RAM залежить від кількості камер, їх роздільної здатності та тривалості зберігання буферних кадрів.
- Мінімально: 4 GB RAM. Цього вистачить для 1-2 камер з невеликим буфером.
- Рекомендується: 8 GB RAM. Оптимально для 3-5 камер, забезпечує стабільність та запас для інших сервісів.
- Для 5+ камер або тривалого буфера: 16 GB RAM.
-
Дисковий простір (NVMe): Frigate постійно записує відеопотоки (буферні кадри, записи подій) на диск. Швидкість диска критично важлива для запобігання затримкам та втраті кадрів.
- Тип диска: Суворо рекомендується NVMe SSD. Його висока швидкість читання/запису значно перевершує SATA SSD та HDD, що безпосередньо впливає на продуктивність Frigate.
- Об'єм: Залежить від кількості камер, роздільної здатності та глибини архіву.
- Для 1-2 камер (кілька днів архіву): 50-100 GB NVMe.
- Для 3-5 камер (тиждень архіву): 100-200 GB NVMe.
- Для 5+ камер або тривалого архіву: 200+ GB NVMe. Пам'ятайте, що 1 камера 1080p може генерувати 10-20 GB відео на день при постійному записі або зберіганні буфера.
-
GPU-прискорення (Google Coral Edge TPU / NVIDIA GPU): Це найважливіший компонент для масштабування Frigate. Без нього CPU виконуватиме всю роботу з детекції, що сильно обмежує кількість оброблюваних потоків.
- Google Coral Edge TPU: Ідеальний для Frigate. Один USB Coral (або PCIe) може обробляти 200-400+ FPS (кадрів на секунду) для детекції, що достатньо для 10-20+ камер 1080p (за умови, що кожна камера надсилає 5-10 FPS на детекцію). На жаль, Coral TPU рідко доступні в хмарних VPS-середовищах.
- NVIDIA GPU: Деякі провайдери пропонують VPS з NVIDIA GPU (наприклад, Tesla T4, V100). Це чудова альтернатива Coral TPU, здатна обробляти ще більше FPS. Підтримка NVIDIA GPU у Frigate реалізована через Docker з прокиданням GPU.
- Увага: Якщо VPS не пропонує апаратний прискорювач, Frigate використовуватиме CPU для детекції. Це суттєво збільшить вимоги до CPU та обмежить кількість камер.
Покрокова `установка Frigate Docker` на вашому сервері
Найбільш зручний та рекомендований спосіб установки Frigate Docker на VPS — це використання Docker та Docker Compose. Цей підхід забезпечує ізоляцію програми, спрощує керування залежностями та полегшує оновлення.
Підготовка середовища та установка Docker Compose
Перед тим як приступити до розгортання Frigate, необхідно підготувати ваш VPS:
- Оновіть систему: Завжди починайте з оновлення пакетного менеджера та встановлених пакетів.
- Встановіть Docker: Дотримуйтесь офіційної інструкції для вашої операційної системи. Для Ubuntu/Debian це зазвичай виглядає так:
- Встановіть Docker Compose (якщо не встановлений як плагін): У нових версіях Docker Compose зазвичай йде як плагін
docker-compose-plugin, який встановлюється разом з Docker. Якщо ви використовуєте стару версію або віддаєте перевагу окремому бінарнику, встановіть його так: - Створіть директорію для Frigate:
sudo apt update && sudo apt upgrade -y
sudo apt install ca-certificates curl gnupg lsb-release -y
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
Додайте вашого користувача до групи docker, щоб виконувати команди Docker без sudo (потрібне перезавантаження SSH-сесії або системи):
sudo usermod -aG docker $USER
sudo apt install docker-compose -y
mkdir -p ~/frigate
cd ~/frigate
Розгортання Frigate: створення конфігурації та запуск контейнерів
Тепер створимо файл docker-compose.yml та базовий конфігураційний файл Frigate.
- Створіть файл
docker-compose.yml: - Створіть базовий конфігураційний файл Frigate (
config.yml): - Запустіть контейнери Docker Compose:
mqtt: Налаштування MQTT-брокера. Frigate використовує MQTT для публікації всіх подій (детекція, знімки, стан камер), що робить його ідеальним для інтеграції з іншими системами розумного будинку, такими як Home Assistant. Переконайтеся, щоhostвказує на ваш Mosquitto-сервіс (у нашому прикладі цеmosquitto).ffmpeg: Тут налаштовується FFmpeg, який Frigate використовує для декодування відеопотоків.hwaccel_args: Якщо ваш VPS надає апаратне прискорення декодування (наприклад, Intel Quick Sync Video -qsv, VA-API -vaapi, NVIDIA NVDEC -nvdec), обов'язково використовуйте його! Це значно знизить навантаження на CPU. Перевірте документацію вашого хмарного провайдера або тип процесора на вашому VPS, щоб визначити підтримуваний прискорювач. Наприклад, для більшості Intel-процесорів на VPS це будеvaapi.output_args: Визначають, як FFmpeg обробляє потоки для детекції та запису. Важливо, щоб потік для детекції був у низькій роздільній здатності (суб-потік камери), щоб мінімізувати навантаження.
detectors: Визначає використовувані детектори. Якщо у вас немає Coral TPU або NVIDIA GPU на VPS, використовуйтеtype: cpu. За наявності апаратного прискорювача, налаштуйте його тут.cameras: Найбільш об'ємна секція, де налаштовується кожна камера.ffmpeg.inputs: Тут вказуються URL RTSP-потоків вашої камери. Вкрай рекомендується використовувати два потоки: один основний (record,rtmp) з високою роздільною здатністю для запису та перегляду, і один суб-потік (detect) з низькою роздільною здатністю (наприклад, 640x480) для детекції. Це значно знижує навантаження на детектор.detect: Увімкнути/вимкнути детекцію, вказати детектор, роздільну здатність та FPS для детекції.record: Налаштування запису відео.retain.daysвизначає, скільки днів зберігати записи.events.pre_captureтаpost_captureдозволяють записувати відео до та після виявленої події.rtmp: Увімкнення RTMP-потоку для перегляду через Frigate.zonesтаobjects.mask: Ці параметри дозволяють визначити конкретні області на відео, де повинна або не повинна проводитися детекція. Це дуже корисно для виключення хибних спрацьовувань (наприклад, від рухомих дерев або дороги).snapshots: Налаштування збереження знімків при виявленні об'єктів.
- Налаштування MQTT у Home Assistant: У Home Assistant додайте інтеграцію "MQTT" та вкажіть IP-адресу вашого Frigate VPS (або доменне ім'я, якщо використовуєте reverse proxy) та порт 1883.
- Автоматичне виявлення: Frigate автоматично публікує свої пристрої та сенсори в Home Assistant через MQTT Discovery. Після налаштування MQTT в HA, ви побачите нові сутності для кожної камери (стан, детекція руху, знімки, відеопотоки).
- Автоматизації: Використовуйте події Frigate (наприклад, "person detected in front_door") для запуску автоматизацій у Home Assistant: увімкнення світла, надсилання сповіщень із зображенням, запис відео тощо.
- Встановіть Nginx:
- Отримайте SSL-сертифікат Let's Encrypt: Рекомендується використовувати Certbot.
- Створіть або відредагуйте конфігураційний файл Nginx для Frigate:
- Активуйте конфігурацію та перезавантажте Nginx:
- Встановіть Caddy: Дотримуйтесь офіційної інструкції для вашої ОС. Для Debian/Ubuntu:
- Створіть або відредагуйте файл Caddyfile:
- Перезавантажте Caddy:
- Бекап конфігурації: Файл
~/frigate/config/config.ymlта всі пов'язані файли (наприклад,motion_masks.json) повинні бути зарезервовані. Це можна робити вручну або автоматизувати. - Бекап бази даних: Frigate використовує SQLite базу даних (
frigate.db) для зберігання метаданих про події та записи. Вона знаходиться в директорії~/frigate/media. Рекомендується бекапити її разом з конфігом. - Бекап медіафайлів: Директорія
~/frigate/mediaмістить усі ваші відеозаписи та знімки. Це може бути дуже великий об'єм даних, тому повні щоденні бекапи можуть бути непрактичними.- Стратегія: Бекапуйте лише важливі події (наприклад, знімки об'єктів) та конфігурацію щодня. Повний бекап відеоархіву можна робити рідше або використовувати інкрементальні бекапи.
- Інструменти: Використовуйте такі інструменти, як Restic на VPS для ефективного, дедуплікованого та зашифрованого резервного копіювання на віддалене сховище (S3, Backblaze B2).
- Перейдіть до директорії Frigate:
- Зупиніть поточні контейнери:
- Завантажте нові образи:
- Запустіть оновлені контейнери:
- Починайте з малого: Якщо ви новачок, почніть з тарифу з 2 vCPU, 4 GB RAM та 100 GB NVMe. Цього достатньо для тестування та 1-2 камер.
- Пріоритет NVMe: Завжди вибирайте тарифи з NVMe-дисками. Це одна з найкритичніших вимог для Frigate.
- Процесор з високою частотою: Для CPU-детекції Frigate краще відгукується на високочастотні ядра, навіть якщо їх менше, ніж на велику кількість низькочастотних ядер.
- Апаратне прискорення: Якщо ваш провайдер пропонує VPS з Intel-процесорами, швидше за все, доступне VA-API або QSV для апаратного декодування FFmpeg. Обов'язково використовуйте це. Якщо доступні NVIDIA GPU, це ідеальний вибір для масштабування детекції.
- Масштабованість: Вибирайте провайдера, який дозволяє легко масштабувати ресурси VPS (CPU, RAM, Disk) без перевстановлення системи. Valebyte.com пропонує таку гнучкість.
- Моніторинг: Встановіть інструменти моніторингу, такі як Netdata, щоб відстежувати завантаження CPU, RAM та диска, виявляти вузькі місця та своєчасно реагувати.
nano docker-compose.yml
Вставте наступний вміст. Цей приклад включає Frigate, Mosquitto (для MQTT, використовується Frigate для подій та Home Assistant) та Double-Take (опціонально, для просунутої детекції облич/людей).
version: "3.9"
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:stable
privileged: true # Може знадобитися для доступу до апаратних прискорювачів
restart: unless-stopped
shm_size: "256mb" # Збільште, якщо бачите проблеми з буфером FFmpeg
ports:
- "5000:5000" # Веб-інтерфейс Frigate
- "1935:1935" # RTMP для перегляду
volumes:
- /etc/localtime:/etc/localtime:ro
- ~/frigate/config:/config # Директорія для конфігурації Frigate
- ~/frigate/media:/media # Директорія для записів та знімків
- type: tmpfs # Використовуйте tmpfs для кешу Frigate, якщо є проблеми із записом на диск
target: /tmp/cache
tmpfs:
size: 1000000000 # 1GB
environment:
- FRIGATE_RTSP_PASSWORD=YOUR_RTSP_PASSWORD # Замініть на надійний пароль
# Якщо використовуєте Coral TPU (рідко на VPS):
# devices:
# - /dev/bus/usb:/dev/bus/usb
# Якщо використовуєте NVIDIA GPU (переконайтеся, що встановлено nvidia-container-toolkit):
# runtime: nvidia
# environment:
# - NVIDIA_VISIBLE_DEVICES=all
# - NVIDIA_DRIVER_CAPABILITIES=all
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto:latest
restart: unless-stopped
ports:
- "1883:1883" # Порт MQTT
- "9001:9001" # Порт Websockets (для MQTT)
volumes:
- ~/frigate/mosquitto/config:/mosquitto/config
- ~/frigate/mosquitto/data:/mosquitto/data
- ~/frigate/mosquitto/log:/mosquitto/log
# Приклад опціонального сервісу для інтеграції з Frigate
# double-take:
# container_name: double-take
# image: blakeblackshear/double-take:latest
# restart: unless-stopped
# ports:
# - "3000:3000" # Веб-інтерфейс Double-Take
# volumes:
# - ~/frigate/double-take/config:/config
# - ~/frigate/media/frigate:/frigate/media # Доступ до медіа Frigate
# environment:
# - FRIGATE_MQTT_HOST=mosquitto
# - FRIGATE_MQTT_PORT=1883
# - FRIGATE_MQTT_USERNAME=YOUR_MQTT_USERNAME # Якщо Mosquitto вимагає аутентифікації
# - FRIGATE_MQTT_PASSWORD=YOUR_MQTT_PASSWORD # Якщо Mosquitto вимагає аутентифікації
# - TZ=Europe/Moscow # Ваш часовий пояс
# depends_on:
# - frigate
# - mosquitto
Збережіть та закрийте файл (Ctrl+O, Enter, Ctrl+X).
Примітка щодо апаратних прискорювачів: Якщо ваш VPS підтримує NVIDIA GPU, вам потрібно буде встановити nvidia-container-toolkit на хост-системі VPS та розкоментувати відповідні рядки в docker-compose.yml. Для хмарних VPS Coral TPU вкрай рідкісний.
mkdir ~/frigate/config
nano ~/frigate/config/config.yml
Вставте наступний мінімальний приклад. Замініть rtsp://user:pass@ip:port/stream на реальні URL ваших камер. Для кожної камери зазвичай є основний потік (висока роздільна здатність для запису) та суб-потік (низька роздільна здатність для детекції, щоб знизити навантаження).
mqtt:
host: mosquitto # Ім'я сервісу Mosquitto в docker-compose
topic_prefix: frigate # Префікс для всіх MQTT-повідомлень Frigate
user: YOUR_MQTT_USERNAME # Опціонально, якщо Mosquitto вимагає аутентифікації
password: YOUR_MQTT_PASSWORD # Опціонально
ffmpeg:
hwaccel_args: # Апаратне прискорення декодування відео (для CPU)
- -hwaccel
- vaapi # Або qsv, nvdec, v4l2m2m залежно від вашого CPU/GPU
- -hwaccel_device
- /dev/dri/renderD128 # Або /dev/dri/renderD129, /dev/video0 тощо.
output_args:
detect: -f rawvideo -pix_fmt yuv420p # Аргументи для потоку детекції
record: -f segment -segment_times 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy # Аргументи для запису
detectors:
cpu1: # Ім'я детектора
type: cpu
# Якщо використовуєте Coral TPU (рідко на VPS):
# detectors:
# coral:
# type: edgetpu
# device: usb # Або pci
cameras:
front_door: # Ім'я вашої камери
ffmpeg:
inputs:
- path: rtsp://user:[email protected]:554/stream1 # Основний потік (висока роздільна здатність для запису)
roles:
- record
- rtmp
- path: rtsp://user:[email protected]:554/stream2 # Суб-потік (низька роздільна здатність для детекції)
roles:
- detect
detect:
enabled: True
detector: cpu1 # Який детектор використовувати
width: 640 # Ширина потоку детекції
height: 480 # Висота потоку детекції
fps: 5 # Кадрів на секунду для детекції
record:
enabled: True
retain:
days: 7 # Зберігати записи 7 днів
events:
pre_capture: 5 # Записувати 5 секунд до події
post_capture: 5 # Записувати 5 секунд після події
rtmp:
enabled: True # Увімкнути RTMP-потік для перегляду
zones: # Опціональні зони детекції
porch:
coordinates: 200,100,400,100,400,300,200,300
objects:
- person
objects:
track:
- person
- car
- dog
mask: # Опціональна маска для виключення областей з детекції
- 0,0,100,0,100,100,0,100 # Приклад маски
snapshots:
enabled: True
timestamp: True
bounding_box: True
crop: True
required_zones: []
retain:
default: 1
objects:
person: 7
motion:
mask: # Маска для виключення областей з детекції руху
- 0,0,100,0,100,100,0,100 # Приклад маски
Збережіть та закрийте config.yml.
docker compose up -d
Команда -d запускає контейнери у фоновому режимі. Щоб переглянути логи, використовуйте docker compose logs -f.
Після запуску Frigate буде доступний за адресою http://ВАШ_IP_VPS:5000. Переконайтеся, що порт 5000 відкрито у фаєрволі вашого VPS.
Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Детальне налаштування Frigate: від камер до сповіщень
Файл config.yml — це серце вашої системи Frigate. Правильне його налаштування критично важливе для стабільної роботи, точності детекції та ефективного використання ресурсів VPS.
Основи файлу `config.yml` та його оптимізація
Ми вже розглянули базову структуру, але давайте заглибимося у важливі параметри:
Інтеграція із зовнішніми системами: Home Assistant та MQTT
Однією з ключових переваг Frigate є його глибока інтеграція з Home Assistant через MQTT. Після того як Frigate та Mosquitto запущені на вашому VPS, а Home Assistant встановлений (можливо, на іншому VPS, див. статтю Home Assistant на VPS: установка, настройка и обслуживание), ви можете налаштувати їх взаємодію:
Приклад YAML для Home Assistant (configuration.yaml) для відображення потоку Frigate (переконайтеся, що веб-інтерфейс Frigate доступний):
# Приклад для Home Assistant
camera:
- platform: frigate
host: ВАШ_IP_VPS_FRIGATE # Або доменне ім'я
port: 5000 # Порт Frigate
rtmp_port: 1935 # Порт RTMP Frigate
# ssl: true # Якщо Frigate доступний по HTTPS
# verify_ssl: true
# client_id: home-assistant
# topic_prefix: frigate # Повинен збігатися з frigate/config.yml
# Якщо ви хочете використовувати MQTT безпосередньо (без discovery)
# camera:
# - platform: mqtt
# name: "Front Door Frigate"
# topic: "frigate/front_door/snapshot" # Топік для знімків
# encoding: "b64"
# qos: 0
# unique_id: frigate_front_door_snapshot
Frigate також може надсилати сповіщення безпосередньо через різні інтеграції (Telegram, Discord, Gotify) за допомогою додаткових скриптів або сервісів, таких як Netdata на VPS: установка, настройка и обслуживание.
Забезпечення безпечного доступу: Reverse Proxy (Nginx/Caddy) та HTTPS для `Frigate на сервері`
Доступ до веб-інтерфейсу Frigate за прямим IP-адресою та портом 5000 небезпечний та незручний. Для забезпечення захищеного доступу до Frigate на сервері, особливо якщо ви хочете використовувати доменне ім'я та HTTPS, необхідно налаштувати зворотний проксі (Reverse Proxy) з використанням Nginx або Caddy.
Налаштування Nginx як зворотного проксі
Nginx — це потужний та широко використовуваний веб-сервер, який відмінно підходить для ролі зворотного проксі. Він дозволяє направляти запити з вашого доменного імені на внутрішній порт Frigate, а також легко інтегрувати Let's Encrypt для HTTPS.
sudo apt update
sudo apt install nginx -y
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d ваш_домен.com -d www.ваш_домен.com
Дотримуйтесь інструкцій Certbot. Він автоматично налаштує Nginx для HTTPS.
sudo nano /etc/nginx/sites-available/frigate.conf
Вставте наступний вміст, замінивши ваш_домен.com на ваш реальний домен:
server {
listen 80;
listen [::]:80;
server_name ваш_домен.com www.ваш_домен.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ваш_домен.com www.ваш_домен.com;
ssl_certificate /etc/letsencrypt/live/ваш_домен.com/fullchain.pem; # Шлях до вашого сертифіката
ssl_certificate_key /etc/letsencrypt/live/ваш_домен.com/privkey.pem; # Шлях до вашого приватного ключа
ssl_trusted_certificate /etc/letsencrypt/live/ваш_домен.com/chain.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Створюється Certbot
client_max_body_size 0; # Для завантаження великих файлів, якщо необхідно
location / {
proxy_pass http://127.0.0.1:5000; # Frigate слухає на порту 5000
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900s; # Збільшити таймаут для тривалих з'єднань (відеопотоки)
proxy_send_timeout 900s;
proxy_connect_timeout 900s;
proxy_buffering off; # Вимкнути буферизацію для потокового відео
}
location /ws { # Для WebSocket-з'єднань Frigate
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /api/ws { # Якщо Frigate використовує /api/ws для WebSocket
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Для RTMP-потоків (якщо ви хочете проксіювати їх через Nginx)
# Це вимагатиме модуля Nginx RTMP, що ускладнює встановлення.
# Простіше використовувати прямий доступ до RTMP порту 1935 або веб-інтерфейс Frigate.
}
sudo ln -s /etc/nginx/sites-available/frigate.conf /etc/nginx/sites-enabled/
sudo nginx -t # Перевірити синтаксис
sudo systemctl reload nginx
Тепер Frigate буде доступний за https://ваш_домен.com.
Використання Caddy для спрощеної конфігурації
Caddy — це сучасний веб-сервер з автоматичною підтримкою HTTPS (через Let's Encrypt) з коробки. Він значно простіший у налаштуванні, ніж Nginx, для багатьох сценаріїв.
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y
sudo nano /etc/caddy/Caddyfile
Вставте наступний вміст, замінивши ваш_домен.com на ваш реальний домен:
ваш_домен.com {
reverse_proxy 127.0.0.1:5000 {
header_up Host {host}
header_up X-Real-IP {remote_ip}
header_up X-Forwarded-For {remote_ip}
header_up X-Forwarded-Proto {scheme}
# Збільшити таймаути для потокового відео
transport http {
read_timeout 15m
write_timeout 15m
idle_timeout 15m
}
# Вимкнути буферизацію для WebSocket
websocket
}
}
sudo systemctl reload caddy
Caddy автоматично отримає та оновить SSL-сертифікати. Frigate буде доступний за https://ваш_домен.com.
Обслуговування `Frigate VPS`: бекапи, оновлення та моніторинг
Регулярне обслуговування Frigate VPS є ключем до його довгострокової стабільності та безпеки. Це включає резервне копіювання даних, своєчасні оновлення та моніторинг продуктивності.
Стратегії резервного копіювання даних Frigate
Ваші відеозаписи, знімки та, головне, конфігурація Frigate — цінні дані, які необхідно регулярно бекапити. Використовуйте наступну стратегію:
Приклад скрипта для бекапу конфігурації та бази даних (може бути доданий до cron):
#!/bin/bash
BACKUP_DIR="/root/frigate_backups"
FRIGATE_CONFIG_PATH="/root/frigate/config"
FRIGATE_MEDIA_PATH="/root/frigate/media" # Для бази даних frigate.db
mkdir -p $BACKUP_DIR
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/frigate_config_db_$TIMESTAMP.tar.gz"
# Зупинити Frigate на час бекапу бази даних, щоб уникнути пошкодження
# docker compose stop frigate
# Створити архів конфігурації та бази даних
tar -czf $BACKUP_FILE -C $FRIGATE_CONFIG_PATH . -C $FRIGATE_MEDIA_PATH frigate.db
# docker compose start frigate
# Видалити старі бекапи (наприклад, старші за 7 днів)
find $BACKUP_DIR -name "frigate_config_db_*.tar.gz" -type f -mtime +7 -delete
echo "Frigate config and DB backup created: $BACKUP_FILE"
Процедура оновлення Docker-контейнерів Frigate
Підтримувати Frigate в актуальному стані важливо для отримання нових функцій, виправлень помилок та оновлень безпеки. Завдяки Docker Compose, процес оновлення дуже простий:
cd ~/frigate
docker compose down
docker compose pull
docker compose up -d
Завжди рекомендується перевіряти офіційні примітки до випуску Frigate перед оновленням, оскільки іноді можуть знадобитися зміни в config.yml.
Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Який `VPS-конфіг` під реальне навантаження: рекомендації Valebyte.com
Вибір правильного VPS-конфігу для Frigate — це баланс між вартістю та продуктивністю. На Valebyte.com ми пропонуємо гнучкі тарифи, які можна адаптувати під ваші потреби. Нижче наведено таблицю з рекомендаціями, заснованими на кількості камер та наявності апаратного прискорення.
Таблиця: Оптимальні VPS-конфігурації для різних сценаріїв Frigate
У цій таблиці ми припускаємо використання NVMe-диска та стабільного інтернет-з'єднання на VPS.
| Сценарій використання | Кількість камер (1080p) | vCPU (GHz) | RAM (GB) | NVMe Disk (GB) | Апаратне прискорення | Орієнтовна вартість VPS (USD/міс.) |
|---|---|---|---|---|---|---|
| Базовий моніторинг будинку/офісу | 1-2 | 2 @ 2.5+ | 4 | 100 | CPU (FFmpeg hwaccel) | $5 - $10 |
| Розширений моніторинг | 3-5 | 4 @ 3.0+ | 8 | 200 | CPU (FFmpeg hwaccel) | $10 - $20 |
| Професійний моніторинг (CPU-intensive) | 6-8 | 6-8 @ 3.0+ | 16 | 300+ | CPU (FFmpeg hwaccel) | $20 - $40 |
| Високопродуктивний (з GPU-прискоренням) | 5-10+ | 4 @ 2.5+ | 8-16 | 200+ | NVIDIA GPU (Tesla T4) | Від $50 (залежить від GPU) |
| Архівне сховище (додатково) | Будь-яке | +0 | +0 | 500+ (HDD/SSD) | N/A | +$5 - +$15 (залежить від об'єму) |
Рекомендації Valebyte.com:
Пам'ятайте, що вимоги можуть варіюватися залежно від конкретних моделей камер, бітрейту відеопотоків та складності сцени. Завжди тестуйте та оптимізуйте конфігурацію під свої потреби.
Висновки
Установка Frigate на VPS від Valebyte.com надає надійну, приватну та високопродуктивну платформу для відеоспостереження з детекцією об'єктів. Вибирайте тарифи з NVMe-дисками та достатньою кількістю високочастотних ядер CPU, а за можливості — з апаратним прискоренням GPU, щоб забезпечити максимальну ефективність та масштабованість вашої системи.
Готові обрати сервер?
VPS та виділені сервери в 72+ країнах з миттєвою активацією та повним root-доступом.
Почати зараз →