• 1 Post
  • 28 Comments
Joined 1 year ago
cake
Cake day: August 14th, 2025

help-circle
  • A while ago I made my first attempt at setting up a SSO for some of the things I host. I figured out things that have built in support, like Immich, but struggled with getting it done through Proxy for things that don’t have baked in OAuth or OIDC support.

    I revisited it yesterday and figured everything out so I’m happy about that. Navidrome was one of the more difficult ones to figure out because I need SSO authentication for the web-ui, but username/password for the API. That was actually pretty easy once I wrapped my head around it.

    I picked Authentik based on general positive things I’ve heard about it, and I use Nginx Proxy Manager for reverse proxy.












  • I don’t have an external GPU either, just the onboard Intel graphics is what I use now. Also worth mentioning to use integrated graphics your Docker Compose needs:

    devices:
          - /dev/dri/renderD128:/dev/dri/renderD128
    

    I’m not using substreams. I have 2 cameras and the motion detection doesn’t stress the CPU too much. If I add more cameras I’d consider using substreams for motion detection to reduce the load.

    Your still frames in Home Assistant are the exact problem I was having. If your cameras really do need go2rtc to reduce connections (my wifi camera doesn’t seem to care), you might try changing your Docker container to network_mode: host and see if that fixes it.

    Here’s my config. Most of the notations were put there by Frigate and I’ve de-identified everything. Notice at the bottom go2rtc is all commented out, so if I want to add it back in I can just remove the #s. Hope it helps.

    config.yaml
    mqtt:
      enabled: true
      host: 
      port: 1883
      topic_prefix: frigate
      client_id: frigate
      user: mqtt username
      password: mqtt password
      stats_interval: 60
      qos: 0
    
    cameras:     # No cameras defined, UI wizard should be used
      baby_cam:
        enabled: true
        friendly_name: Baby Cam
        ffmpeg:
          inputs:
            - path: 
                rtsp://user:pw@:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
              roles:
                - detect
                - record
          hwaccel_args: preset-vaapi
        detect:
          enabled: true # <---- disable detection until you have a working camera feed
          width: 1920 # <---- update for your camera's resolution
          height: 1080 # <---- update for your camera's resolution
        record:
          enabled: true
          continuous:
            days: 150
          sync_recordings: true
          alerts:
            retain:
              days: 150
              mode: all
          detections:
            retain:
              days: 150
              mode: all
        snapshots:
          enabled: true
        motion:
          mask: 0.691,0.015,0.693,0.089,0.965,0.093,0.962,0.019
          threshold: 14
          contour_area: 20
          improve_contrast: true
        objects:
          track:
            - person
            - cat
            - dog
            - toothbrush
            - train
    
      front_cam:
        enabled: true
        friendly_name: Front Cam
        ffmpeg:
          inputs:
            - path: 
                rtsp://user:pw@:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
              roles:
                - detect
                - record
          hwaccel_args: preset-vaapi
        detect:
          enabled: true # <---- disable detection until you have a working camera feed
          width: 2688 # <---- update for your camera's resolution
          height: 1512 # <---- update for your camera's resolution
        record:
          enabled: true
          continuous:
            days: 150
          sync_recordings: true
          alerts:
            retain:
              days: 150
              mode: all
          detections:
            retain:
              days: 150
              mode: all
        snapshots:
          enabled: true
        motion:
          mask:
            - 0.765,0.003,0.765,0.047,0.996,0.048,0.992,0.002
            - 0.627,0.998,0.619,0.853,0.649,0.763,0.713,0.69,0.767,0.676,0.819,0.707,0.839,0.766,0.869,0.825,0.889,0.87,0.89,0.956,0.882,1
            - 0.29,0,0.305,0.252,0.786,0.379,1,0.496,0.962,0.237,0.925,0.114,0.879,0
            - 0,0,0,0.33,0.295,0.259,0.289,0
          threshold: 30
          contour_area: 10
          improve_contrast: true
        objects:
          track:
            - person
            - cat
            - dog
            - car
            - bicycle
            - motorcycle
            - airplane
            - boat
            - bird
            - horse
            - sheep
            - cow
            - elephant
            - bear
            - zebra
            - giraffe
            - skis
            - sports ball
            - kite
            - baseball bat
            - skateboard
            - surfboard
            - tennis racket
          filters:
            car:
              mask:
                - 0.308,0.254,0.516,0.363,0.69,0.445,0.769,0.522,0.903,0.614,1,0.507,1,0,0.294,0.003
                - 0,0.381,0.29,0.377,0.284,0,0,0
        zones:
          Main_Zone:
            coordinates: 0,0,0,1,1,1,1,0
            loitering_time: 0
    
    detectors: # <---- add detectors
      ov:
        type: openvino
        device: GPU
    
    model:
      model_type: yolo-generic
      width: 320 # <--- should match the imgsize set during model export
      height: 320 # <--- should match the imgsize set during model export
      input_tensor: nchw
      input_dtype: float
      path: /config/model_cache/yolov9-t-320.onnx
      labelmap_path: /labelmap/coco-80.txt
    
    version: 0.17-0
    
    
    #go2rtc:
    #  streams:
    #    front_cam:
    #      - ffmpeg:rtsp://user:pw@:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    #    baby_cam:
    #      - ffmpeg:rtsp://user:pw@:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    





  • You seem a bit more network savvy than me. All I could figure is the Frigate integration (also HACS for me) talks to Frigate and asks it where to get the video from. If go2rtc is enabled in Frigate, the integration tries to stream from go2rtc. Without my Docker stack being in host network mode, it wouldn’t work for me.

    With no go2rtc, the Frigate integration asks Frigate where to get the stream, and it’s told to get it from the camera from what I can tell.

    All just guesses on my end. Hopefully I don’t sound too sure of myself because I’m not really sure.