{ config, ... }: { age.secrets."camera-ulfried-url".file = ../../secrets/camera-ulfried-url.age; age.secrets."camera-ulfried-sub-url".file = ../../secrets/camera-ulfried-sub-url.age; age.secrets."camera-gnisbert-url".file = ../../secrets/camera-gnisbert-url.age; age.secrets."camera-gnisbert-sub-url".file = ../../secrets/camera-gnisbert-sub-url.age; age.secrets."camera-taubis-url".file = ../../secrets/camera-taubis-url.age; age.secrets."camera-taubis-sub-url".file = ../../secrets/camera-taubis-sub-url.age; age.secrets."camera-foeff-url".file = ../../secrets/camera-foeff-url.age; age.secrets."camera-foeff-sub-url".file = ../../secrets/camera-foeff-sub-url.age; systemd.services.go2rtc.serviceConfig.LoadCredential = [ "ULFRIED_URL:${config.age.secrets."camera-ulfried-url".path}" "ULFRIED_SUB_URL:${config.age.secrets."camera-ulfried-sub-url".path}" "GNISBERT_URL:${config.age.secrets."camera-gnisbert-url".path}" "GNISBERT_SUB_URL:${config.age.secrets."camera-gnisbert-sub-url".path}" "TAUBIS_URL:${config.age.secrets."camera-taubis-url".path}" "TAUBIS_SUB_URL:${config.age.secrets."camera-taubis-sub-url".path}" "FOEFF_URL:${config.age.secrets."camera-foeff-url".path}" "FOEFF_SUB_URL:${config.age.secrets."camera-foeff-sub-url".path}" ]; services.go2rtc.enable = true; services.go2rtc.settings.streams = { "ulfried" = [ "\${ULFRIED_URL}" "ffmpeg:ulfried#audio=opus#audio=aac" ]; "ulfried_sub" = [ "\${ULFRIED_SUB_URL}" "ffmpeg:ulfried_sub#audio=opus#audio=aac" ]; "gnisbert" = [ "\${GNISBERT_URL}" "ffmpeg:gnisbert#audio=opus#audio=aac" ]; "gnisbert_sub" = [ "\${GNISBERT_SUB_URL}" "ffmpeg:gnisbert_sub#audio=opus#audio=aac" ]; "taubis" = [ "\${TAUBIS_URL}" "ffmpeg:taubis#audio=opus#audio=aac" ]; "taubis_sub" = [ "\${TAUBIS_SUB_URL}" "ffmpeg:taubis_sub#audio=opus#audio=aac" ]; "foeff" = [ "\${FOEFF_URL}" "ffmpeg:foeff#audio=opus#audio=aac#video=copy" ]; "foeff_sub" = [ "\${FOEFF_SUB_URL}" "ffmpeg:foeff_sub#audio=opus#audio=aac#video=copy" ]; }; networking.firewall.allowedTCPPorts = [ 1984 ]; }