summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock59
-rw-r--r--flake.nix7
-rw-r--r--os/kay/configuration.nix1
-rw-r--r--os/kay/modules/dns/sinanmohd.com.zone3
-rw-r--r--os/kay/modules/internal/www.nix7
-rw-r--r--os/kay/modules/services/nixarr.nix28
6 files changed, 104 insertions, 1 deletions
diff --git a/flake.lock b/flake.lock
index 0e557ea..b1e3349 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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",
diff --git a/flake.nix b/flake.nix
index 1b73cc5..e086148 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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;
+ };
+}