67 lines
1.6 KiB
Nix
67 lines
1.6 KiB
Nix
{
|
|
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;
|
|
};
|
|
}
|