Add nzbget

This commit is contained in:
Pim Kunis 2025-03-23 08:28:59 +01:00
parent c70084a7b6
commit b288654567
11 changed files with 203 additions and 576 deletions

View file

@ -124,6 +124,7 @@
authentik-redis.storage = "5Gi";
mealie.storage = "3Gi";
music.storage = "70Gi";
nzbget.storage = "150Mi";
};
tailscaleIngresses.tailscale-longhorn = {

View file

@ -16,6 +16,7 @@ in {
prowlarr.enable = (lib.mkEnableOption "prowlarr") // {default = true;};
sonarr.enable = (lib.mkEnableOption "sonarr") // {default = true;};
bazarr.enable = (lib.mkEnableOption "bazarr") // {default = true;};
nzbget.enable = (lib.mkEnableOption "nzbget") // {default = true;};
};
config = lib.mkIf cfg.enable {
@ -184,6 +185,73 @@ in {
};
};
nzbget = lib.mkIf cfg.nzbget.enable {
spec = {
selector.matchLabels = {
app = "media";
component = "nzbget";
};
strategy = {
type = "RollingUpdate";
rollingUpdate = {
maxSurge = 0;
maxUnavailable = 1;
};
};
template = {
metadata.labels = {
app = "media";
component = "nzbget";
};
spec = {
containers.nzbget = {
image = utils.mkNixNGImage "nzbget";
imagePullPolicy = "IfNotPresent";
stdin = true;
tty = true;
ports.web.containerPort = 6789;
volumeMounts = [
{
name = "config";
mountPath = "/home/nzbget";
}
{
name = "media";
mountPath = "/media";
}
];
};
volumes = {
config.persistentVolumeClaim.claimName = "nzbget";
media.hostPath = {
path = "/mnt/longhorn/persistent/media";
type = "Directory";
};
};
affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms = [
{
matchExpressions = [
{
key = "hasMedia";
operator = "In";
values = ["true"];
}
];
}
];
};
};
};
};
jellyseerr = lib.mkIf cfg.jellyseerr.enable {
spec = {
selector.matchLabels = {
@ -642,6 +710,23 @@ in {
};
};
};
nzbget = lib.mkIf cfg.nzbget.enable {
spec = {
type = "LoadBalancer";
loadBalancerIP = globals.nzbgetIPv4;
selector = {
app = "media";
component = "nzbget";
};
ports.web = {
port = 80;
targetPort = "web";
};
};
};
};
persistentVolumeClaims.jellyfin-cache = lib.mkIf cfg.jellyfin.enable {
@ -704,6 +789,11 @@ in {
host = "deluge";
service.name = "deluge";
};
tailscale-nzbget = lib.mkIf cfg.nzbget.enable {
host = "nzbget";
service.name = "nzbget";
};
};
longhorn.persistentVolumeClaim = {
@ -746,6 +836,11 @@ in {
volumeName = "music";
storage = "70Gi";
};
nzbget = lib.mkIf cfg.nzbget.enable {
volumeName = "nzbget";
storage = "150Mi";
};
};
};
};