From 9040dfba3f59d97a2d128ca588bf096ee9b0c055 Mon Sep 17 00:00:00 2001 From: death916 Date: Tue, 16 Sep 2025 03:17:14 -0700 Subject: [PATCH] unpackerr service --- modules/media/arr-suite.nix | 46 +++++++++++++++++++++++++++++++++++-- nixos/homelab.nix | 1 + 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/modules/media/arr-suite.nix b/modules/media/arr-suite.nix index 5d3118c..0f1aa04 100644 --- a/modules/media/arr-suite.nix +++ b/modules/media/arr-suite.nix @@ -6,12 +6,30 @@ ... }: +with lib; + +let + cfg = config.arrSuite; +in { options.arrSuite = { - enable = lib.mkEnableOption "Enable Sonarr, Radarr, Readarr, and Prowlarr suite"; + enable = mkEnableOption "Enable Sonarr, Radarr, Readarr, and Prowlarr suite"; + unpackerr = { + enable = mkEnableOption "Enable Unpackerr service"; + downloadPath = mkOption { + type = types.str; + default = "/media/storage/media/downloads"; + description = "Path to the download directory to watch."; + }; + extractPath = mkOption { + type = types.str; + default = ""; + description = "Path to extract files to. Leave empty to extract in place."; + }; + }; }; - config = lib.mkIf config.arrSuite.enable { + config = mkIf cfg.enable { # Define a common group for media services users.groups.media_services = { }; @@ -73,5 +91,29 @@ isSystemUser = true; group = "media_services"; }; + + systemd.services.unpackerr = mkIf cfg.unpackerr.enable { + description = "Unpackerr Service"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + User = "unpackerr"; + Group = "media_services"; + ExecStart = '' + ${pkgs.unpackerr}/bin/unpackerr --config ${ + pkgs.writeText "unpackerr.conf" '' + [unpackerr] + log_file = "/var/log/unpackerr.log" + log_files = 10 + log_file_mb = 10 + [[folder]] + path = "${cfg.unpackerr.downloadPath}" + extract_path = "${cfg.unpackerr.extractPath}" + '' + } + ''; + }; + }; }; } diff --git a/nixos/homelab.nix b/nixos/homelab.nix index cff50a0..537244f 100644 --- a/nixos/homelab.nix +++ b/nixos/homelab.nix @@ -18,6 +18,7 @@ ]; config = { + arrSuite.unpackerr.enable = true; services.kopia-server.enable = true; system.stateVersion = "24.11";