この記事のポイント
- Frigate NVR(バージョン
0.17.1)は Docker 1コマンドで Ubuntu 上に立ち上がり、IPカメラの映像をローカルで AI 物体検知しながら録画できます - デフォルトの SSD 検知モデルは
91 クラス(COCO ラベルマップ)に対応し、人物・車両・自転車などを自動認識します - 設定ファイル(
config.yml)で RTSP カメラを追加するだけで、クラウドサービスなしにローカル防犯カメラシステムが完成します - 本記事は Ubuntu 24.04 LTS 上の Docker で Frigate を実際に起動し、WebUI の画面を実撮影して確認しています
「防犯カメラを設置したいけど、映像をクラウドに送りたくない」「月額課金なしでAI検知を使いたい」――そんなニーズに応えるのが Frigate NVR(Network Video Recorder)です。
Frigate は、RTSPカメラの映像ストリームをローカルで受け取り、TFLite(TensorFlow Lite)ベースのAIモデルでリアルタイムに物体を検知、イベント録画や通知を自動化するオープンソースのNVRです。映像はすべて自分のサーバーに保管され、外部に送信されません。
本記事では Ubuntu 24.04 LTS 環境に Docker を使って Frigate をインストールし、WebUI を実際に動かした画面をお見せします。RTSP カメラがなくても設定ファイルの作り方は変わらないので、まず環境を作って理解してから実機カメラを接続するという進め方でも問題ありません。
動作確認済み環境
Ubuntu 24.04.4 LTS (Noble Numbat)・Docker Engine 29.1.3・Frigate 0.17.1-416a9b7
※ Coral TPU・NVIDIA GPU なしの純 CPU 構成で検証しています。GPU を積んだ環境ではより高速な検知が可能です。
目次
- Frigate NVR とは何ができるのか
- Docker のインストール(Ubuntu 24.04)
- Frigate のセットアップ
- WebUI に初回アクセスする
- カメラを追加する(config.yml)
- 検知イベントと録画を確認する
- よくあるエラーと解決策
- まとめ
Frigate NVR とは何ができるのか
Frigate は Home Assistant エコシステムから生まれたセルフホスト型 NVR で、以下の特徴を持ちます。
- ローカル完結のAI物体検知:TFLite + COCO SSD モデルが映像フレームをリアルタイム解析。person・car・bicycle など 91 クラスを認識できます
- イベント録画:検知イベントの前後 5 秒を自動保存。常時録画も設定で有効化できます
- WebUI:ブラウザからカメラ映像・イベント一覧・設定ファイル編集が可能
- Google Coral / GPU 対応:CPU 検知器のほか、Coral USB アクセラレータや NVIDIA GPU による高速推論が可能

実際に Docker コンテナ内を確認したところ、以下のコンポーネントで動作していることがわかりました。

Docker のインストール(Ubuntu 24.04)
Frigate は Docker イメージで配布されているため、まず Docker Engine を Ubuntu に入れます。
手順1:システムを更新してリポジトリ依存を入れる
Hit:1 http://jp.archive.ubuntu.com/ubuntu noble InRelease
…
$ sudo apt install -y ca-certificates curl
Reading package lists… Done
The following NEW packages will be installed:
ca-certificates curl
curl 8.5.0-2ubuntu10.9 がインストールされます(Ubuntu 24.04 実測)
手順2:Docker の公式 GPG キーを追加してリポジトリを登録する
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
$ sudo chmod a+r /etc/apt/keyrings/docker.asc
$ echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo “$VERSION_CODENAME”) stable” \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
手順3:Docker Engine をインストールする
$ sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
Reading package lists… Done
…
$ docker –version
Docker version 29.1.3, build …
$ sudo usermod -aG docker $USER
(再ログイン後、sudo なしで docker コマンドが使えるようになります)
注意
sudo usermod -aG docker $USER を実行した後は、一度ログアウトして再接続しないと反映されません。VPS の場合は SSH を切断して再接続してください。
Frigate のセットアップ
Docker が動いたら、Frigate 用のディレクトリと設定ファイルを作ります。
手順1:ディレクトリを作成する
$ cd ~/frigate
$ ls
config storage
手順2:最小構成の config.yml を作成する
Frigate は起動時に /config/config.yml を必ず読みます。まずはカメラなし・MQTT なしの最小構成で動作を確認しましょう。
mqtt:
enabled: false
cameras: {}
EOF
$ cat config/config.yml
mqtt:
enabled: false
cameras: {}
手順3:docker-compose.yml を作成する
Frigate は --shm-size(共有メモリ)が必要で、カメラ 1 台あたり約 114 MiB を使います。まず 64 MiB で起動確認します。
version: “3.9”
services:
frigate:
container_name: frigate
privileged: true
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: “128mb”
volumes:
– ./config:/config
– ./storage:/media/frigate
– /etc/localtime:/etc/localtime:ro
ports:
– “5000:5000”
environment:
FRIGATE_RTSP_PASSWORD: “yourpassword”
EOF
手順4:Frigate を起動する
[+] Running 1/1
✔ Container frigate Started
$ docker compose logs -f
frigate | [INFO] Starting NGINX…
frigate | [INFO] No TLS certificate found. Generating a self signed certificate…
frigate | [INFO] Preparing Frigate…
(30〜60秒ほどで「Frigate is running」と表示されます)
起動確認はバージョン API で行えます。
0.17.1-416a9b7
WebUI に初回アクセスする
ブラウザで http://<サーバーIP>:5000 にアクセスします。Frigate 0.17.1 から認証が有効化されているため、初回ログイン画面が表示されます。

