From 5f5deb387aa24058ed2690277d159cb461f2c3ca Mon Sep 17 00:00:00 2001 From: ediblerope Date: Wed, 21 Jan 2026 10:19:34 +0000 Subject: [PATCH] Update go2rtc.nix --- services/go2rtc.nix | 143 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 142 insertions(+), 1 deletion(-) diff --git a/services/go2rtc.nix b/services/go2rtc.nix index eb79693..b69e1e3 100644 --- a/services/go2rtc.nix +++ b/services/go2rtc.nix @@ -14,7 +14,148 @@ in config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") { - + # Configure sops + sops = { + defaultSopsFile = ../secrets/camera.yaml; + age.keyFile = "/var/lib/sops-nix/key.txt"; + secrets = { + authelia_session_secret = { }; + authelia_encryption_key = { }; + authelia_jwt_secret = { }; + camera_rtsp_url = { }; + fredrik_password_hash = { }; + kayla_password_hash = { }; + }; + }; + + virtualisation.oci-containers = { + backend = "docker"; + + containers."go2rtc" = { + image = "alexxit/go2rtc:latest"; + ports = [ "1984:1984" ]; + volumes = [ + "/var/lib/go2rtc:/config" + ]; + extraOptions = [ + "--network=nginx-proxy-manager_default" + ]; + }; + + containers."authelia" = { + image = "authelia/authelia:latest"; + ports = [ "9091:9091" ]; + environment = { + TZ = "Europe/London"; + }; + volumes = [ + "/var/lib/authelia:/config" + ]; + extraOptions = [ + "--network=nginx-proxy-manager_default" + ]; + }; + }; + + systemd.tmpfiles.rules = [ + "d /var/lib/go2rtc 0755 root root -" + "d /var/lib/authelia 0755 root root -" + ]; + + # Generate go2rtc config with secrets + systemd.services.go2rtc-config = { + description = "Generate go2rtc config with secrets"; + wantedBy = [ "docker-go2rtc.service" ]; + before = [ "docker-go2rtc.service" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + script = '' + mkdir -p /var/lib/go2rtc + cat > /var/lib/go2rtc/go2rtc.yaml < /var/lib/authelia/configuration.yml < /var/lib/authelia/users_database.yml <