diff options
| -rw-r--r-- | flake.lock | 59 | ||||
| -rw-r--r-- | flake.nix | 7 | ||||
| -rw-r--r-- | os/kay/configuration.nix | 1 | ||||
| -rw-r--r-- | os/kay/modules/dns/sinanmohd.com.zone | 3 | ||||
| -rw-r--r-- | os/kay/modules/internal/www.nix | 7 | ||||
| -rw-r--r-- | os/kay/modules/services/nixarr.nix | 28 |
6 files changed, 104 insertions, 1 deletions
@@ -302,6 +302,28 @@ "url": "https://flakehub.com/f/DeterminateSystems/nix-src/%2A" } }, + "nixarr": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "vpnconfinement": "vpnconfinement", + "website-builder": "website-builder" + }, + "locked": { + "lastModified": 1765731404, + "narHash": "sha256-eIEh60iK0L4X7UHj7dOZWZEkmWRA1H7ovjVJsfrPavQ=", + "owner": "rasmus-kirk", + "repo": "nixarr", + "rev": "204da9209ad4e921c3562a6bca5ac8ad5b6ed9bc", + "type": "github" + }, + "original": { + "owner": "rasmus-kirk", + "repo": "nixarr", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1760106635, @@ -437,6 +459,7 @@ "headplane": "headplane", "home-manager": "home-manager", "namescale": "namescale", + "nixarr": "nixarr", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_4", "sops-nix": "sops-nix" @@ -476,6 +499,42 @@ "repo": "default", "type": "github" } + }, + "vpnconfinement": { + "locked": { + "lastModified": 1765634578, + "narHash": "sha256-Fujb9sn1cj+u/bzfo2RbQkcAvJ7Ch1pimJzFie4ptb4=", + "owner": "Maroka-chan", + "repo": "VPN-Confinement", + "rev": "f2989e1e3cb06c7185939e9ddc368f88b998616a", + "type": "github" + }, + "original": { + "owner": "Maroka-chan", + "repo": "VPN-Confinement", + "type": "github" + } + }, + "website-builder": { + "inputs": { + "nixpkgs": [ + "nixarr", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1753958235, + "narHash": "sha256-Rd27XQJKv8Z4BCr3gdbaHFd0TmumiGxdjGRzsEf/mOg=", + "owner": "rasmus-kirk", + "repo": "website-builder", + "rev": "00a14b7ae7baef2197978ba7c3fe72dfca7bc475", + "type": "github" + }, + "original": { + "owner": "rasmus-kirk", + "repo": "website-builder", + "type": "github" + } } }, "root": "root", @@ -30,6 +30,11 @@ url = "github:sinanmohd/namescale"; inputs.nixpkgs.follows = "nixpkgs"; }; + + nixarr = { + url = "github:rasmus-kirk/nixarr"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = @@ -43,6 +48,7 @@ determinate, headplane, namescale, + nixarr, }: let lib = nixpkgs.lib; @@ -54,6 +60,7 @@ specialArgs = { inherit alina; + inherit nixarr; inherit namescale; inherit headplane; inherit determinate; diff --git a/os/kay/configuration.nix b/os/kay/configuration.nix index 4333362..5ed8363 100644 --- a/os/kay/configuration.nix +++ b/os/kay/configuration.nix @@ -22,6 +22,7 @@ ./modules/services/minio.nix ./modules/services/matrix ./modules/services/cgit.nix + ./modules/services/nixarr.nix ]; networking.hostName = "kay"; diff --git a/os/kay/modules/dns/sinanmohd.com.zone b/os/kay/modules/dns/sinanmohd.com.zone index dcbdf6c..ce3b678 100644 --- a/os/kay/modules/dns/sinanmohd.com.zone +++ b/os/kay/modules/dns/sinanmohd.com.zone @@ -2,7 +2,7 @@ $ORIGIN sinanmohd.com. $TTL 2d @ IN SOA ns1 hostmaster ( - 2025101400 ; serial + 2025122500 ; serial 2h ; refresh 5m ; retry 1d ; expire @@ -50,5 +50,6 @@ stalwart IN CNAME @ minio IN CNAME @ s3 IN CNAME @ headscale IN CNAME @ +jellyfin IN CNAME @ _acme-challenge IN NS ns1 diff --git a/os/kay/modules/internal/www.nix b/os/kay/modules/internal/www.nix index dc97487..61e6893 100644 --- a/os/kay/modules/internal/www.nix +++ b/os/kay/modules/internal/www.nix @@ -173,6 +173,13 @@ in }; }; + "jellyfin.${domain}" = defaultOpts // { + locations."/" = { + proxyWebsockets = true; + proxyPass = "http://127.0.0.1:8096"; + }; + }; + "s3.${domain}" = defaultOpts // { extraConfig = '' # Allow special characters in headers diff --git a/os/kay/modules/services/nixarr.nix b/os/kay/modules/services/nixarr.nix new file mode 100644 index 0000000..ba8ed7b --- /dev/null +++ b/os/kay/modules/services/nixarr.nix @@ -0,0 +1,28 @@ +{ nixarr, ... }: +let + mediaDir = "/hdd/nixarr"; + stateDir = "${mediaDir}/.state/nixarr"; +in +{ + imports = [ nixarr.nixosModules.default ]; + + nixarr = { + enable = true; + inherit mediaDir stateDir; + + transmission = { + enable = true; + peerPort = 50000; + extraAllowedIps = [ "100.64.0.*" ]; + }; + + jellyfin.enable = true; + bazarr.enable = true; + lidarr.enable = true; + prowlarr.enable = true; + radarr.enable = true; + readarr.enable = true; + sonarr.enable = true; + jellyseerr.enable = true; + }; +} |
