blob: 047a3ab3ba6cd38a7b2c518fe85ad74f814d4a00 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
{
# Container
containers.transmission = let
home = "/var/lib/transmission";
download-dir = "${home}/Downloads";
incomplete-dir = "${home}/.incomplete";
in {
autoStart = true;
privateNetwork = true;
hostBridge = "br-lan0";
localMacAddress = "02:00:00:00:01:47";
# Download dirs
bindMounts = {
"${download-dir}" = {
hostPath = "/media/ingens/media/dls/transmission/complete";
isReadOnly = false;
};
"${incomplete-dir}" = {
hostPath = "/media/ingens/media/dls/transmission/incomplete";
isReadOnly = false;
};
"/media/ingens/media" = {
hostPath = "/media/ingens/media";
isReadOnly = false;
};
};
config = { lib, ... }: {
# Network
networking = {
enableIPv6 = false; # Prevent ip leaks
firewall.allowedTCPPorts = [ 80 51413 ]; # RPC interface + transmission tcp
firewall.allowedUDPPorts = [ 51413 ]; # transmission udp
# Override dhcp server settings for default route and dns servers with static settings
interfaces.eth0.useDHCP = true;
dhcpcd.extraConfig = ''
interface eth0
static routers=192.168.1.9
static domain_name_servers=9.9.9.9 1.1.1.1
'';
#defaultGateway = "192.168.1.9"; # Doesn't work, see above
#nameservers = [ "9.9.9.9" "1.1.1.1" ]; # Does work, above prevents using dhcp default nameserver
};
# Transmission
services.transmission = {
inherit home;
enable = true;
user = "transmission";
settings = {
inherit download-dir incomplete-dir;
downloadDirPermissions = "775";
};
};
# TODO remove (#258793)
systemd.services.transmission.serviceConfig = {
RootDirectoryStartOnly = lib.mkForce null;
RootDirectory = lib.mkForce null;
};
# Reverse proxy
services.caddy = {
enable = true;
virtualHosts.":80".extraConfig = ''
reverse_proxy localhost:9091
'';
};
system.stateVersion = "26.05";
};
};
}
|