Setting up Frigate NVR using jlmkr

Hi,

so I just followed this tutorial and set up jlmkr, dockge and jellyfin.
Now I want to get Frigate running. I want to create a new jlmkr jail
and set up Frigate there. If possible, I would like to omit dockge and
any other layers entirely - I want it to be as close to the host as possible
(easier to pass through devices, eg. GPU, Google Coral).
There is a docker compose installation of frigate and there is some
talk about docker in the jlmkr github (not dockge) but I just don’t know
how to set it up.

My Specs:
AMD Ryzen 7 7700
32GB DDR5 RAM
500GB NVME Boot SSD
4x4TB RAIDZ1 Pool

Thanks

Well, just skip installing Dockge if you want.

You can manually manage compose in the /opt/stacks directory. Or any directory.

Or skip that too and just have a frigate directory with a docker-compose.yml file in it, then cd to that directory and run docker compose up -d

I would recommend bind mounting your frigate data and config/stack so that the jail itself is disposable.

1 Like

Thanks!!!
The difference is insane - this works so much better than the HomeAssistant add-on
I was running previously! It’s not that the HA add-on is bad or anything; it’s just that my
setup was janky at best. I was running TrueNAS Core, a Ubuntu VM, and in there a
Home Assistant VM. It was super hard even to get that working, and even when it finally worked, the speed was anything but representative of my setup’s capabilities.

Now, after moving to jlmkr (docker), everything works like a charm! I finally don’t get the ‘no frames received’ screen, and it’s running at the full 5fps detection speed!
I haven’t tested the Google Coral yet, but the compose seems to have an option for that.

Anyways, the whole setup looked like this:

  • I started with the docker template from @Stux’s tutorial (with the bridge setup)
  • I created a frigate/config and frigate/data and `bind-mount’ed it to
  • /mnt/frigate/config and /media/frigate respectively
  • I set up a static IP like in @Stux’s tutorial
  • Then I set up the docker-compose.yml and config.yml using the templates from the frigate website
  • Then I ran `docker compose up -d’, and it worked!

Thanks, @Stux, for the help, and I hope someone finds this useful

1 Like

Hi,
I just got my Google Coral, and I now want to use it for Frigate.
Unfortunately, even when I forwarded it as a device (or volume, as I found online), it is not initializing. When I run lsusb in the jail shell, it recognizes the device, so to my knowledge, it is passing it through to Frigate as per the docker config. I tried three
different cables, USB ports, and powering the Coral through a powered USB-C hub.
No matter what I try, it always recognizes the TPU but never initializes it.
What am I doing wrong?

lsusb results:
1a6e:089a Global Unichip Corp.

what’s expected after initializing:
18d1:9302 Google Inc.

docker-compose.yml:

version: "3.9"
services:
  frigate:
    container_name: frigate
    privileged: true # this may not be necessary for all setups
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "128mb" # update for your cameras based on calculation above
    devices:
      - /dev/bus/usb:/dev/bus/usb  # Passes the USB Coral, needs to be modified for other versions
      #- /dev/apex_0:/dev/apex_0    # Passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux
      #- /dev/video11:/dev/video11  # For Raspberry Pi 4B
      #- /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, needs to be updated for your hardware
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /path/to/your/config:/config
      - /path/to/your/storage:/media/frigate
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "8554:8554" # RTSP feeds
      - "8555:8555/tcp" # WebRTC over tcp
      - "8555:8555/udp" # WebRTC over udp
    environment:
      FRIGATE_RTSP_PASSWORD: "password"

frigate config:

mqtt:
  enabled: false

** camera config **

snapshots:
  enabled: true
  timestamp: true
  bounding_box: true
  retain:
    default: 14
record:
  enabled: true
  retain:
    days: 2
    mode: all
  events:
    retain:
      default: 10

ui:
  live_mode: webrtc

detectors:
  coral:
    type: edgetpu
    device: usb

Thanks