{ pkgs, config, lib, ... }: let cfg = config.homelab.mediastack; in { options.homelab.mediastack = { enable = lib.mkEnableOption "enable the mediastack"; media_user = lib.mkOption { default = "media"; type = lib.types.str; description = "user for media file permissions"; }; media_group = lib.mkOption { default = "media"; type = lib.types.str; description = "group for media file permissions"; }; tz = lib.mkOption { default = "America/Chicago"; type = lib.types.str; description = "set timezone"; }; }; # the order determines the order in glance :3 imports = [ ./yacreader ./bazarr ./qbittorrent ./prowlarr ./lidarr ./radarr ./sonarr ./audiobookshelf ./navidrome ./jellyfin ./flaresolverr ]; config = lib.mkIf cfg.enable { users = { groups.${cfg.media_group} = { gid = 700; }; users.${cfg.media_user} = { uid = 700; isSystemUser = true; group = cfg.media_group; }; }; homelab.jellyfin.enable = lib.mkDefault true; homelab.yacreader.enable = lib.mkDefault true; homelab.qbittorrent.enable = lib.mkDefault true; homelab.bazarr.enable = lib.mkDefault true; homelab.prowlarr.enable = lib.mkDefault true; homelab.radarr.enable = lib.mkDefault true; homelab.sonarr.enable = lib.mkDefault true; homelab.lidarr.enable = lib.mkDefault true; homelab.audiobookshelf.enable = lib.mkDefault true; homelab.navidrome.enable = lib.mkDefault true; homelab.flaresolverr.enable = lib.mkDefault true; }; }