mirror of
https://github.com/JulienMalka/snowfield.git
synced 2025-03-25 21:30:52 +01:00
99 lines
2.2 KiB
Nix
99 lines
2.2 KiB
Nix
{ lib, config, ... }:
|
|
with lib;
|
|
let
|
|
cfg = config.luj.mediaserver;
|
|
in
|
|
{
|
|
options.luj.mediaserver = {
|
|
enable = mkEnableOption "enable the mediaserver";
|
|
tv.enable = mkEnableOption "enable the tv mediaserver";
|
|
music.enable = mkEnableOption "enable the music mediaserver";
|
|
};
|
|
|
|
config = mkIf cfg.enable (mkMerge [
|
|
{
|
|
|
|
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";
|
|
}
|
|
];
|
|
|
|
users.users.mediaserver = {
|
|
name = "mediaserver";
|
|
uid = 1001;
|
|
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";
|
|
};
|
|
|
|
luj.deluge = {
|
|
enable = true;
|
|
user = "mediaserver";
|
|
group = "mediaserver";
|
|
nginx.enable = true;
|
|
nginx.subdomain = "downloads";
|
|
};
|
|
}
|
|
|
|
(mkIf cfg.tv.enable {
|
|
|
|
luj.sonarr = {
|
|
enable = true;
|
|
user = "mediaserver";
|
|
group = "mediaserver";
|
|
nginx.enable = true;
|
|
nginx.subdomain = "series";
|
|
};
|
|
|
|
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";
|
|
};
|
|
})
|
|
|
|
(mkIf cfg.music.enable {
|
|
luj.lidarr = {
|
|
enable = true;
|
|
user = "mediaserver";
|
|
group = "mediaserver";
|
|
nginx.enable = true;
|
|
nginx.subdomain = "songs";
|
|
};
|
|
})
|
|
]);
|
|
}
|