61 lines
1.7 KiB
Nix
61 lines
1.7 KiB
Nix
{ config, pkgs, ... }:
|
|
let
|
|
webUIport = 55555;
|
|
forwardPort = 8888;
|
|
torrentPort = 49114;
|
|
namespace = "wg-mullvad-namespace";
|
|
interface = "wg-mullvad";
|
|
in
|
|
{
|
|
users.users.qbittorrent.extraGroups = [ "media" ];
|
|
services.qbittorrent = {
|
|
enable = true;
|
|
webuiPort = webUIport;
|
|
serverConfig = {
|
|
LegalNotice.Accepted = true;
|
|
Preferences = {
|
|
WebUI = {
|
|
StatusbarExternalIPDisplayed = true;
|
|
HostHeaderValidation = false;
|
|
Username = "admin";
|
|
Password_PBKDF2 = "@ByteArray(WHjV8k2o78gWuL4xAUu0Ww==:eSOIQzJvNmW2JNbvC5DsS3h4JxAvkqJ0g0o1STTLplWLq9cDPjBME3/+dJ/c+p2crLIP2JEoO7KzD0JvLlU9TA==)";
|
|
};
|
|
General.Locale = "en";
|
|
};
|
|
BitTorrent = {
|
|
Session = {
|
|
Port = torrentPort;
|
|
GlobalMaxRatio = 5;
|
|
ShareLimitAction = "RemoveWithContent";
|
|
QueueingSystemEnabled = false;
|
|
DefaultSavePath = "/var/lib/torrents";
|
|
Interface = interface;
|
|
InterfaceName = interface;
|
|
MaxConnections = -1;
|
|
MaxConnectionsPerTorrent = -1;
|
|
MaxUploads = -1;
|
|
MaxUploadsPerTorrent = -1;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.services.qbittorrent.serviceConfig = {
|
|
NetworkNamespacePath = "/var/run/netns/${namespace}";
|
|
BindReadOnlyPaths = [
|
|
"/etc/netns/${namespace}/resolv.conf:/etc/resolv.conf"
|
|
];
|
|
};
|
|
systemd.services.qbittorrent.after = [ "wireguard-${interface}.target" ];
|
|
|
|
systemd.services.forward-namespace = {
|
|
description = "Proxy LAN to VPN namespace";
|
|
after = [ "network.target" ];
|
|
wantedBy = [ "multi-user.target" ];
|
|
script = "${pkgs.socat}/bin/socat TCP-LISTEN:${toString forwardPort},fork,reuseaddr TCP:10.200.200.2:${toString webUIport}";
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d /var/lib/torrents 0750 qbittorent qbittorrent -"
|
|
];
|
|
}
|