diff options
Diffstat (limited to 'nixos/hosts')
| -rw-r--r-- | nixos/hosts/ev/default.nix | 4 | ||||
| -rw-r--r-- | nixos/hosts/ev/torrent.nix | 43 | 
2 files changed, 47 insertions, 0 deletions
| diff --git a/nixos/hosts/ev/default.nix b/nixos/hosts/ev/default.nix index dbda5f3..e59ec01 100644 --- a/nixos/hosts/ev/default.nix +++ b/nixos/hosts/ev/default.nix @@ -11,11 +11,15 @@      <top/profiles/server>      <top/shared/tailscale.nix>      <top/shared/basics-physical.nix> +    <top/shared/vpn.nix>      ./home-automation.nix      ./kodi.nix +    ./torrent.nix    ];    home-automation.zigbee2mqttPort = 8080; +  torrent.qbittorrentWebUiPort = 7777; +  torrent.networkNamespace = "se";    home-automation.zigbeeSerialPort = "/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_e2fed465c59ded11962fd7a5a7669f5d-if00-port0"; diff --git a/nixos/hosts/ev/torrent.nix b/nixos/hosts/ev/torrent.nix new file mode 100644 index 0000000..93a7b43 --- /dev/null +++ b/nixos/hosts/ev/torrent.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +let +  mylib = import <top/lib.nix>; +  cfg = config.torrent; +in +{ +  options.torrent = { +    qbittorrentWebUiPort = lib.mkOption { +      type = lib.types.int; +    }; +    networkNamespace = lib.mkOption { +      type = lib.types.str; +    }; +  }; + +  config = { +    environment.systemPackages = [pkgs.qbittorrent-nox]; + +    users.extraUsers.qbittorrent = { +      isSystemUser = true; +      group = "qbittorrent"; +      home = "/var/lib/qbittorrent"; +      createHome = true; +    }; +    users.groups.qbittorrent = {}; + +    systemd = { +      packages = [pkgs.qbittorrent-nox]; +      services."qbittorrent" = mylib.joinWgNamespace cfg.networkNamespace { +        enable = true; +        path = [pkgs.qbittorrent-nox]; +        serviceConfig = { +          ExecStart = "${pkgs.qbittorrent-nox}/bin/qbittorrent-nox --webui-port=${toString cfg.qbittorrentWebUiPort}"; +          User = "qbittorrent"; +        }; +        wantedBy = ["multi-user.target"]; +      }; + +      services.qbittorrent-webui-proxy = mylib.mkPortProxy "qbittorrent" cfg.networkNamespace cfg.qbittorrentWebUiPort; +    }; +  }; +} | 
