This repository has no description
2.0 kB
62 lines
1{ config, pkgs, lib, ... }: let
2 torrentport = 56709; # port forwarded in airvpn webinterface
3in {
4 imports = [
5 ../../2configs
6 ../../2configs/retiolum.nix
7 ../../2configs/services/flix
8 ];
9
10 services.transmission.settings.peer-port = torrentport;
11 krebs.build.host = config.krebs.hosts.yellow;
12
13 krebs.sync-containers3.inContainer = {
14 enable = true;
15 pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN737BAP36KiZO97mPKTIUGJUcr97ps8zjfFag6cUiYL";
16 };
17
18 networking.useHostResolvConf = false;
19 networking.useNetworkd = true;
20
21 systemd.services.transmission-netns = {
22 wantedBy = [ "multi-user.target" ];
23 path = [
24 pkgs.iproute2
25 pkgs.wireguard-tools
26 ];
27 script = ''
28 set -efux
29 ip netns delete transmission || :
30 ip link del t2 || :
31 ip netns add transmission
32 ip -n transmission link set lo up
33 ip link add airvpn type wireguard
34 ip link set airvpn netns transmission
35 ip -n transmission addr add 10.176.43.231/32 dev airvpn
36 ip -n transmission addr add fd7d:76ee:e68f:a993:41b3:846b:d271:30d8/128 dev airvpn
37 ip netns exec transmission wg syncconf airvpn <(wg-quick strip /etc/secrets/airvpn.conf)
38 ip -n transmission link set airvpn up
39 ip -n transmission route add default dev airvpn
40 ip link add t1 type veth peer name t2
41 ip link set t1 netns transmission
42 ip addr add 128.0.0.2/30 dev t2
43 ip link set t2 up
44 ip -n transmission addr add 128.0.0.1/30 dev t1
45 ip -n transmission link set t1 up
46 '';
47 serviceConfig = {
48 RemainAfterExit = true;
49 Type = "oneshot";
50 };
51 };
52
53 systemd.services.transmission = {
54 after = [ "transmission-netns.service" ];
55 serviceConfig = {
56 NetworkNamespacePath = "/var/run/netns/transmission";
57 # https://github.com/NixOS/nixpkgs/issues/258793
58 RootDirectoryStartOnly = lib.mkForce false;
59 RootDirectory = lib.mkForce "";
60 };
61 };
62}