From c0091c3f214b070d1e6fca80d83c98f00aa99ad0 Mon Sep 17 00:00:00 2001 From: Noah Masur <7386960+nmasur@users.noreply.github.com> Date: Sat, 19 Jul 2025 16:53:20 +0000 Subject: [PATCH] enable slskd --- .../nmasur/presets/services/arr/arr.nix | 35 +++++++++++++++++++ .../nmasur/presets/services/arr/slskd.age | 19 ++++++++++ .../modules/nmasur/profiles/shared-media.nix | 1 + 3 files changed, 55 insertions(+) create mode 100644 platforms/nixos/modules/nmasur/presets/services/arr/slskd.age diff --git a/platforms/nixos/modules/nmasur/presets/services/arr/arr.nix b/platforms/nixos/modules/nmasur/presets/services/arr/arr.nix index 2c9d5aa..bb01d06 100644 --- a/platforms/nixos/modules/nmasur/presets/services/arr/arr.nix +++ b/platforms/nixos/modules/nmasur/presets/services/arr/arr.nix @@ -62,6 +62,11 @@ in # "dotnet-sdk-6.0.428" # ]; + secrets.slskd = { + source = ./slskd.age; + dest = "/var/private/slskd"; + }; + services = { bazarr = { enable = true; @@ -74,6 +79,20 @@ in # It contains server configs and credentials configFile = "/data/downloads/sabnzbd/sabnzbd.ini"; }; + slskd = { + enable = true; + domain = null; + environmentFile = config.secrets.slskd.dest; + settings = { + shares.directories = [ "/data/audio/music" ]; + web = { + url_base = "/slskd"; + port = 5030; + }; + soulseek.listen_port = 50300; + }; + openFirewall = false; + }; sonarr = { enable = true; }; @@ -203,6 +222,22 @@ in } ]; } + { + match = [ + { + host = [ hostnames.download ]; + path = [ "/slskd*" ]; + } + ]; + handle = [ + { + handler = "reverse_proxy"; + upstreams = [ + { dial = "localhost:${builtins.toString config.services.slskd.settings.web.port}"; } + ]; + } + ]; + } { match = [ { host = [ hostnames.download ]; } ]; handle = [ diff --git a/platforms/nixos/modules/nmasur/presets/services/arr/slskd.age b/platforms/nixos/modules/nmasur/presets/services/arr/slskd.age new file mode 100644 index 0000000..a710db8 --- /dev/null +++ b/platforms/nixos/modules/nmasur/presets/services/arr/slskd.age @@ -0,0 +1,19 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IE1nSGFPdyBmaUlP +QTFSRGlKbTVFalppZm9XczhOT2dKTkJpTDVDYTNGZWM2N05NTlRjCjVmUDdBb2VW +M1BVMVlNdnoxWUNOTmkraVdhR3ZRTFJpTjMxT1duYS9HV3cKLT4gc3NoLWVkMjU1 +MTkgWXlTVU1RIFdzczRSbDgyM3ZGN2tzV1VOeTFsQUtlY00xRWNTaTU5UmxLamFm +NDVkQVEKa3ZkUmx2RnNjSGUwWGh2ZzVqK3JwckMwdy9LMmRBeGZ3Vk5wUHFMYUc3 +RQotPiBzc2gtZWQyNTUxOSBuanZYNUEgR3lvZ054YkRaNzg5ZDZBK2NrSElndC9P +YnFUUm83c25hYVdSU2dMSytrWQp4ZWthazZLcVFiMUpoUWp1VEZvZjhlSGxSc0ZO +blJnelkvNlc3aDVTOGQ0Ci0+IHNzaC1lZDI1NTE5IENxSU9VQSBUTHNNTUhwaHJT +aUlxTGwzdHhaRytzc3VpVldMb29WNGQyTUN1VXVOZmhzCnYzWjZzZ055YTJtVE1x +UTB4VjgwMzZzNmg2dVJrUVgxNnNSTXpqbURHaUkKLT4gc3NoLWVkMjU1MTkgejFP +Y1p3IFhvR3orWEI0dXVqdGZlbGZyb3FaZ0JGeGdvbE1RSEQwVHNMTU5MLy91WGMK +eldiMlJGeGNJY01OeElBZVNCaTIrMlhibEFZd3pReE5JMWJyMk00Nm9xZwotLS0g +SGpVUzFtMjdHRFlCMmJqMjJJcGl1Z3Z4ZWJXaE9leTVQL016aFAyT3BoRQoM3TpF +3xJOKidMRbB6bqccVENPZ3Truxk7xMC99xvAL9Z0BmjxzV23Z2Fl58xOSx+p7IdE +HWIfSrfhHqhJwanTSeFTYCGEak/e2bljgP3t2j1jNuTJAyUgRWwJg92nOIVX/Q7m +AbhM0tSWdRD7jipqKFt6vvem+QGH0NhenSTZHdKr5gasqHVP7/10MZGSueqwj/Jm +Q3S1ToPvVyoH8DrXlsMX37Qwxn0fVmLIdOrhEhHPLxxRrwkf7bA6Zpk/gSMT +-----END AGE ENCRYPTED FILE----- diff --git a/platforms/nixos/modules/nmasur/profiles/shared-media.nix b/platforms/nixos/modules/nmasur/profiles/shared-media.nix index 2aa4154..0bea6ec 100644 --- a/platforms/nixos/modules/nmasur/profiles/shared-media.nix +++ b/platforms/nixos/modules/nmasur/profiles/shared-media.nix @@ -29,6 +29,7 @@ in radarr.group = "shared"; readarr.group = "shared"; sabnzbd.group = "shared"; + slskd.group = "shared"; sonarr.group = "shared"; immich.group = "shared"; calibre-web.group = "shared";