qbittorrent + qbit_manage migrated to nixpkgs
All checks were successful
MCP Tests / mcp-tests (push) Successful in 24s
All checks were successful
MCP Tests / mcp-tests (push) Successful in 24s
This commit is contained in:
@@ -6,11 +6,7 @@
|
||||
}:
|
||||
let
|
||||
download = import ./common.nix {
|
||||
inherit
|
||||
config
|
||||
lib
|
||||
pkgs
|
||||
;
|
||||
inherit config lib pkgs;
|
||||
};
|
||||
in
|
||||
{
|
||||
@@ -67,12 +63,10 @@ in
|
||||
};
|
||||
in
|
||||
{
|
||||
"download@main" = lib.mkIf config.my.units.download.enable (
|
||||
downloadTimer "*-*-* 06,18:02:00" 30 // { }
|
||||
);
|
||||
"download@push" = lib.mkIf config.my.units.download.enable (downloadTimer "*:0/5" 30 // { });
|
||||
"download@main" = lib.mkIf config.my.units.download.enable (downloadTimer "*-*-* 06,18:02:00" 30);
|
||||
"download@push" = lib.mkIf config.my.units.download.enable (downloadTimer "*:0/5" 30);
|
||||
"download@manga" = lib.mkIf config.my.units.downloadManga.enable (
|
||||
downloadTimer "*-*-* 03:08:00" 30 // { }
|
||||
downloadTimer "*-*-* 03:08:00" 30
|
||||
);
|
||||
tuhmayto = lib.mkIf config.my.units.download.enable {
|
||||
enable = true;
|
||||
|
||||
@@ -6,33 +6,19 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (inputs) qbit_manage trackerslist;
|
||||
inherit (inputs) trackerslist;
|
||||
qbitProfileDir = "/var/lib/qbittorrent";
|
||||
qbitUser = "qbittorrent";
|
||||
wgInterface = "wg0";
|
||||
qbitManageConfigPath = "/home/jawz/.config/qbit_manage/config.yml";
|
||||
qbitDownloadDir = "/srv/pool/multimedia/downloads/torrent";
|
||||
qbitIncompleteDir = "${qbitDownloadDir}/.incomplete";
|
||||
additionalTrackers = lib.strings.trim (builtins.readFile "${trackerslist}/trackers_all.txt");
|
||||
qbit_manageEnv = pkgs.python3.withPackages (
|
||||
ps:
|
||||
builtins.attrValues {
|
||||
inherit (ps)
|
||||
argon2-cffi
|
||||
bencode-py
|
||||
croniter
|
||||
fastapi
|
||||
gitpython
|
||||
humanize
|
||||
pytimeparse2
|
||||
qbittorrent-api
|
||||
requests
|
||||
retrying
|
||||
ruamel-yaml
|
||||
slowapi
|
||||
uvicorn
|
||||
;
|
||||
}
|
||||
);
|
||||
unstablePkgs = import inputs.nixpkgs-unstable {
|
||||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
qbitManagePkg = unstablePkgs."qbit-manage";
|
||||
torrentCompletionScript = pkgs.writeShellScript "qbit-torrent-completion" ''
|
||||
chmod -R u+rwX,g+rwX,o-rwx "$1"
|
||||
'';
|
||||
@@ -60,10 +46,23 @@ in
|
||||
torrentingPort = config.my.ports.qbittorrent;
|
||||
extraArgs = [ "--confirm-legal-notice" ];
|
||||
serverConfig = {
|
||||
Core.AutoDeleteAddedTorrentFile = "Never";
|
||||
Network.PortForwardingEnabled = false;
|
||||
AutoRun = {
|
||||
enabled = true;
|
||||
program = "${torrentCompletionScript} %F";
|
||||
};
|
||||
Preferences = {
|
||||
Bittorrent.CustomizeTrackersListUrl = "https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt";
|
||||
WebUI = {
|
||||
AlternativeUIEnabled = true;
|
||||
HTTPS.Enabled = false;
|
||||
Password_PBKDF2 = "@ByteArray(ZYy4l3ORHihzBrRYqIfmOA==:SYv4Gor5ZSI9FfAPOxAAdhlmz/h+vViEHnoW6tfJYLNnFL9DQ8udqkO9Na83RJauzhVVGvAgauPq/y4UNPyl3g==)";
|
||||
ReverseProxySupportEnabled = false;
|
||||
RootFolder = "${pkgs.vuetorrent}/share/vuetorrent";
|
||||
Username = "9VcZWt3d0u6mmMOhryUZAcpIe8WML9J7Icj00Vu5fuOFXRB0ECAItetKAK1NnfrD";
|
||||
};
|
||||
};
|
||||
BitTorrent.Session = {
|
||||
AddExtensionToIncompleteFiles = true;
|
||||
AddTrackersEnabled = true;
|
||||
@@ -83,29 +82,13 @@ in
|
||||
TempPath = qbitIncompleteDir;
|
||||
TempPathEnabled = true;
|
||||
};
|
||||
Core.AutoDeleteAddedTorrentFile = "Never";
|
||||
Network.PortForwardingEnabled = false;
|
||||
Preferences = {
|
||||
Bittorrent.CustomizeTrackersListUrl = "https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt";
|
||||
WebUI = {
|
||||
AlternativeUIEnabled = true;
|
||||
HTTPS.Enabled = false;
|
||||
Password_PBKDF2 = "@ByteArray(ZYy4l3ORHihzBrRYqIfmOA==:SYv4Gor5ZSI9FfAPOxAAdhlmz/h+vViEHnoW6tfJYLNnFL9DQ8udqkO9Na83RJauzhVVGvAgauPq/y4UNPyl3g==)";
|
||||
ReverseProxySupportEnabled = false;
|
||||
RootFolder = "${pkgs.vuetorrent}/share/vuetorrent";
|
||||
Username = "9VcZWt3d0u6mmMOhryUZAcpIe8WML9J7Icj00Vu5fuOFXRB0ECAItetKAK1NnfrD";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
users.users.${qbitUser} = {
|
||||
home = qbitProfileDir;
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
||||
home = qbitProfileDir;
|
||||
};
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${qbitDownloadDir} 0775 ${qbitUser} piracy -"
|
||||
"d ${qbitIncompleteDir} 0775 ${qbitUser} piracy -"
|
||||
];
|
||||
sops.secrets =
|
||||
let
|
||||
mkUnpackerrSecret = {
|
||||
@@ -119,8 +102,10 @@ in
|
||||
};
|
||||
systemd = {
|
||||
packages = [ torrentCompletionScript ];
|
||||
services = {
|
||||
};
|
||||
tmpfiles.rules = [
|
||||
"d ${qbitDownloadDir} 0775 ${qbitUser} piracy -"
|
||||
"d ${qbitIncompleteDir} 0775 ${qbitUser} piracy -"
|
||||
];
|
||||
user = {
|
||||
services = {
|
||||
unpackerr = lib.mkIf config.my.servers.unpackerr.enable {
|
||||
@@ -151,7 +136,7 @@ in
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
TimeoutStartSec = "5min";
|
||||
ExecStart = "${qbit_manageEnv}/bin/python ${qbit_manage}/qbit_manage.py -r -c /home/jawz/.config/qbit_manage/config.yml";
|
||||
ExecStart = "${qbitManagePkg}/bin/qbit-manage -r -c ${qbitManageConfigPath}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user