如何在 PVE 中安裝 Frigate
4 min
前提
首先這篇文章已默認你會 PVE 等基礎操作,並了解 Frigate 是何物,不太琢磨於非安裝相關介紹。
Why not Helper Script
雖然 Helper Script 的腳本很強大,但我自己試驗過後發現,透過腳本一鍵安裝的 Frigate 一啟動 docker 就會無限重啟,大概是有硬體相關的沒有設定好,所以我這篇文章就乾脆自己建置 Frigate,各位也可以試試看 Helper Script 沒問題就直接用了。
安裝
建立 LXC
在 PVE 的網頁中點選建立 LXC 容器,並且設定好主機名稱、root 密碼 
範本看你要什麼,我這邊就選用 Debian 13 來當作 base 
硬碟大小也是看你自己想給多少,我自己是給 20G 
CPU 我自己給 4 核心 
記憶體我給 4G RAM 
網路的話,我自己是 IPv4 用靜態,IPv6 用 DHCP 
DNS 不動,最後一步 不勾選 建立完成後開機,因為後續還要設定東西。 
硬體直通
先到 PVE 的 Command Line 畫面,我們要查一下我們顯卡的位置
以下指令是查詢顯卡的位置
ls -l /dev/dri下面是查詢對應群組的 GID
getnet group ??? ???像我查出的對應顯卡是 card1 、 renderD128 對應的群組是 video、render,所以得到以下: 
可以看到上圖,我所對應的就是
- 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 versionYAML
接著準備 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...