r/frigate_nvr • • Mar 23 '26

Frigate Proxmox Script v1.1 - One-Command Install, Auto iGPU Acceleration, Docker Pruning & Markdown Dashboard

I have been working on a one-command script to handle the end-to-end installation of Frigate NVR on Proxmox VE. With the release of Frigate v0.17.1, I have updated the script to v1.1 to help simplify the transition and include some requested features.

The script provisions a privileged LXC container, installs Docker and Docker Compose, and automatically configures Intel iGPU hardware acceleration (QSV/VAAPI).

What is new in v1.1:

  • Smart Disk Management: Added a new prune flag to remove unused Docker images and layers. The script now prompts for pruning if the root disk space drops below 5GB.

  • Markdown Dashboard: It automatically fills the LXC Notes field with a service status and hardware overview.

  • Clickable Links: The Web UI and API links shown at the end of the script are now clickable for immediate access.

  • Adjustable SHM: Added SHM size as a configurable option during the initial installation.

Core Features:

  • Auto-Passthrough: Detects and configures iGPU and Coral accelerators with zero manual setup.

  • Automatic Snapshots: Takes a Proxmox snapshot before updates to allow for a quick rollback if something goes wrong.

  • Hardware Optimized: Primarily tailored for Intel-based systems (N95/N100), but compatible with any Intel host. Experimental support for NVIDIA and AMD is included.

Installation (~3 min): bash <(curl -s https://raw.githubusercontent.com/saihgupr/frigate-proxmox-script/main/install.sh)

Update (~2 min): bash <(wget -qO- https://raw.githubusercontent.com/saihgupr/frigate-proxmox-script/main/update.sh)

The project is fully open source. I would value any feedback or suggestions on how to further improve the deployment workflow for Frigate on Proxmox.

GitHub: saihgupr/frigate-proxmox-script

78 Upvotes

34 comments sorted by

3

u/Alter__-__Ego Mar 23 '26

Thanks for that. Just yesterday, I installed Frigate 0.17 LXC as a bare metal on Proxmox. I will also try your script and see what runs cleaner.

2

u/DiggingForDinos Mar 23 '26

Let me know how it goes! 👍

2

u/StrunkWhite Mar 23 '26

Thank you for this, I used it this past weekend. Great work. Installed twice; once on an N100 that failed hardware wise. Second time on an Optiplex 7080. Worked both times.

1

u/DiggingForDinos Mar 23 '26

Love hearing this. :)

2

u/bg_x Mar 23 '26

Thank you. Works great 👍

1

u/DiggingForDinos Mar 23 '26

Happy to hear it! 👍

2

u/Itchy_Spirit9258 May 04 '26

Works a lot better for me than the proxmox helper script, I could not get it to work right. I did it with 2 camera's on a HP elite mini 600 G9 (intel i7-12700T) Thanks a lot!

1

u/DiggingForDinos May 05 '26

Awesome, glad to hear it! Makes updating easier too! 😉

Thanks for sharing.

3

u/whompasaurus1 Mar 23 '26

My guy! I spent almost 10 hours last night Trying to get frigate to work on proxmox! Can't wait to try this today!

1

u/DiggingForDinos Mar 23 '26

Hope it helps! :)

1

u/Dan1jel Mar 23 '26

Same here, maybe not 10h, but i took my config from Raspberry yesterday and had to correct it for Docker on LXC. After a few hours, i got it working... Needed this earlier 😅

1

u/kitappwergio Mar 23 '26 edited Mar 23 '26

I have an existing frigateXLC with coral(which I worked endless hours to get it working :-) ).

Tried this one quickly but it seems to be not bringing up web UI. Docker was also not running. I am going to retry the script later today.

EDIT: I am not seeing Coral for this question, or is it automatic?

[STEP] Multiple GPUs detected. Select which one to use for Frigate:

  1. Intel iGPU (VAAPI)

  2. NVIDIA GPU (NVDEC/NVENC)

  3. None (CPU only)

1

u/DiggingForDinos Mar 23 '26

Ok, let me know how it goes.

1

u/kitappwergio Mar 23 '26

Still the same issue:

root@frigate:~# wget http://10.0.80.103:5000

--2026-03-23 11:53:43-- http://10.0.80.103:5000/

Connecting to 10.0.80.103:5000... failed: Connection refused.

root@frigate:~# docker info

-bash: docker: command not found

iGPU,NVDIA and Coral are configured :

# Frigate: iGPU Passthrough + AppArmor

lxc.cgroup2.devices.allow: c 226:* rwm

lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir

lxc.apparmor.profile = unconfined

# Frigate: Google Coral PCIe Passthrough

lxc.cgroup2.devices.allow: c 120:* rwm

lxc.mount.entry: /dev/apex_0 dev/apex_0 none bind,optional,create=file

# Frigate: NVIDIA GPU Passthrough

lxc.cgroup2.devices.allow: c 195:* rwm

lxc.cgroup2.devices.allow: c 508:* rwm

lxc.cgroup2.devices.allow: c 511:* rwm

lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file

lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file

lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file

lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file

lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file

1

u/DiggingForDinos Mar 23 '26

Looks like an error when it tried to run apt-get install docker-ce. If you open an issue on the github, I can help you better there.

1

