snowfield/modules/mediaserver/default.nix

100 lines
2.2 KiB
Nix
Raw Normal View History

2024-03-30 20:18:12 +01:00
{ lib, config, ... }:
2021-12-04 13:13:13 +01:00
with lib;
2024-05-09 00:43:47 +02:00
let
cfg = config.luj.mediaserver;
2022-02-05 19:00:46 +01:00
in
{
2021-12-04 13:13:13 +01:00
options.luj.mediaserver = {
enable = mkEnableOption "enable the mediaserver";
2022-02-05 19:00:46 +01:00
tv.enable = mkEnableOption "enable the tv mediaserver";
music.enable = mkEnableOption "enable the music mediaserver";
2021-12-04 13:13:13 +01:00
};
2024-05-09 00:43:47 +02:00
config = mkIf cfg.enable (mkMerge [
{
2022-02-05 19:00:46 +01:00
environment.persistence."/persistent".directories = [
{
directory = "/home/mediaserver/downloads";
user = "mediaserver";
group = "mediaserver";
}
{
directory = "/home/mediaserver/series";
user = "mediaserver";
group = "mediaserver";
}
{
directory = "/home/mediaserver/films";
user = "mediaserver";
group = "mediaserver";
}
];
2022-02-05 19:00:46 +01:00
users.users.mediaserver = {
name = "mediaserver";
2024-09-04 15:30:59 +02:00
uid = 1001;
2022-02-05 19:00:46 +01:00
isNormalUser = true;
home = "/home/mediaserver";
group = config.users.groups.mediaserver.name;
};
users.groups.mediaserver = {
name = "mediaserver";
};
luj.jackett = {
enable = true;
user = "mediaserver";
group = "mediaserver";
nginx.enable = true;
nginx.subdomain = "jackett";
};
2022-02-19 22:02:37 +01:00
luj.deluge = {
2022-02-05 19:00:46 +01:00
enable = true;
user = "mediaserver";
group = "mediaserver";
nginx.enable = true;
nginx.subdomain = "downloads";
};
}
2024-05-09 00:43:47 +02:00
(mkIf cfg.tv.enable {
2022-02-05 19:00:46 +01:00
2024-05-09 00:43:47 +02:00
luj.sonarr = {
enable = true;
user = "mediaserver";
group = "mediaserver";
nginx.enable = true;
nginx.subdomain = "series";
};
2022-02-05 19:00:46 +01:00
2024-05-09 00:43:47 +02:00
luj.radarr = {
enable = true;
user = "mediaserver";
group = "mediaserver";
nginx.enable = true;
nginx.subdomain = "films";
};
luj.jellyfin = {
enable = true;
user = "mediaserver";
group = "mediaserver";
nginx.enable = true;
nginx.subdomain = "tv";
};
})
2022-02-05 19:00:46 +01:00
2024-05-09 00:43:47 +02:00
(mkIf cfg.music.enable {
luj.lidarr = {
enable = true;
user = "mediaserver";
group = "mediaserver";
nginx.enable = true;
nginx.subdomain = "songs";
};
})
]);
2021-12-04 13:13:13 +01:00
}