47 lines
1.5 KiB
Nix
47 lines
1.5 KiB
Nix
{ lib, pkgs, ... }: {
|
|
system.stateVersion = "23.11";
|
|
systemd.tmpfiles.rules = [
|
|
"d /persist/transmission 755 transmission transmission"
|
|
"d /persist/transmission/.config/transmission-daemon 750 transmission transmission"
|
|
"d /persist/transmission/.incomplete 750 transmission transmission"
|
|
"d /persist/transmission/Downloads 755 transmission transmission"
|
|
"d /persist/transmission/watchdir 755 transmission transmission"
|
|
];
|
|
networking.wg-quick.interfaces.wg0 = {
|
|
configFile = "/persist/vpn.conf";
|
|
preUp = ''
|
|
# Try to access the DNS for up to 300s
|
|
for i in {1..60}; do
|
|
${pkgs.iputils}/bin/ping -c1 'google.com' && break
|
|
echo "Attempt $i: DNS still not available"
|
|
sleep 5s
|
|
done
|
|
'';
|
|
};
|
|
|
|
# https://github.com/NixOS/nixpkgs/issues/258793
|
|
systemd.services.transmission.serviceConfig = {
|
|
BindReadOnlyPaths = lib.mkForce [ builtins.storeDir "/etc" ];
|
|
RootDirectoryStartOnly = lib.mkForce false;
|
|
RootDirectory = lib.mkForce "";
|
|
PrivateMounts = lib.mkForce false;
|
|
PrivateUsers = lib.mkForce false;
|
|
};
|
|
|
|
networking.firewall.allowedTCPPorts = [ 9091 ];
|
|
services.transmission = {
|
|
enable = true;
|
|
package = pkgs.transmission_4;
|
|
downloadDirPermissions = "775";
|
|
openFirewall = true;
|
|
home = "/persist/transmission";
|
|
settings = {
|
|
ratio-limit-enabled = true;
|
|
rpc-bind-address = "0.0.0.0";
|
|
rpc-enabled = true;
|
|
rpc-port = 9091;
|
|
rpc-host-whitelist-enabled = false;
|
|
rpc-whitelist-enabled = false;
|
|
};
|
|
};
|
|
}
|