huge refactoring

This commit is contained in:
chloe 2024-08-12 15:56:45 +02:00
parent fffcee128e
commit 7a2fba99cd
30 changed files with 246 additions and 201 deletions

View file

@ -0,0 +1,61 @@
{
config,
pkgs,
lib,
...
}:
with lib;
let
cfg = config.arrSuite;
in
{
services.sonarr = {
enable = true;
openFirewall = true;
};
services.radarr = {
enable = true;
group = "multimedia";
openFirewall = true;
};
services.prowlarr = {
enable = true;
openFirewall = true;
};
services.jellyseerr = {
openFirewall = true;
enable = true;
};
services.bazarr = {
enable = true;
openFirewall = true;
};
/*
#TODO: create duplicated instances of Sonarr.
systemd.services."sonarrAnime" = {
enable = true;
description = "Duplicated Sonarr instance, for animes";
after = [
"syslog.target"
"network.target"
];
path = [ pkgs.sonarr ];
serviceConfig = {
Type = "simple";
User = "sonarr";
ExecStart = "${pkgs.sonarr}/bin/Sonarr -nobrowser -data=/var/lib/sonarrAnime";
TimeoutStopSec = "20";
KillMode = "process";
Restart = "on-failure";
};
wantedBy = [ "multi-user.target" ];
};
*/
}

View file

@ -0,0 +1,13 @@
{ config, ... }:
{
services.calibre-web = {
enable = true;
openFirewall = true;
listen.ip = "0.0.0.0";
options = {
enableBookUploading = true;
enableKepubify = true;
};
};
}

View file

@ -0,0 +1,8 @@
{
imports = [
./arr-suite.nix
./calibre-web.nix
./slskd.nix
./transmission.nix
];
}

View file

@ -0,0 +1,34 @@
{ config, lib, ... }:
with lib;
let
cfg = config.slskd;
in
{
options = {
slskd.directory = mkOption {
type = types.str;
default = "/srv/media/Music";
};
};
config = {
sops.secrets."slskd" = {
sopsFile = ../secrets/slskd.env;
format = "dotenv";
};
services.slskd = {
enable = true;
openFirewall = true;
environmentFile = config.sops.secrets."slskd".path;
domain = null;
settings = {
shares.directories = [ "${cfg.directory}/clean" ];
soulseek.description = "i luv katz n mewsik";
directories.files.downloads = "${cfg.directory}/downloads";
directories.files.incomplete = "${cfg.directory}/incomplete";
};
};
};
}

View file

@ -0,0 +1,38 @@
{ config, lib, ... }:
with lib;
let
cfg = config.transmission;
in
{
options = {
transmission = {
directory = mkOption {
type = lib.types.str;
default = "/srv/Multimedia";
};
};
};
config = {
sops.secrets."transmission" = {
sopsFile = ../secrets/transmission.json;
path = "/var/lib/secrets/transmission/settings.json";
};
# torrenting apps
services.transmission = {
enable = true;
openFirewall = true;
openRPCPort = true;
credentialsFile = config.sops.secrets."transmission".path;
settings = {
rpc-bind-address = "0.0.0.0";
rpc-whitelist-enabled = false;
rpc-authentication-required = true;
download-dir = "${cfg.directory}/Torrents";
ratio-limit-enabled = true;
};
};
};
}