ログイン後はカメラ一覧(Cameras)が表示されます。最小構成ではカメラが 0 台のため空ですが、WebUI 自体は正常に動作しています。

注意:初期パスワードの設定
初回ログイン時は admin アカウントのパスワードを自分で設定します。コンテナログ(docker compose logs frigate)に初期認証情報が表示されますので確認してください。
カメラを追加する(config.yml)
RTSPカメラを追加するには config/config.yml を編集します。Frigate の WebUI から直接 YAML を編集することもできます。

①カメラを config.yml に追加する
以下は玄関カメラ(front_door)を追加する例です。rtsp:// の URL は実際のカメラの RTSP ストリームアドレスに置き換えてください。
mqtt:
enabled: false
cameras:
front_door: # カメラの識別名(任意)
ffmpeg:
inputs:
- path: rtsp://192.168.1.100:554/stream
roles:
- detect # 物体検知用ストリーム
- record # 録画用ストリーム
detect:
enabled: true
width: 1280
height: 720
fps: 5 # 検知フレームレート(5fps で十分)
record:
enabled: true
retain:
days: 7 # イベント録画を 7 日保持
snapshots:
enabled: true # 検知時にスナップショットを保存
設定を保存したらコンテナを再起動します。
[+] Restarting 1/1
✔ Container frigate Started
②検知対象のオブジェクトを変更する
デフォルトでは person(人物)のみを追跡します。API で確認すると以下のようになっています。
track: [‘person’]
車両や犬なども検知したい場合は config.yml の objects セクションに追加します。
objects:
track:
- person
- car
- dog
- bicycle

検知イベントと録画を確認する
カメラが接続され物体が検知されると、WebUI の「Events」画面にイベントが積み上がっていきます。クリップ映像・スナップショット画像もここから確認できます。

起動直後のリソース使用量は 約 524 MiB(CPU 使用率 0.6%)でした。カメラを追加するとメモリ使用量は増えますが、1〜2 台程度なら 1 GB RAM のサーバーでも動作します。
Birdseye(全カメラ統合ビュー)について
- Frigate には複数カメラの映像を 1 画面に合成する Birdseye 機能があります
- デフォルトは
mode: objects(検知イベントがあるカメラのみ表示) http://<IP>:5000/birdseyeでアクセスできます- 解像度は 1280×720、MPEG-1 ストリームで WebUI に配信されます
よくあるエラーと解決策
①「/dev/shm: No space left on device」が出る
共有メモリが不足しています。docker-compose.yml の shm_size を増やしてください。カメラ 1 台あたり最低 114 MiB 必要です。
shm_size: "256mb" # カメラ 2 台なら 256mb 以上に
②カメラ映像が「Failed to connect」になる
RTSP の URL が間違っているか、ファイアウォールがポートを塞いでいます。まず ffmpeg で直接接続テストをします。
-rtsp_transport tcp -i rtsp://192.168.1.100:554/stream \
-frames:v 1 /tmp/test.jpg
…
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 …
(エラーなく frame が取れれば URL は正しい)
③「Address already in use: 5000」が出てコンテナが起動しない
ポート 5000 が別のプロセスに使われています。空きポートに変更します。
ports:
- "5001:5000" # ホスト側を 5001 に変更
④WebUI にアクセスできない(VPS の場合)
UFW ファイアウォールがポートを塞いでいる可能性があります。
Rule added
$ sudo ufw status
Status: active
5000/tcp ALLOW Anywhere
セキュリティの注意
Frigate の WebUI をインターネットに直接公開するのは推奨しません。自宅ネットワーク内(LAN)でのみ使うか、Tailscale や WireGuard などの VPN 越しにアクセスする構成が安全です。
まとめ
今回は Ubuntu 24.04 LTS + Docker で Frigate NVR 0.17.1 を構築し、WebUI を実際に動かして確認しました。
- Frigate は Docker 1コマンドで起動でき、
config.ymlでカメラを追加するだけで AI 防犯カメラシステムが完成します - デフォルトの CPU 検知器でも 91 クラスの物体を認識でき、推論速度は約 10 ms/フレームです
- 起動直後のメモリ使用量は約 524 MiB。1 GB RAM の VPS でも動作します
- 映像データはすべてローカルに保存され、クラウドに送信されません
- Google Coral や NVIDIA GPU を追加するとリアルタイム検知性能が大きく向上します
VPS でサーバーを動かしたい方は、Vultr の東京リージョンを使うと国内から遅延なくアクセスできます。まず 1 GB RAM の最安プランで試してみてください。
Frigate と合わせて Home Assistant を連携させると、検知イベントをトリガーにスマートホームの自動化(照明点灯・スマートフォン通知など)が可能になります。興味のある方はも参考にしてみてください。


コメント