如何在 PVE 中安裝 Frigate

4 min

前提

首先這篇文章已默認你會 PVE 等基礎操作,並了解 Frigate 是何物,不太琢磨於非安裝相關介紹。

Why not Helper Script

雖然 Helper Script 的腳本很強大,但我自己試驗過後發現,透過腳本一鍵安裝的 Frigate 一啟動 docker 就會無限重啟,大概是有硬體相關的沒有設定好,所以我這篇文章就乾脆自己建置 Frigate,各位也可以試試看 Helper Script 沒問題就直接用了。

安裝

建立 LXC

在 PVE 的網頁中點選建立 LXC 容器,並且設定好主機名稱、root 密碼 建立 LXC 容器

範本看你要什麼,我這邊就選用 Debian 13 來當作 base 選擇範本

硬碟大小也是看你自己想給多少,我自己是給 20G 設定硬碟大小

CPU 我自己給 4 核心 設定 CPU 核心數

記憶體我給 4G RAM 設定 Ram

網路的話,我自己是 IPv4 用靜態,IPv6 用 DHCP 設定網路 IP

DNS 不動,最後一步 不勾選 建立完成後開機,因為後續還要設定東西。 確認步驟,按完成

硬體直通

先到 PVE 的 Command Line 畫面,我們要查一下我們顯卡的位置

以下指令是查詢顯卡的位置

ls -l /dev/dri

下面是查詢對應群組的 GID

getnet group ??? ???

像我查出的對應顯卡是 card1renderD128 對應的群組是 videorender,所以得到以下: 查詢顯卡GID

可以看到上圖,我所對應的就是

  • video: GID 44
  • render: GID 993

接著回到剛剛新增的 LXC 容器上,點選 資源 -> 增加 -> 裝置透通

硬體直通
硬體直通

透過小視窗新增兩筆硬體進去: 新增硬體

最後的資源列表就會顯示這樣: 最後的資源列表

OS 初始化

進到 LXC Command Line 透過以下快速新增環境所需:

apt-get update && apt-get install -y curl && \
curl -fsSL https://get.docker.com -o get-docker.sh && \
sh get-docker.sh && \
apt-get install -y docker-compose-plugin && \
docker compose version

YAML

接著準備 Docker Compose YAML 檔案

services:
  frigate:
    container_name: frigate
    privileged: false # 在 LXC 內通常不需要 true,除非遇到權限問題
    group_add:
      - "44"
      - "993"
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:0.17.0
    shm_size: "512mb" # 根據攝影機數量調整,通常每路 1080p 需約 30mb
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card1:/dev/dri/card1
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config
      - ./storage:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "8971:8971" # Web UI (HTTPS)
      - "5000:5000" # Web UI (HTTP)
      - "1935:1935" # RTMP
      - "1984:1984" # go2rtc API / ONVIF Server (必須有這一行)
      - "8554:8554" # go2rtc RTSP restream
      - "8555:8555/tcp" # go2rtc WebRTC
      - "8555:8555/udp" # go2rtc WebRTC
    environment:
      FRIGATE_RTSP_USER: CHANGE_TO_YOUR_ACCOUNT
      FRIGATE_RTSP_PASSWORD: CHANGE_TO_YOUR_PASSWORD
      LIBVA_DRIVER_NAME: "iHD" # 可以查看自己的顯示卡是要配什麼驅動,因為我是內顯所以用 iHD,但內顯也有分,請上網查自己的
      TZ: Asia/Taipei

結語

自己試了好多次,踩了蠻多的坑,紀錄一下最後可以運行的方式。

Comments

Loading comments...