From b2ff3bb552ca9b14827d5ac42fa5dabe58bb21dd Mon Sep 17 00:00:00 2001 From: rasmus-kirk Date: Mon, 26 Feb 2024 14:17:52 +0100 Subject: [PATCH] formatted and fixed a transmission bug --- mkDocs.nix | 5 +++-- nixarr/default.nix | 11 ---------- nixarr/jellyfin/default.nix | 16 ++++++++------ nixarr/lidarr/default.nix | 4 ++++ nixarr/prowlarr/default.nix | 5 ++++- nixarr/prowlarr/prowlarr-module/default.nix | 23 +++++++++++---------- nixarr/radarr/default.nix | 5 ++++- nixarr/readarr/default.nix | 4 ++++ nixarr/sonarr/default.nix | 4 ++++ nixarr/transmission/default.nix | 12 ++++++++--- util/vpnNamespace/default.nix | 2 +- 11 files changed, 55 insertions(+), 36 deletions(-) diff --git a/mkDocs.nix b/mkDocs.nix index d1fd28c..2076efb 100644 --- a/mkDocs.nix +++ b/mkDocs.nix @@ -17,10 +17,11 @@ optionsDocNixos = nixosOptionsDoc { inherit (evalNixos) options; }; -in pkgs.stdenv.mkDerivation { +in + pkgs.stdenv.mkDerivation { name = "nixdocs2html"; src = ./.; - buildInputs = with pkgs; [ pandoc ]; + buildInputs = with pkgs; [pandoc]; phases = ["unpackPhase" "buildPhase"]; buildPhase = '' tmpdir=$(mktemp -d) diff --git a/nixarr/default.nix b/nixarr/default.nix index ea71144..5cdcf81 100644 --- a/nixarr/default.nix +++ b/nixarr/default.nix @@ -161,17 +161,6 @@ in { }; systemd.tmpfiles.rules = [ - # State dirs - "d '${cfg.stateDir}' 0755 root root - -" - "d '${cfg.stateDir}/nixarr' 0755 root root - -" - "d '${cfg.stateDir}/nixarr/jellyfin' 0700 jellyfin root - -" - "d '${cfg.stateDir}/nixarr/transmission' 0700 transmission root - -" - "d '${cfg.stateDir}/nixarr/sonarr' 0700 sonarr root - -" - "d '${cfg.stateDir}/nixarr/radarr' 0700 radarr root - -" - "d '${cfg.stateDir}/nixarr/readarr' 0700 readarr root - -" - "d '${cfg.stateDir}/nixarr/lidarr' 0700 lidarr root - -" - "d '${cfg.stateDir}/nixarr/prowlarr' 0700 prowlarr root - -" - # Media dirs "d '${cfg.mediaDir}' 0775 root media - -" "d '${cfg.mediaDir}/library' 0775 jellyfin media - -" diff --git a/nixarr/jellyfin/default.nix b/nixarr/jellyfin/default.nix index 31d6479..820e8f7 100644 --- a/nixarr/jellyfin/default.nix +++ b/nixarr/jellyfin/default.nix @@ -52,21 +52,25 @@ in { #assert (cfg.expose.enable -> (cfg.expose.domainName != null && cfg.expose.acmeMail != null)) || abort "Both expose.domain and expose.acmeMail needs to be set if expose.enable is set."; mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}/nixarr/jellyfin' 0700 jellyfin root - -" + ]; + services.jellyfin = { - enable = cfg.enable; - logDir = "${cfg.stateDir}/log"; - cacheDir = "${cfg.stateDir}/cache"; - dataDir = "${cfg.stateDir}/data"; + enable = cfg.enable; + logDir = "${cfg.stateDir}/log"; + cacheDir = "${cfg.stateDir}/cache"; + dataDir = "${cfg.stateDir}/data"; configDir = "${cfg.stateDir}/config"; }; networking.firewall = mkIf cfg.expose.enable { - allowedTCPPorts = [ 80 443 ]; + allowedTCPPorts = [80 443]; }; util-nixarr.upnp = mkIf cfg.expose.upnp.enable { enable = true; - openTcpPorts = [ 80 443 ]; + openTcpPorts = [80 443]; }; services.nginx = mkIf (cfg.expose.enable || cfg.vpn.enable) { diff --git a/nixarr/lidarr/default.nix b/nixarr/lidarr/default.nix index 87b0694..aedb24e 100644 --- a/nixarr/lidarr/default.nix +++ b/nixarr/lidarr/default.nix @@ -24,6 +24,10 @@ in { }; config = mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}/nixarr/lidarr' 0700 lidarr root - -" + ]; + services.lidarr = { enable = cfg.enable; user = "lidarr"; diff --git a/nixarr/prowlarr/default.nix b/nixarr/prowlarr/default.nix index 6a431d2..6fe2d7b 100644 --- a/nixarr/prowlarr/default.nix +++ b/nixarr/prowlarr/default.nix @@ -1,6 +1,5 @@ # TODO: Dir creation and file permissions in nix { - pkgs, config, lib, ... @@ -31,6 +30,10 @@ in { }; config = mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}/nixarr/prowlarr' 0700 prowlarr root - -" + ]; + util-nixarr.services.prowlarr = mkIf (!cfg.vpn.enable) { enable = true; dataDir = cfg.stateDir; diff --git a/nixarr/prowlarr/prowlarr-module/default.nix b/nixarr/prowlarr/prowlarr-module/default.nix index ec21307..7655ff4 100644 --- a/nixarr/prowlarr/prowlarr-module/default.nix +++ b/nixarr/prowlarr/prowlarr-module/default.nix @@ -1,16 +1,17 @@ -{ config, pkgs, lib, ... }: - -with lib; - -let - cfg = config.util-nixarr.services.prowlarr; -in { + config, + pkgs, + lib, + ... +}: +with lib; let + cfg = config.util-nixarr.services.prowlarr; +in { options = { util-nixarr.services.prowlarr = { enable = mkEnableOption "Prowlarr"; - package = mkPackageOption pkgs "prowlarr" { }; + package = mkPackageOption pkgs "prowlarr" {}; user = mkOption { type = types.str; @@ -45,8 +46,8 @@ in systemd.services.prowlarr = { description = "Prowlarr"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; + after = ["network.target"]; + wantedBy = ["multi-user.target"]; serviceConfig = { Type = "simple"; @@ -58,7 +59,7 @@ in }; networking.firewall = mkIf cfg.openFirewall { - allowedTCPPorts = [ 9696 ]; + allowedTCPPorts = [9696]; }; users.users = mkIf (cfg.user == "prowlarr") { diff --git a/nixarr/radarr/default.nix b/nixarr/radarr/default.nix index 70a18ba..b6f50ff 100644 --- a/nixarr/radarr/default.nix +++ b/nixarr/radarr/default.nix @@ -1,6 +1,5 @@ # TODO: Dir creation and file permissions in nix { - pkgs, config, lib, ... @@ -27,6 +26,10 @@ in { }; config = mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}/nixarr/radarr' 0700 radarr root - -" + ]; + services.radarr = mkIf (!cfg.vpn.enable) { enable = cfg.enable; user = "radarr"; diff --git a/nixarr/readarr/default.nix b/nixarr/readarr/default.nix index ef5f8f3..4092648 100644 --- a/nixarr/readarr/default.nix +++ b/nixarr/readarr/default.nix @@ -24,6 +24,10 @@ in { }; config = mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}/nixarr/readarr' 0700 readarr root - -" + ]; + services.readarr = { enable = cfg.enable; user = "readarr"; diff --git a/nixarr/sonarr/default.nix b/nixarr/sonarr/default.nix index 952bc60..a9f0bc9 100644 --- a/nixarr/sonarr/default.nix +++ b/nixarr/sonarr/default.nix @@ -30,6 +30,10 @@ in { }; config = mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}/nixarr/sonarr' 0700 sonarr root - -" + ]; + services.sonarr = mkIf (!cfg.vpn.enable) { enable = cfg.enable; user = "sonarr"; diff --git a/nixarr/transmission/default.nix b/nixarr/transmission/default.nix index 0b555bc..03d2bd5 100644 --- a/nixarr/transmission/default.nix +++ b/nixarr/transmission/default.nix @@ -17,8 +17,8 @@ in { type = types.path; default = "${nixarr.stateDir}/nixarr/transmission"; description = '' - The state directory for Transmission. - + The state directory for Transmission. + **BUG**: Only works when the `nixarr.transmission.vpn.enable` option is set. ''; @@ -66,7 +66,7 @@ in { default = {}; description = '' Extra config settings for the Transmission service. - + See the `services.transmission.settings` nixos options in the relevant section of the `configuration.nix` manual or on [search.nixos.org](https://search.nixos.org/options?channel=unstable&query=services.transmission.settings). @@ -75,6 +75,12 @@ in { }; config = mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}/nixarr/transmission' 0700 transmission root - -" + # This is fixes a bug in nixpks TODO: create nixpkgs issue + "d '${cfg.stateDir}/nixarr/transmission/.config/transmission-daemon' 0700 transmission root - -" + ]; + services.transmission = mkIf (!cfg.vpn.enable) { enable = true; group = "media"; diff --git a/util/vpnNamespace/default.nix b/util/vpnNamespace/default.nix index 82ae795..10316a1 100644 --- a/util/vpnNamespace/default.nix +++ b/util/vpnNamespace/default.nix @@ -13,7 +13,7 @@ with lib; let cfg = config.util-nixarr.vpnnamespace; in { options.util-nixarr.vpnnamespace = { - enable = mkEnableOption '' + enable = mkEnableOption '' Whether to enable the VPN namespace. To access the namespace a veth pair is used to