diff --git a/sys/machines/hopper/lab/default.nix b/sys/machines/hopper/lab/default.nix index 09151e2..26f5ccc 100644 --- a/sys/machines/hopper/lab/default.nix +++ b/sys/machines/hopper/lab/default.nix @@ -107,13 +107,19 @@ in { } ''; }; + navidrome = { + useACMEHost = domain; + hostName = "navidrome.${domain}:${toString caddyPort}"; + extraConfig = '' + reverse_proxy unix//var/lib/navidrome/navidrome.sock + ''; + }; slskd = { hostName = "slskd.hopper.xun.host:80"; extraConfig = '' reverse_proxy localhost:${toString config.services.slskd.settings.web.port} ''; }; - transmission = { hostName = "transmission.hopper.xun.host:80"; extraConfig = '' @@ -191,6 +197,12 @@ in { icon = "jellyfin"; }; } + { + "navidrome" = { + href = "https://navidrome.${domain}"; + icon = "navidrome"; + }; + } { "adguard home" = { href = "http://${config.networking.hostName}:${toString config.services.adguardhome.port}"; @@ -232,13 +244,6 @@ in { targets = ["100.100.100.100"]; }; } - # TODO figure out why i cant connect to slskd locally - # { - # job_name = "slskd"; - # static_configs = lib.singleton { - # targets = ["127.0.0.1:${toString slskdUiPort}"]; - # }; - # } ]; }; @@ -343,4 +348,15 @@ in { ]; }; }; + + users.groups.${config.services.navidrome.group}.members = ["caddy"]; # for caddy to access socket file + services.navidrome = { + enable = true; + settings = { + MusicFolder = "/media/library/music"; + Address = "unix:/var/lib/navidrome/navidrome.sock"; + EnableSharing = true; + }; + }; + systemd.services.navidrome.serviceConfig.EnvironmentFile = config.sops.secrets.navidrome.path; } diff --git a/sys/profiles/secrets/hopper/default.nix b/sys/profiles/secrets/hopper/default.nix index f5c8d03..22e6161 100644 --- a/sys/profiles/secrets/hopper/default.nix +++ b/sys/profiles/secrets/hopper/default.nix @@ -17,5 +17,9 @@ format = "binary"; sopsFile = ./transmission; }; + navidrome = { + format = "binary"; + sopsFile = ./navidrome; + }; }; } diff --git a/sys/profiles/secrets/hopper/navidrome b/sys/profiles/secrets/hopper/navidrome new file mode 100644 index 0000000..8b24ba8 --- /dev/null +++ b/sys/profiles/secrets/hopper/navidrome @@ -0,0 +1,24 @@ +{ + "data": "ENC[AES256_GCM,data:dYVT36HolV8T7QxBNoAJ9WvK33eqwt9ijeeOAR33wFdzJ5cVhd6S+7syrhWHzVPjjd6s4sAaPvukFPg0PPRA7qtRtKAOqoJItmQvonkSJGsHdfce3mghFpOuWHUWmFw5pLefwhQ9IeG6tWOFq1e0NLjokYZ1QTQ019LBzvuyhcL0sLY7HMFS4jlTZ7gn+EhWalPiXSTJisjgZLcHZRiqk1A4ykN9Elz9roQayEYY/gCI8gOXKV/COHeijI6MX/5RyHug/SVl,iv:AOOqE4ywhBtPCys4nZE3TJhzpBWBfDzcCV/THUOdgkM=,tag:EIRLlmeCPsv99AJrsp2wZQ==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArOUVOakRVNnFCcjlZTzVa\nRGE1RzJRWkMwMjlmM0RwcTJQbFVCcXB5d1UwCnJqWDVlc09nYllwMEFHL0VlWUt1\nR3N3VkdERURmcUpneFpzM21QZENqY0kKLS0tICtWMTd3ODlkZXdZeSszaDVJcnN4\nQWlha040VWNtRGNmWXRjelYxRzRKSlEKses5PsoJeK08YeE8G0qTAc3mLF4V2t4g\n5OXBUWExpqcYfoks8KSj0bb5NrJRrgaXTPQJQJ6yHZVz753Ct723/w==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPVTVkRHIyTzB6c29NMjVR\nclhBcHZQd2hoTnpqSmxMc09ENGJ6cllUWWlNCjkvSlkyOW5pSmZ4TzFqK29xL3U3\najFoNE4ybkRjbVBpQWV0ZWxDZkZaRzAKLS0tIEQ0elZYS2pkdzZBT1I2dm14cTFC\nU1JoT05CRFlOcWxmVVl2azB2ZUdjc0EKqKnTyGu0KDDHSq3y15YL5rNLm90+/Msy\nE+leZHbn+uZcGi/q1Cja02zPjJweSKxQ4sh6H5DYadC29kjOZf7qXA==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-02-17T15:21:51Z", + "mac": "ENC[AES256_GCM,data:9pSqlHngFKLxmq2RVXGKzVFguljQjKJZYksSmNuuTJtYibqLan669nIwxdj+EFs9kH61LpI4VTxJNJi1mnLOLgpfTjUNAJzUW1FOUCpjBM2vAud138XuvmG+1PFQiT/U7KoAhI3X33YjPDgcLwLvE3+82//nt39MLJfMjHXduBE=,iv:FzTe05JSXrDze3uZoJgTIk2AobsBEjrZEudqkBfry7E=,tag:hJSsexvLw61ML8w3ST8OXA==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.9.4" + } +} \ No newline at end of file