From 2bc7982c0306f22ebeb2cd365bc00951c6aaca6b Mon Sep 17 00:00:00 2001 From: Alexander Heldt Date: Mon, 23 Oct 2023 22:27:27 +0200 Subject: [PATCH] sombrero: Add `transmission` module --- hosts/sombrero/configuration.nix | 26 +----------- .../sombrero/modules/transmission/default.nix | 41 +++++++++++++++++++ 2 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 hosts/sombrero/modules/transmission/default.nix diff --git a/hosts/sombrero/configuration.nix b/hosts/sombrero/configuration.nix index e3b250b..f6d6165 100644 --- a/hosts/sombrero/configuration.nix +++ b/hosts/sombrero/configuration.nix @@ -73,30 +73,6 @@ }; services = { - transmission = { - enable = true; - openFirewall = true; - openRPCPort = true; - settings.rpc-port = 9191; - settings.rpc-bind-address = "0.0.0.0"; - - user = "alex"; - group = "users"; - - home = "/home/alex/media/ts-home"; - downloadDirPermissions = "775"; - - settings = { - incomplete-dir-enabled = false; - download-dir = "/home/alex/media"; - - rpc-authentication-required = true; - rpc-whitelist-enabled = false; - rpc-username = "transmission"; - rpc-password = "{55d884e4042db67313da49e05d7089a368eb64b3Br.3X.Xi"; - }; - }; - restic.backups = { "sync" = { initialize = true; @@ -147,7 +123,6 @@ vim git tig - transmission unar restic ]; @@ -164,6 +139,7 @@ syncthing.enable = true; plex.enable = true; calibre-web.enable = true; + transmission.enable = true; }; # Copy the NixOS configuration file and link it from the resulting system diff --git a/hosts/sombrero/modules/transmission/default.nix b/hosts/sombrero/modules/transmission/default.nix new file mode 100644 index 0000000..6594186 --- /dev/null +++ b/hosts/sombrero/modules/transmission/default.nix @@ -0,0 +1,41 @@ +{ pkgs, lib, config, ... }: +let + enabled = config.mod.transmission.enable; +in +{ + options = { + mod.transmission = { + enable = lib.mkEnableOption "enable transmission module"; + }; + }; + + config = lib.mkIf enabled { + services = { + transmission = { + enable = true; + openFirewall = true; + openRPCPort = true; + settings.rpc-port = 9191; + settings.rpc-bind-address = "0.0.0.0"; + + user = "alex"; + group = "users"; + + home = "/home/alex/media/ts-home"; + downloadDirPermissions = "775"; + + settings = { + incomplete-dir-enabled = false; + download-dir = "/home/alex/media"; + + rpc-authentication-required = true; + rpc-whitelist-enabled = false; + rpc-username = "transmission"; + rpc-password = "{55d884e4042db67313da49e05d7089a368eb64b3Br.3X.Xi"; + }; + }; + }; + + environment.systemPackages = [ pkgs.transmission ]; + }; +}