# common.nix Nix modules i use on my servers # Usage ```nix # flake.nix inputs = { common-modules.url = "git+https://forge.catnip.ee/batteredbunny/common.nix"; }; ``` ```nix # configuration.nix # import any modules you want to use imports = [ inputs.common-modules.nixosModules.nixos-upgrade inputs.common-modules.nixosModules.qbittorrent-nox inputs.common-modules.nixosModules.unpackerr ]; ``` # Modules ## Auto upgrade Adds a few new options to ``system.autoUpgrade`` ``updateFlake`` pulls in new changes from git repo of your flake and updates the lock file. Make sure your flake parameter is a directory not a flake url, otherwise it wont work. ``failureNotification`` sends a notification to a ntfy topic on an auto upgrade failure ``extraCommands`` extra commands to run during auto upgrade ```nix system.autoUpgrade = { enable = true; allowReboot = true; flake = "/etc/nixos"; # New options updateFlake = true; failureNotification = { enable = true; # NTFY_URL=https://ntfy.example.com/topic ntfyUrlFile = "/etc/secrets/failureNotification.env"; }; }; ``` ## Unpackerr ```nix services.unpackerr = { enable = true; # Stores your api keys and other sensitive things you dont want to include in nix config, example: UN_SONARR_0_API_KEY,UN_RADARR_0_API_KEY environmentFile = "/etc/secrets/unpackerr.env"; # Defaults to unpackerr:unpackerr, so make sure the user has right file permissions # user = ""; # group = ""; # Look up default unpackerr config, its in toml format settings = { sonarr = [{ url = "http://localhost:8989"; protocols = "torrent"; timeout = "100s"; delete_delay = "10m"; }]; radarr = [{ url = "http://localhost:7878"; protocols = "torrent"; timeout = "100s"; delete_delay = "10m"; }]; }; }; ``` ## Qbittorrent Becuase nixos doesnt have one yet, mostly [the one from PR](https://github.com/NixOS/nixpkgs/pull/287923) but slightly modified. ```nix services.qbittorrent-nox = { enable = true; openFirewall = true; webuiPort = 8080; torrentingPort = 345677; }; ```