qbt: fix categories
This commit is contained in:
@@ -205,6 +205,17 @@ rec {
|
|||||||
torrent = {
|
torrent = {
|
||||||
SavePath = torrents_path;
|
SavePath = torrents_path;
|
||||||
TempPath = torrents_path + "/incomplete";
|
TempPath = torrents_path + "/incomplete";
|
||||||
|
categories = {
|
||||||
|
anime = torrents_path + "/anime";
|
||||||
|
archive = torrents_path + "/archive";
|
||||||
|
audiobooks = torrents_path + "/audiobooks";
|
||||||
|
books = torrents_path + "/books";
|
||||||
|
games = torrents_path + "/games";
|
||||||
|
movies = torrents_path + "/movies";
|
||||||
|
music = torrents_path + "/music";
|
||||||
|
musicals = torrents_path + "/musicals";
|
||||||
|
tvshows = torrents_path + "/tvshows";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
jellyfin = {
|
jellyfin = {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
service_configs,
|
service_configs,
|
||||||
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -34,7 +35,7 @@
|
|||||||
RADARR_CONFIG = "${service_configs.radarr.dataDir}/config.xml";
|
RADARR_CONFIG = "${service_configs.radarr.dataDir}/config.xml";
|
||||||
SONARR_URL = "http://localhost:${builtins.toString service_configs.ports.private.sonarr.port}";
|
SONARR_URL = "http://localhost:${builtins.toString service_configs.ports.private.sonarr.port}";
|
||||||
SONARR_CONFIG = "${service_configs.sonarr.dataDir}/config.xml";
|
SONARR_CONFIG = "${service_configs.sonarr.dataDir}/config.xml";
|
||||||
CATEGORIES = "tvshows,movies,anime";
|
CATEGORIES = lib.concatStringsSep "," (builtins.attrNames service_configs.torrent.categories);
|
||||||
TAG_TORRENTS = "true";
|
TAG_TORRENTS = "true";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,6 +6,11 @@
|
|||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
categoriesFile = pkgs.writeText "categories.json" (
|
||||||
|
builtins.toJSON (lib.mapAttrs (_: path: { save_path = path; }) service_configs.torrent.categories)
|
||||||
|
);
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(lib.serviceMountWithZpool "qbittorrent" service_configs.zpool_hdds [
|
(lib.serviceMountWithZpool "qbittorrent" service_configs.zpool_hdds [
|
||||||
@@ -135,6 +140,22 @@
|
|||||||
UMask = lib.mkForce "0007";
|
UMask = lib.mkForce "0007";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Pre-define qBittorrent categories with explicit save paths so every
|
||||||
|
# torrent routes to its category directory instead of the SavePath root.
|
||||||
|
systemd.tmpfiles.settings.qbittorrent-categories = {
|
||||||
|
"${config.services.qbittorrent.profileDir}/qBittorrent/config/categories.json"."L+" = {
|
||||||
|
argument = "${categoriesFile}";
|
||||||
|
user = config.services.qbittorrent.user;
|
||||||
|
group = config.services.qbittorrent.group;
|
||||||
|
mode = "1400";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Ensure category directories exist with correct ownership before first use.
|
||||||
|
systemd.tmpfiles.rules = lib.mapAttrsToList (
|
||||||
|
_: path: "d ${path} 0770 ${config.services.qbittorrent.user} ${service_configs.media_group} -"
|
||||||
|
) service_configs.torrent.categories;
|
||||||
|
|
||||||
services.caddy.virtualHosts."torrent.${service_configs.https.domain}".extraConfig = ''
|
services.caddy.virtualHosts."torrent.${service_configs.https.domain}".extraConfig = ''
|
||||||
import ${config.age.secrets.caddy_auth.path}
|
import ${config.age.secrets.caddy_auth.path}
|
||||||
reverse_proxy ${config.vpnNamespaces.wg.namespaceAddress}:${builtins.toString config.services.qbittorrent.webuiPort}
|
reverse_proxy ${config.vpnNamespaces.wg.namespaceAddress}:${builtins.toString config.services.qbittorrent.webuiPort}
|
||||||
|
|||||||
Reference in New Issue
Block a user