summaryrefslogtreecommitdiff
path: root/nixos/hosts/ev/torrent.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/hosts/ev/torrent.nix')
-rw-r--r--nixos/hosts/ev/torrent.nix43
1 files changed, 43 insertions, 0 deletions
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;
+ };
+ };
+}