mirror of
https://github.com/harryssecret/homelab-nix.git
synced 2025-08-09 07:00:21 +02:00
huge refactoring
This commit is contained in:
parent
fffcee128e
commit
7a2fba99cd
30 changed files with 246 additions and 201 deletions
61
features/multimedia/arr-suite.nix
Normal file
61
features/multimedia/arr-suite.nix
Normal 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" ];
|
||||
};
|
||||
*/
|
||||
|
||||
}
|
13
features/multimedia/calibre-web.nix
Normal file
13
features/multimedia/calibre-web.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
services.calibre-web = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
listen.ip = "0.0.0.0";
|
||||
options = {
|
||||
enableBookUploading = true;
|
||||
enableKepubify = true;
|
||||
};
|
||||
};
|
||||
}
|
8
features/multimedia/default.nix
Normal file
8
features/multimedia/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./arr-suite.nix
|
||||
./calibre-web.nix
|
||||
./slskd.nix
|
||||
./transmission.nix
|
||||
];
|
||||
}
|
34
features/multimedia/slskd.nix
Normal file
34
features/multimedia/slskd.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
38
features/multimedia/transmission.nix
Normal file
38
features/multimedia/transmission.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue