Add VM config examples and Frigate NVR setup

vm-configs/:
- 100-frigate.conf.example: Frigate VM with Quadro P2200 #1, Coral USB, bays 1-8
- 101.conf.example: GPU VM with Quadro P2200 #2, bays 9-10
- 102.conf.example: Utility VM, bays 11-12

frigate/:
- docker-compose.yml: nvidia runtime + Coral USB passthrough, healthcheck
- config.yml: NVDEC hwaccel (preset-nvidia-h264), Coral USB detector,
  motion-based recording retain, per-object score thresholds

https://claude.ai/code/session_01TxTSnxDjgEVuNztdsWQjMD
This commit is contained in:
Claude
2026-04-24 01:07:21 +00:00
parent c0604be087
commit 273d6191bd
5 changed files with 253 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# Proxmox VM 100 — Frigate NVR
#
# Copy to /etc/pve/qemu-server/100.conf after filling in:
# - hostpci0: real PCI address from gpu-passthrough-setup.sh output
# - scsi1scsi8: real /dev/disk/by-id paths from build-bay-map.sh output
# - net0: real MAC (Proxmox generates one; leave it if creating via UI)
#
# Requirements on the Proxmox host before starting this VM:
# 1. scripts/perc-nonraid.sh — drives in non-RAID mode
# 2. scripts/gpu-passthrough-setup.sh — IOMMU + vfio-pci active, host rebooted
# 3. Coral USB plugged in
agent: 1
bios: ovmf
boot: order=scsi0
cores: 8
cpu: host
machine: q35
memory: 16384
name: frigate
numa: 0
ostype: l26
scsihw: virtio-scsi-single
sockets: 1
# OS disk — on Proxmox local storage, adjust pool name as needed
scsi0: local-lvm:vm-100-disk-0,cache=writeback,size=64G
# Data drives — bays 18, raw disk passthrough
# Fill in by-id paths from build-bay-map.sh
scsi1: /dev/disk/by-id/PLACEHOLDER_BAY1,size=0
scsi2: /dev/disk/by-id/PLACEHOLDER_BAY2,size=0
scsi3: /dev/disk/by-id/PLACEHOLDER_BAY3,size=0
scsi4: /dev/disk/by-id/PLACEHOLDER_BAY4,size=0
scsi5: /dev/disk/by-id/PLACEHOLDER_BAY5,size=0
scsi6: /dev/disk/by-id/PLACEHOLDER_BAY6,size=0
scsi7: /dev/disk/by-id/PLACEHOLDER_BAY7,size=0
scsi8: /dev/disk/by-id/PLACEHOLDER_BAY8,size=0
# Quadro P2200 #1 — GPU passthrough
# Replace XX:00 with real PCI address (e.g. 03:00)
# pcie=1 uses PCIe bus; x-vga=1 passes primary display output
# Proxmox auto-includes the HDMI audio sibling (XX:00.1)
hostpci0: 0000:XX:00,pcie=1,x-vga=1
# Google Coral USB — pass both VID:PID values
# Coral re-enumerates after first inference load: 1a6e:089a → 18d1:9302
usb0: host=1a6e:089a
usb1: host=18d1:9302
# Network
net0: virtio=BC:24:11:00:00:64,bridge=vmbr0,firewall=1
# EFI disk (required for OVMF/UEFI boot with q35 machine)
efidisk0: local-lvm:vm-100-disk-1,efitype=4m,pre-enrolled-keys=0,size=4M
+35
View File
@@ -0,0 +1,35 @@
# Proxmox VM 101 — General purpose with GPU
#
# Copy to /etc/pve/qemu-server/101.conf after filling in:
# - hostpci0: real PCI address of Quadro P2200 #2
# - scsi1scsi2: real /dev/disk/by-id paths for bays 910
agent: 1
bios: ovmf
boot: order=scsi0
cores: 8
cpu: host
machine: q35
memory: 16384
name: vm101
numa: 0
ostype: l26
scsihw: virtio-scsi-single
sockets: 1
# OS disk
scsi0: local-lvm:vm-101-disk-0,cache=writeback,size=64G
# Data drives — bays 910
scsi1: /dev/disk/by-id/PLACEHOLDER_BAY9,size=0
scsi2: /dev/disk/by-id/PLACEHOLDER_BAY10,size=0
# Quadro P2200 #2
# Replace XX:00 with real PCI address from gpu-passthrough-setup.sh output
hostpci0: 0000:XX:00,pcie=1,x-vga=1
# Network
net0: virtio=BC:24:11:00:00:65,bridge=vmbr0,firewall=1
# EFI disk
efidisk0: local-lvm:vm-101-disk-1,efitype=4m,pre-enrolled-keys=0,size=4M
+30
View File
@@ -0,0 +1,30 @@
# Proxmox VM 102 — Storage / utility VM
#
# Copy to /etc/pve/qemu-server/102.conf after filling in:
# - scsi1scsi2: real /dev/disk/by-id paths for bays 1112
agent: 1
bios: ovmf
boot: order=scsi0
cores: 4
cpu: host
machine: q35
memory: 8192
name: vm102
numa: 0
ostype: l26
scsihw: virtio-scsi-single
sockets: 1
# OS disk
scsi0: local-lvm:vm-102-disk-0,cache=writeback,size=32G
# Data drives — bays 1112
scsi1: /dev/disk/by-id/PLACEHOLDER_BAY11,size=0
scsi2: /dev/disk/by-id/PLACEHOLDER_BAY12,size=0
# Network
net0: virtio=BC:24:11:00:00:66,bridge=vmbr0,firewall=1
# EFI disk
efidisk0: local-lvm:vm-102-disk-1,efitype=4m,pre-enrolled-keys=0,size=4M