From 3dc9555920052af176a54062761d6856541a6992 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sun, 18 Jan 2026 17:59:17 -0800 Subject: [PATCH] wip --- modules/nixos/services/frigate/default.nix | 59 +++++++++++++++------- secrets/frigate_env.age | 21 ++++---- 2 files changed, 52 insertions(+), 28 deletions(-) diff --git a/modules/nixos/services/frigate/default.nix b/modules/nixos/services/frigate/default.nix index a19e0c7..e3127d3 100644 --- a/modules/nixos/services/frigate/default.nix +++ b/modules/nixos/services/frigate/default.nix @@ -46,20 +46,43 @@ in }; config = lib.mkIf cfg.enable { + age.secrets.frigate_mqtt = { + file = ../../../../secrets/frigate_env.age; + }; age.secrets.frigate_env = { file = ../../../../secrets/frigate_env.age; owner = "frigate"; }; - # systemd.services.frigate.preStart = setEnvVars; - # systemd.services.frigate.serviceConfig = { - # EnvironmentFile = config.age.secrets.frigate_env.path; - # }; + systemd.services.frigate.serviceConfig = { + EnvironmentFile = config.age.secrets.frigate_env.path; + }; services.frigate.preCheckConfig = '' - ls ${config.age.secrets.frigate_env.path} - source ${config.age.secrets.frigate_env.path} + export FRIGATE_MQTT_PASSWORD="dummy value" + export FRIGATE_VIDEO_DOORBELL_USERNAME="dummy value" + export FRIGATE_VIDEO_DOORBELL_PASSWORD="dummy value" ''; + services.go2rtc = { + enable = true; + settings = { + webrtc.candidates = [ + "192.168.113.69:8555" + # "gospel:8555" + ]; + streams = { + video_doorbell = [ + "ffmpeg:http://192.168.113.91/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password=nUmPFE3*dDOVJ$O1#video=copy#audio=copy#audio=opus" + "rtsp://admin:nUmPFE3*dDOVJ$O1@192.168.113.91/Preview_01_sub" + ]; + video_doorbell_sub = [ + "ffmpeg:http://192.168.113.91/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=admin&password=nUmPFE3*dDOVJ$O1" + "rtsp://admin:nUmPFE3*dDOVJ$O1@192.168.113.91/Preview_01_sub" + ]; + }; + }; + }; + services.frigate = { enable = true; hostname = cfg.hostname; @@ -76,16 +99,16 @@ in # TLS terminated at reverse proxy (nginx) tls.enabled = false; - go2rtc.streams = { - video_doorbell = [ - "ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password#video=copy#audio=copy#audio=opus" - "rtsp://username:password@reolink_ip/Preview_01_sub" - ]; - video_doorbell_sub = [ - "ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password" - "rtsp://username:password@reolink_ip/Preview_01_sub" - ]; - }; + # go2rtc.streams = { + # video_doorbell = [ + # "ffmpeg:http://192.168.113.91/flv?port=1935&app=bcs&stream=channel0_main.bcs&user={FRIGATE_VIDEO_DOORBELL_USERNAME}&password={FRIGATE_VIDEO_DOORBELL_PASSWORD}#video=copy#audio=copy#audio=opus" + # "rtsp://{FRIGATE_VIDEO_DOORBELL_USERNAME}:{FRIGATE_VIDEO_DOORBELL_PASSWORD}@192.168.113.91/Preview_01_sub" + # ]; + # video_doorbell_sub = [ + # "ffmpeg:http://192.168.113.91/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user={FRIGATE_VIDEO_DOORBELL_USERNAME}&password={FRIGATE_VIDEO_DOORBELL_PASSWORD}" + # "rtsp://{FRIGATE_VIDEO_DOORBELL_USERNAME}:{FRIGATE_VIDEO_DOORBELL_PASSWORD}@192.168.113.91/Preview_01_sub" + # ]; + # }; go2rtc.webrtc.candidates = [ "192.168.113.69:8555" # "gospel:8555" @@ -127,7 +150,9 @@ in allowedTCPPorts = [ 80 443 - 855 + 1984 + 8555 + 8554 ]; }; }; diff --git a/secrets/frigate_env.age b/secrets/frigate_env.age index d233e3c..be0e613 100644 --- a/secrets/frigate_env.age +++ b/secrets/frigate_env.age @@ -1,13 +1,12 @@ -----BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHpCTERaZyBWZ0Z5 -WUJvUStPNTdySWhLVkFac3JhZ3NMTEFVb1M2UDNvNXFmOCtzaFFrCjE1anMwTFZp -SlNWS1hWVE1EM1IwbE1LOGw3UzNUZUZLN2UvODhZdVpaUm8KLT4gcGl2LXAyNTYg -VUlFR3pnIEFyNXgrMURJYVZ3bkdpeGg2ZzlNNk9ZQ0dOUWZMQkk2KzRmeHFLcEQv -VXdnCkZHNkxqbTZtaE5sNnYySVVOUFJYUkd4NFhlakZCSmFyWVI0eXBqMXc0RGcK -LT4gSEUycTctZ3JlYXNlIEp9WVggZGotUWBNClVjb3FNcm0xeWMya3A4azI4Rmo1 -SHdnSXprSEJaMk1sbnFZNFNWWVNldFI2VXl0TzRiMzFqSzNrdW4rbitWUkUKZnll -QnpXWktGY0xpQS9YVVBmVnVCVEtibndJczRuTEhldwotLS0gQjVicE5PTG9Hb1B5 -eExCbXRpZGxSY2FFdHJCL2tDMlllRVNyQ0R3eWdBdwpJ998RrWDjSZjOJdy2F2LV -FE4WLC+mBh5YQDK8b9yLcFT3SIfLpT9BNTAwP3UQhZ8WrNY7T3dWzMLxA2pzVzKs -Jqsosj4BUWvW +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHpCTERaZyBiYWRr +cGc4bm1mRStNWkt0VlhXbHhDYSt6NlVhL3d4TlQ3dkxYNzByakVFCndZbUNTenJ0 +TVRrNGhjdXZqaDZUTEc0dUlLUTNyajVYYnZoUTJiWmRZU0EKLT4gcGl2LXAyNTYg +VUlFR3pnIEE1bGNpZEpBTWJOVGZxN1d4STFVMjdrdGhEdEF4Ky9mVjFRUmdnTTlH +aE54Cmg0Tm4waW1SdHVyU2lEQXpOc2wxVFdvRFp3MmxOd1ZkUzh0ckFmcFB6R2cK +LT4gPSQnLWdyZWFzZSA/NSArTSEKUEk3SXlnCi0tLSArMGZIdkl6SExyNi9TMll2 +MWh0RTlBNW42ZGt1bUphQTh6MnU2K3dyRG80Cp4kiJEPYkp/XWJOjLsZL+xKlp87 +JBLXdvGMK3iE0V1X/+ZC99aMEub2K9vV1+JUWF9lVVlHzzM88MJ1D/mupMJ/Fjmf +47P1aXSyMHl2u174jb5kMG218mKWYWhhQpJx4o1nDVIDM8g4iF+WIt1Tuhkg5mlA ++uoOrZcfj9nupKoagP0X7ZWLFb/WnWdQpBxHnYYRZC1UTlql/DUi5ci9 -----END AGE ENCRYPTED FILE-----