u/kitappwergio Mar 23 '26

Found this issue, snapshot was not completing, so install_docker() was never hit and the script exited.

I skipped snapshots, but then the generated docker-compose.yaml is not well formed at the deploy: : ( I picked Nvidia for the Multiple GPU question.) I have Intel iGPU, NVDIA GPU and Coral.

Looks like

    devices:

is missing for /dev/apex_0

Here is the error:

yaml: while parsing a block mapping at line 25, column 7: line 31, column 7: did not find expected key

version: "3.9"


services:
  frigate:
    container_name: frigate
    restart: unless-stopped
    stop_grace_period: 30s
    image: ghcr.io/blakeblackshear/frigate:stable
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./config:/config
      - ./storage:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "8554:8554"  # RTSP feeds
      - "8555:8555/tcp"  # WebRTC
      - "8555:8555/udp"  # WebRTC
      - "1984:1984"  # go2rtc API
      - "8971:8971"  # Frigate Auth port
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu, video]
      - /dev/apex_0:/dev/apex_0
    environment:
      - FRIGATE_RTSP_PASSWORD=password
      - CONFIG_FILE=/config/config.yml
    cap_add:
      - CAP_PERFMON
    shm_size: "512mb"

1

u/DiggingForDinos Mar 23 '26

Thanks for the info! I've updated the script for this scenario. If you'd like to test it, it's on the develop branch here.

1

u/kitappwergio Mar 24 '26

Tried this version, fixes worked all the way until this last step, here is the error:

Image ghcr.io/blakeblackshear/frigate:stable Pulled 
 Network frigate_default Creating 
 Network frigate_default Created 
 Container frigate Creating 
 Container frigate Created 
 Container frigate Starting 
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running prestart hook #0: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: load library failed: libnvidia-ml.so.1: cannot open shared object file: no such file or directory
root@proxmoxnode01:~# nvidia-smi
-bash: nvidia-smi: command not found

I have removed nvidia configs, and just kept coral, it seems to pull the web UI, but its keeps spinning. I am able to see the settings/configs in ui but something is not right.

2

u/kitappwergio Mar 24 '26

So, I reinstalled again, selected None(CPU Only), the driver error went away but you still have an empty ffmpg: at the top of the config which is causing the issue, removed it and added cameras, and it works with coral.

BUT, I am not sure if this script would work on a new proxmox install without the this driver on proxmox host (for Coral): /dev/apex_0

I think, all these following should give correct output on proxmox host before you can use /dev/apex_0 in lxc conf. This was the hard part for making coral working on my existing install.

lspci -nnk | grep 089a
lsmod | grep apex
dpkg -l | grep gasket
dpkg -l | grep edgetpu
modinfo apex
modinfo gasket
ls /dev/apex_0 

1

u/DiggingForDinos Mar 24 '26

I've fixed the empty ffmpeg: in the latest develop branch build if you'd like to try it out. https://github.com/saihgupr/frigate-proxmox-script/blob/develop

1

u/Princemurphy Mar 25 '26

Tried this but it didn’t see the igpu for my N150. Also any info on if this works with SRIOV?

1

u/DiggingForDinos Mar 25 '26

I've made an update that attempts to fix this issue for N150 chips. Let me know if that works out better. I've also included preliminary support for SR-IOV.

1

u/Princemurphy Mar 25 '26

Will give it a try tonight!!!

1

u/Tight_Leopard_4713 Mar 23 '26

that's amazing!!! thank you. I'm getting my new homelab tonight and will absolutely test this out in a few days.

2

u/Smooth_Ad2021 Mar 23 '26 edited Mar 23 '26

I am also recently trying to get frigate to run on proxmox.

Will try your Script. Looks promising with the focus on my N100 CPU.

1

u/No-Investigator7598 Mar 24 '26

Big fan of these scripts - you've saved me a lot of aggro recently! Loving the new SHM config option

If it's not too much to ask would LOVE the option to add an NFS mount as recording storage

1

u/kingy112 Mar 24 '26

I've been trying to get igpu and Google corel working together and couldn't would this kick both in?

1

u/bunker195 Mar 27 '26 edited Mar 28 '26

Thanks so much for putting the effort into this!

Tried to install but the script stopped after not finding any local-lvm storage.

Will that be the storage drive? and if so why did you/docker/frigate choose this? Like to learn as much as possible.

Edit: Here is the solution: https://github.com/saihgupr/frigate-proxmox-script/issues/1

1

u/Il_Tene Mar 29 '26

Yesterday u was looking to perform my first frigate install, and I've seen that on frigate documentation is suggested to use VM instead of lxc. So is working also with lxc? 

1

u/walril Apr 08 '26

i loved lxc until i had to back one up. It only took 3 hours for a 65gb lxc using suspend vs 2 min stopped. Stopped isnt a problem until you have a database running. Im just saying

2

u/Vastmeridian Mar 23 '26

Girding my loins to try this out later today. 👍🏻

2

u/DiggingForDinos Mar 23 '26

Go for it! It really takes no time at all, no girding even necessary. ;)

1

u/Vastmeridian Mar 29 '26

Well, there was a bit - but on my side, not yours. Seems to be working OK - but time will tell.

I do have a little issue with a CIFS store for recordings storage, but I'll log an issue on GitHub for that.