From 871abcfd42760dcc9214d477125b7de633f6f646 Mon Sep 17 00:00:00 2001 From: rasmus-kirk Date: Thu, 22 Feb 2024 14:35:07 +0100 Subject: [PATCH] updated docs --- README.md | 43 +++++++++++++++++++++++--- flake.lock | 54 +-------------------------------- mkPandoc.nix | 6 ++-- nixarr/default.nix | 2 +- nixarr/jellyfin/default.nix | 4 +-- nixarr/lidarr/default.nix | 2 +- nixarr/prowlarr/default.nix | 2 +- nixarr/radarr/default.nix | 2 +- nixarr/readarr/default.nix | 2 +- nixarr/sonarr/default.nix | 2 +- nixarr/transmission/default.nix | 2 +- util/upnp/default.nix | 4 +-- util/vpnNamespace/default.nix | 4 +-- 13 files changed, 57 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 536908c..b7e0807 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ nixarr = { # These two values are also the default, but you can set them to whatever # else you want mediaDir = "/data/media"; - stateDir = "/data/media/.state/nixarr"; + stateDir = "/data/media/.state"; vpn = { enable = true; @@ -59,7 +59,7 @@ nixarr = { enable = true; # These options set up a nginx HTTPS reverse proxy, so you can access # Jellyfin on your domain with HTTPS - nginx = { + expose = { enable = true; domainName = "your.domain.com"; acmeMail = "your@email.com"; # Required for ACME-bot @@ -68,12 +68,47 @@ nixarr = { transmission = { enable = true; - useVpn = true; + vpn.enable = true; peerPort = 50000; # Set this to the port forwarded by your VPN }; # It is possible for this module to run the *Arrs through a VPN, but it - # is generally not recommended + # is generally not recommended, as it can cause rate-limiting issues. + sonarr.enable = true; + radarr.enable = true; + prowlarr.enable = true; + readarr.enable = true; + lidarr.enable = true; +}; +``` + +Another example where port forwarding is not an option. This could be for +example if you're living in a dorm: + +```nix +nixarr = { + enable = true; + + vpn = { + enable = true; + wgConf = "/data/.secret/wg.conf"; + }; + + jellyfin = { + enable = true; + vpn = { + enable = true; + # Access the Jellyfin web-ui from the internet + openWebPort = true; + }; + }; + + transmission = { + enable = true; + vpn.enable = true; + peerPort = 50000; # Set this to the port forwarded by your VPN + }; + sonarr.enable = true; radarr.enable = true; prowlarr.enable = true; diff --git a/flake.lock b/flake.lock index eac1be6..ccf2649 100644 --- a/flake.lock +++ b/flake.lock @@ -74,57 +74,7 @@ "type": "github" } }, - "home-manager": { - "inputs": { - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1708451036, - "narHash": "sha256-tgZ38NummEdnXvxj4D0StHBzXgceAw8CptytHljH790=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "517601b37c6d495274454f63c5a483c8e3ca6be1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, "nixpkgs": { - "locked": { - "lastModified": 1708118438, - "narHash": "sha256-kk9/0nuVgA220FcqH/D2xaN6uGyHp/zoxPNUmPCMmEE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "5863c27340ba4de8f83e7e3c023b9599c3cb3c80", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-flood": { - "locked": { - "lastModified": 1701810456, - "narHash": "sha256-jOl3DMrDgJYZeE/w5p7zQe+Ift7R307mXG/tyhH8WHE=", - "owner": "3JlOy-PYCCKUi", - "repo": "nixpkgs", - "rev": "aff5b3aa1a95876fd426ab024d68ab2d87b0ebbd", - "type": "github" - }, - "original": { - "owner": "3JlOy-PYCCKUi", - "ref": "flood-module", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { "locked": { "lastModified": 1708501555, "narHash": "sha256-zJaF0RkdIPbh8LTmnpW/E7tZYpqIE+MePzlWwUNob4c=", @@ -145,9 +95,7 @@ "devshell": "devshell", "flake-parts": "flake-parts", "flake-root": "flake-root", - "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2", - "nixpkgs-flood": "nixpkgs-flood", + "nixpkgs": "nixpkgs", "treefmt-nix": "treefmt-nix" } }, diff --git a/mkPandoc.nix b/mkPandoc.nix index 9a68da7..a7c8947 100644 --- a/mkPandoc.nix +++ b/mkPandoc.nix @@ -19,10 +19,12 @@ pkgs.writeShellApplication { next; } { print } # Print all lines, including those inside code blocks - ' block=0 result/nixos.md > "$tmpdir"/pre.md + ' block=0 result/nixos.md > "$tmpdir"/1.md # inline code "blocks" to nix code blocks # shellcheck disable=SC2016 - sed '/^`[^`]*`$/s/`\(.*\)`/```nix\n\1\n```/g' "$tmpdir"/pre.md > "$tmpdir"/done.md + sed '/^`[^`]*`$/s/`\(.*\)`/```nix\n\1\n```/g' "$tmpdir"/1.md > "$tmpdir"/2.md + # Remove bottom util-nixarr options + sed '/util-nixarr/,$d' "$tmpdir"/2.md > "$tmpdir"/done.md mkdir -p out cp docs/styling/style.css out diff --git a/nixarr/default.nix b/nixarr/default.nix index 866f4b4..4684798 100644 --- a/nixarr/default.nix +++ b/nixarr/default.nix @@ -189,7 +189,7 @@ in { "d '${cfg.mediaDir}/torrents/readarr' 0755 transmission media - -" ]; - util.vpnnamespace = { + util-nixarr.vpnnamespace = { enable = true; accessibleFrom = [ "192.168.1.0/24" diff --git a/nixarr/jellyfin/default.nix b/nixarr/jellyfin/default.nix index 08f3bf1..7787b5c 100644 --- a/nixarr/jellyfin/default.nix +++ b/nixarr/jellyfin/default.nix @@ -64,7 +64,7 @@ in { allowedTCPPorts = [ 80 443 ]; }; - util.upnp = mkIf cfg.expose.upnp.enable { + util-nixarr.upnp = mkIf cfg.expose.upnp.enable { enable = true; openTcpPorts = [ 80 443 ]; }; @@ -106,7 +106,7 @@ in { defaults.email = cfg.expose.acmeMail; }; - util.vpnnamespace.portMappings = [ + util-nixarr.vpnnamespace.portMappings = [ ( mkIf cfg.vpn.enable { From = defaultPort; diff --git a/nixarr/lidarr/default.nix b/nixarr/lidarr/default.nix index 31caa7d..f87be3d 100644 --- a/nixarr/lidarr/default.nix +++ b/nixarr/lidarr/default.nix @@ -31,7 +31,7 @@ in { dataDir = cfg.stateDir; }; - util.vpnnamespace.portMappings = [ + util-nixarr.vpnnamespace.portMappings = [ ( mkIf cfg.vpn.enable { From = defaultPort; diff --git a/nixarr/prowlarr/default.nix b/nixarr/prowlarr/default.nix index 27ec568..186527d 100644 --- a/nixarr/prowlarr/default.nix +++ b/nixarr/prowlarr/default.nix @@ -31,7 +31,7 @@ in { }; config = mkIf cfg.enable { - util.services.prowlarr = mkIf (!cfg.vpn.enable) { + util-nixarr.services.prowlarr = mkIf (!cfg.vpn.enable) { enable = true; dataDir = cfg.stateDir; }; diff --git a/nixarr/radarr/default.nix b/nixarr/radarr/default.nix index 313dd5d..a9f6d7e 100644 --- a/nixarr/radarr/default.nix +++ b/nixarr/radarr/default.nix @@ -34,7 +34,7 @@ in { dataDir = cfg.stateDir; }; - util.vpnnamespace.portMappings = [ + util-nixarr.vpnnamespace.portMappings = [ ( mkIf cfg.vpn.enable { From = defaultPort; diff --git a/nixarr/readarr/default.nix b/nixarr/readarr/default.nix index a47be15..dfaa265 100644 --- a/nixarr/readarr/default.nix +++ b/nixarr/readarr/default.nix @@ -31,7 +31,7 @@ in { dataDir = cfg.stateDir; }; - util.vpnnamespace.portMappings = [ + util-nixarr.vpnnamespace.portMappings = [ ( mkIf cfg.vpn.enable { From = defaultPort; diff --git a/nixarr/sonarr/default.nix b/nixarr/sonarr/default.nix index 4c0ab86..1e2a727 100644 --- a/nixarr/sonarr/default.nix +++ b/nixarr/sonarr/default.nix @@ -37,7 +37,7 @@ in { dataDir = cfg.stateDir; }; - util.vpnnamespace.portMappings = [ + util-nixarr.vpnnamespace.portMappings = [ (mkIf cfg.vpn.enable { From = defaultPort; To = defaultPort; diff --git a/nixarr/transmission/default.nix b/nixarr/transmission/default.nix index 0c782c2..b82be55 100644 --- a/nixarr/transmission/default.nix +++ b/nixarr/transmission/default.nix @@ -108,7 +108,7 @@ in { // cfg.extraConfig; }; - util.vpnnamespace = mkIf cfg.vpn.enable { + util-nixarr.vpnnamespace = mkIf cfg.vpn.enable { portMappings = [ { From = cfg.uiPort; diff --git a/util/upnp/default.nix b/util/upnp/default.nix index e180f96..341e18d 100644 --- a/util/upnp/default.nix +++ b/util/upnp/default.nix @@ -6,9 +6,9 @@ ... }: with lib; let - cfg = config.util.upnp; + cfg = config.util-nixarr.upnp; in { - options.util.upnp = { + options.util-nixarr.upnp = { enable = mkEnableOption "Enable port forwarding using UPNP."; openTcpPorts = mkOption { diff --git a/util/vpnNamespace/default.nix b/util/vpnNamespace/default.nix index 8aebd11..43a861f 100644 --- a/util/vpnNamespace/default.nix +++ b/util/vpnNamespace/default.nix @@ -10,9 +10,9 @@ # the namespace should use a vpn or not. with builtins; with lib; let - cfg = config.util.vpnnamespace; + cfg = config.util-nixarr.vpnnamespace; in { - options.util.vpnnamespace = { + options.util-nixarr.vpnnamespace = { enable = mkEnableOption (lib.mdDoc "VPN Namespace") // {