nix-dotfiles/services/qbittorrent.nix

83 lines
2.5 KiB
Nix

{ config, lib, pkgs, options, ... }:
let
port = 8090;
Interface = "tun0";
InterfaceAddress = "";
torrentPort = 44183;
TempPath = "/Main/Data/media/Downloads/temp";
TorrentExportPath = "/Main/Data/media/Downloads/torrents";
FinishedTorrentExportDirectory = "/Main/Data/media/Downloads/torrents-complete";
in
{
imports = [
../modules/qbittorrent-nox.nix
];
environment.systemPackages = [
pkgs.qbittorrent-nox
];
services.qbittorrent-nox = {
enable = true;
Interface = Interface;
openFirewall = true;
user = "qbittorrent";
group = "qbittorrent";
Filelogger = {
enable = true;
age = 1;
ageType = 1;
backup = true;
deleteOld = true;
maxSizeBytes = 66560;
path = "/Main/Data/media/.qbittorrent/logs";
};
MemoryWorkingSetLimit = 8192;
AddExtensionToIncompleteFiles = true;
AlternativeGlobalDLSpeedLimit = 1000;
AlternativeGlobalUPSpeedLimit = 1000;
AnonymousModeEnabled = false;
BTProtocol = "Both";
BandwidthSchedulerEnabled = false;
DefaultSavePath = TorrentExportPath;
Encryption = 1;
ExcludedFileNames = "";
FinishedTorrentExportDirectory = FinishedTorrentExportDirectory;
GlobalDLSpeedLimit = 0;
GlobalMaxRatio = 1.5;
GlobalUPSpeedLimit = 0;
I2PEnabled = true;
IgnoreLimitsOnLAN = true;
IncludeOverheadInLimits = true;
InterfaceAddress = InterfaceAddress;
InterfaceName = Interface;
LSDEnabled = true;
MaxActiveCheckingTorrents = 15;
MaxRatioAction = 1;
Port = torrentPort;
Preallocation = true;
QueueingSystemEnabled = false;
SubcategoriesEnabled = true;
Tags = "movie, anime";
TempPath = TempPath;
TempPathEnabled = true;
TorrentExportDirectory = TorrentExportPath;
UseAlternativeGlobalSpeedLimit = false;
AutoDeleteAddedTorrentFile = "Never";
Accepted = true;
MigrationVersion = 6;
PortForwardingEnabled = true;
GeneralLocale = "en";
MailNotificationReqAuth = true;
SchedulerDays = "Weekday";
SchedulerEndTime = "@Variant(\\0\\0\\0\\xf\\x5%q\\xa0)";
WebUIAuthSubnetWhitelist = "192.168.1.0/24, 100.0.0.0/8";
WebUIAuthSubnetWhitelistEnabled = true;
WebUIPort = port;
WebUIUseUPnP = false;
AutoDownloaderDownloadRepacks = true;
AutoDownloaderEnableProcessing = true;
AutoDownloaderSmartEpisodeFilter = "s(\\d+)e(\\d+), (\\d+)x(\\d+), \"(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})\", \"(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})\"";
SessionEnableProcessing = true;
};
}