{ pkgs, config, service_configs, username, ... }: { environment.systemPackages = with pkgs; [ jellyfin jellyfin-web jellyfin-ffmpeg ]; services.jellyfin = rec { enable = true; # used for local streaming openFirewall = true; dataDir = service_configs.jellyfin.dir; cacheDir = dataDir + "_cache"; }; systemd.tmpfiles.rules = [ "d ${config.services.jellyfin.dataDir} 0770 ${config.services.jellyfin.user} ${config.services.jellyfin.group}" "d ${config.services.jellyfin.cacheDir} 0770 ${config.services.jellyfin.user} ${config.services.jellyfin.group}" ]; users.users.${config.services.jellyfin.user}.extraGroups = [ "video" "render" service_configs.torrent_group ]; users.users.${username}.extraGroups = [ config.services.jellyfin.group ]; }