forked from aylac.top/nixcfg
this repo has no description

autobrr and redlib

Changed files
+81 -3
hosts
modules
nixos
profiles
arr
backups
snippets
tailnet
+3 -3
flake.lock
···
"secrets": {
"flake": false,
"locked": {
-
"lastModified": 1755626705,
-
"narHash": "sha256-JkJTF26k+bAW8BqD6Ubw9iAR3QZMzCUgy5gMtLcCxeM=",
"owner": "ayla6",
"repo": "secrets",
-
"rev": "0104df7648c10187393222b200e59831fab54ade",
"type": "github"
},
"original": {
···
"secrets": {
"flake": false,
"locked": {
+
"lastModified": 1755634054,
+
"narHash": "sha256-nBYm9JH5CRomLQPssNwCqR15q5SF3buO9nmPSUfW4QU=",
"owner": "ayla6",
"repo": "secrets",
+
"rev": "40a0d31246d725d4744f6ba9d5a99f05aac31818",
"type": "github"
},
"original": {
+18
hosts/nanpi/glance.nix
···
icon = "di:bazarr";
}
{
title = "qBittorrent";
url = "https://${config.mySnippets.tailnet.networkMap.qbittorrent.vHost}/";
check-url = "http://${config.mySnippets.tailnet.networkMap.qbittorrent.hostName}:${toString config.mySnippets.tailnet.networkMap.qbittorrent.port}/";
···
url = "https://${config.mySnippets.tailnet.networkMap.radicale.vHost}/";
check-url = "http://${config.mySnippets.tailnet.networkMap.radicale.hostName}:${toString config.mySnippets.tailnet.networkMap.radicale.port}/";
icon = "di:radicale";
}
];
}
···
icon = "di:bazarr";
}
{
+
title = "Autobrr";
+
url = "https://${config.mySnippets.tailnet.networkMap.autobrr.vHost}/";
+
check-url = "http://${config.mySnippets.tailnet.networkMap.autobrr.hostName}:${toString config.mySnippets.tailnet.networkMap.autobrr.port}/";
+
icon = "di:autobrr";
+
}
+
{
title = "qBittorrent";
url = "https://${config.mySnippets.tailnet.networkMap.qbittorrent.vHost}/";
check-url = "http://${config.mySnippets.tailnet.networkMap.qbittorrent.hostName}:${toString config.mySnippets.tailnet.networkMap.qbittorrent.port}/";
···
url = "https://${config.mySnippets.tailnet.networkMap.radicale.vHost}/";
check-url = "http://${config.mySnippets.tailnet.networkMap.radicale.hostName}:${toString config.mySnippets.tailnet.networkMap.radicale.port}/";
icon = "di:radicale";
+
}
+
{
+
title = "Copyparty";
+
url = "https://${config.mySnippets.tailnet.networkMap.copyparty.vHost}/";
+
check-url = "http://${config.mySnippets.tailnet.networkMap.copyparty.hostName}:${toString config.mySnippets.tailnet.networkMap.copyparty.port}/";
+
icon = "di:copyparty";
+
}
+
{
+
title = "Redlib";
+
url = "https://${config.mySnippets.tailnet.networkMap.redlib.vHost}/";
+
check-url = "http://${config.mySnippets.tailnet.networkMap.redlib.hostName}:${toString config.mySnippets.tailnet.networkMap.redlib.port}/";
+
icon = "di:redlib";
}
];
}
+1
hosts/nanpi/secrets.nix
···
group = "copyparty";
mode = "0400";
};
};
}
···
group = "copyparty";
mode = "0400";
};
+
autobrr.file = "${self.inputs.secrets}/autobrr.age";
};
}
+26
hosts/nanpi/services.nix
···
'';
};
"${config.mySnippets.tailnet.networkMap.glance.vHost}" = {
extraConfig = ''
bind tailscale/glance
···
reverse_proxy ${config.mySnippets.tailnet.networkMap.copyparty.hostName}:${toString config.mySnippets.tailnet.networkMap.copyparty.port} {
flush_interval -1
}
'';
};
};
···
storage = {
filesystem_folder = "/var/lib/radicale/collections";
};
};
};
···
'';
};
+
"${config.mySnippets.tailnet.networkMap.autobrr.vHost}" = {
+
extraConfig = ''
+
bind tailscale/autobrr
+
encode zstd gzip
+
reverse_proxy ${config.mySnippets.tailnet.networkMap.autobrr.hostName}:${toString config.mySnippets.tailnet.networkMap.autobrr.port}
+
'';
+
};
+
"${config.mySnippets.tailnet.networkMap.glance.vHost}" = {
extraConfig = ''
bind tailscale/glance
···
reverse_proxy ${config.mySnippets.tailnet.networkMap.copyparty.hostName}:${toString config.mySnippets.tailnet.networkMap.copyparty.port} {
flush_interval -1
}
+
'';
+
};
+
+
"${config.mySnippets.tailnet.networkMap.redlib.vHost}" = {
+
extraConfig = ''
+
bind tailscale/redlib
+
encode zstd gzip
+
reverse_proxy ${config.mySnippets.tailnet.networkMap.redlib.hostName}:${toString config.mySnippets.tailnet.networkMap.redlib.port}
'';
};
};
···
storage = {
filesystem_folder = "/var/lib/radicale/collections";
};
+
};
+
};
+
+
redlib = {
+
enable = true;
+
openFirewall = true;
+
inherit (config.mySnippets.tailnet.networkMap.redlib) port;
+
settings = {
+
ENABLE_RSS = "on";
+
REDLIB_DEFAULT_SHOW_NSFW = "on";
};
};
+11
modules/nixos/profiles/arr/default.nix
···
dataDir = "${config.myNixOS.profiles.arr.dataDir}/sonarr/.config/NzbDrone/";
openFirewall = true; # Port: 8989
};
};
systemd = {
···
"d ${config.services.radarr.dataDir} 0755 radarr radarr"
"d ${config.services.readarr.dataDir} 0755 readarr readarr"
"d ${config.services.sonarr.dataDir} 0755 sonarr sonarr"
];
};
})
···
dataDir = "${config.myNixOS.profiles.arr.dataDir}/sonarr/.config/NzbDrone/";
openFirewall = true; # Port: 8989
};
+
+
autobrr = {
+
enable = true;
+
openFirewall = true; # Port: 7474
+
secretFile = config.age.secrets.autobrr.path;
+
settings = {
+
host = "0.0.0.0";
+
port = 7474;
+
};
+
};
};
systemd = {
···
"d ${config.services.radarr.dataDir} 0755 radarr radarr"
"d ${config.services.readarr.dataDir} 0755 readarr readarr"
"d ${config.services.sonarr.dataDir} 0755 sonarr sonarr"
+
"d ${config.myNixOS.profiles.arr.dataDir}/autobrr 0755 autobrr autobrr"
];
};
})
+10
modules/nixos/profiles/backups/default.nix
···
}
);
tautulli = lib.mkIf config.services.tautulli.enable (
config.mySnippets.restic
// {
···
}
);
+
autobrr = lib.mkIf config.services.autobrr.enable (
+
config.mySnippets.restic
+
// {
+
backupCleanupCommand = start "autobrr";
+
backupPrepareCommand = stop "autobrr";
+
paths = ["${config.myNixOS.profiles.arr.dataDir}/autobrr"];
+
repository = mkRepoA "autobrr";
+
}
+
);
+
tautulli = lib.mkIf config.services.tautulli.enable (
config.mySnippets.restic
// {
+12
modules/snippets/tailnet/default.nix
···
vHost = "sonarr.${config.mySnippets.tailnet.name}";
};
karakeep = {
hostName = "nanpi";
port = 7020;
···
hostName = "nanpi";
port = 3210;
vHost = "copyparty.${config.mySnippets.tailnet.name}";
};
};
};
···
vHost = "sonarr.${config.mySnippets.tailnet.name}";
};
+
autobrr = {
+
hostName = "nanpi";
+
port = 7474;
+
vHost = "autobrr.${config.mySnippets.tailnet.name}";
+
};
+
karakeep = {
hostName = "nanpi";
port = 7020;
···
hostName = "nanpi";
port = 3210;
vHost = "copyparty.${config.mySnippets.tailnet.name}";
+
};
+
+
redlib = {
+
hostName = "nanpi";
+
port = 6605;
+
vHost = "redlib.${config.mySnippets.tailnet.name}";
};
};
};