{ config, lib, pkgs, ... }: with lib; let cfg = config.sydnix.deertopia.slskd; in { options = { sydnix.deertopia.slskd = { enable = mkEnableOption "Soulseek"; }; }; config = mkIf cfg.enable { sydnix.sops.secrets.slskd-credentials = {}; services.slskd = { enable = true; openFirewall = true; domain = null; environmentFile = "/run/secrets/slskd-credentials"; settings = { shares.directories = [ "/persist/vault/jellyfin/Music" ]; # directories.downloads = "/persist/vault/jellyfin/Music"; }; }; networking.firewall.allowedTCPPorts = [ config.services.slskd.settings.web.port ]; users.users.${config.services.slskd.user}.extraGroups = [ "jellyfin" ]; sydnix.deertopia.nginx.vhosts."slsk".vhost = { forceSSL = true; enableACME = true; locations."/" = { proxyPass = "http://localhost:${builtins.toString config.services.slskd.settings.web.port}"; }; }; }; }