diff --git a/flake.lock b/flake.lock index 05a7057..16ddfe7 100644 --- a/flake.lock +++ b/flake.lock @@ -16,27 +16,6 @@ "type": "gitlab" } }, - "devshell": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1741473158, - "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", - "owner": "numtide", - "repo": "devshell", - "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, "dogetipbot-telegram": { "inputs": { "nixpkgs": [ @@ -59,27 +38,13 @@ } }, "flake-compat": { - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "revCount": 69, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -130,12 +95,12 @@ "git-hooks": { "inputs": { "flake-compat": [ - "nixvim", + "simple-nixos-mailserver", "flake-compat" ], "gitignore": "gitignore", "nixpkgs": [ - "nixvim", + "simple-nixos-mailserver", "nixpkgs" ] }, @@ -156,7 +121,7 @@ "gitignore": { "inputs": { "nixpkgs": [ - "nixvim", + "simple-nixos-mailserver", "git-hooks", "nixpkgs" ] @@ -175,28 +140,6 @@ "type": "github" } }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1744743431, - "narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-24.11", - "repo": "home-manager", - "type": "github" - } - }, "ipmihddtemp": { "inputs": { "nixpkgs": [ @@ -246,40 +189,18 @@ "type": "github" } }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1743127615, - "narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c", - "type": "github" - }, - "original": { - "owner": "lnl7", - "ref": "nix-darwin-24.11", - "repo": "nix-darwin", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1747485343, - "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", + "lastModified": 1748162331, + "narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", + "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "type": "indirect" } }, @@ -301,11 +222,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1747327360, - "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=", + "lastModified": 1748190013, + "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46", + "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", "type": "github" }, "original": { @@ -316,29 +237,24 @@ }, "nixvim": { "inputs": { - "devshell": "devshell", - "flake-compat": "flake-compat", "flake-parts": "flake-parts", - "git-hooks": "git-hooks", - "home-manager": "home-manager", - "nix-darwin": "nix-darwin", "nixpkgs": [ "nixpkgs" ], "nuschtosSearch": "nuschtosSearch", - "treefmt-nix": "treefmt-nix" + "systems": "systems_2" }, "locked": { - "lastModified": 1745963276, - "narHash": "sha256-MpLljx/1dGnBIQlUswaUz/ZeOp44R3ngc1iBf4tyzyc=", + "lastModified": 1748197635, + "narHash": "sha256-1bGQAkqnGyov/tfiJw1HTK3vTHrgEo977J6RfjqrH0s=", "owner": "nix-community", "repo": "nixvim", - "rev": "5bef8e43ce16ee704c7b9fa9f48a07ce81c5c05d", + "rev": "cfea16cdbe4f13b5d39dfe3df747092448252c9d", "type": "github" }, "original": { "owner": "nix-community", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "repo": "nixvim", "type": "github" } @@ -380,25 +296,26 @@ "simple-nixos-mailserver": { "inputs": { "blobs": "blobs", - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat", + "git-hooks": "git-hooks", "nixpkgs": [ "nixpkgs-unstable" ], - "nixpkgs-24_11": [ + "nixpkgs-25_05": [ "nixpkgs" ] }, "locked": { - "lastModified": 1746469806, - "narHash": "sha256-kL3cc25sc0x+6gBZYjuE4566RT1E3XLQs4V8sl7D+VE=", + "lastModified": 1747965231, + "narHash": "sha256-BW3ktviEhfCN/z3+kEyzpDKAI8qFTwO7+S0NVA0C90o=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "14857a0309d7bbdf7c51bbfa309d0d13448ae77e", + "rev": "53007af63fade28853408370c4c600a63dd97f41", "type": "gitlab" }, "original": { "owner": "simple-nixos-mailserver", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "repo": "nixos-mailserver", "type": "gitlab" } @@ -418,24 +335,18 @@ "type": "github" } }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, + "systems_2": { "locked": { - "lastModified": 1744961264, - "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "8d404a69efe76146368885110f29a2ca3700bee6", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "numtide", - "repo": "treefmt-nix", + "owner": "nix-systems", + "repo": "default", "type": "github" } } diff --git a/flake.nix b/flake.nix index a5b8cdb..2802407 100644 --- a/flake.nix +++ b/flake.nix @@ -1,18 +1,18 @@ { inputs = { - nixpkgs.url = "flake:nixpkgs/nixos-24.11"; + nixpkgs.url = "flake:nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "flake:nixpkgs/nixos-unstable"; # transmission 4.0.5 downgrade to fix tracker bug nixpkgs-4a3fc4cf7.url = "github:nixos/nixpkgs/4a3fc4cf736b7d2d288d7a8bf775ac8d4c0920b4"; simple-nixos-mailserver = { - url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.11"; + url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05"; inputs = { nixpkgs.follows = "nixpkgs-unstable"; - nixpkgs-24_11.follows = "nixpkgs"; + nixpkgs-25_05.follows = "nixpkgs"; }; }; nixvim = { - url = "github:nix-community/nixvim/nixos-24.11"; + url = "github:nix-community/nixvim/nixos-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; dogetipbot-telegram = { diff --git a/systems/LoutreOS/medias.nix b/systems/LoutreOS/medias.nix index f8a5a55..557eebf 100644 --- a/systems/LoutreOS/medias.nix +++ b/systems/LoutreOS/medias.nix @@ -27,6 +27,201 @@ radarr.enable = true; sonarr.enable = true; prowlarr.enable = true; + recyclarr = { + enable = true; + configuration = { + radarr.radarr_main = { + api_key = { + _secret = "/run/credentials/recyclarr.service/radarr-api_key"; + }; + base_url = "http://localhost:7878"; + include = [ + { + template = "radarr-quality-definition-movie"; + } + { + template = "radarr-quality-profile-hd-bluray-web-french-multi-vo"; + } + { + template = "radarr-custom-formats-hd-bluray-web-french-multi-vo"; + } + ]; + delete_old_custom_formats = true; + replace_existing_custom_formats = true; + custom_formats = [ + # ===== Versions françaises ===== + { + trash_ids = [ + "404c08fd0bd67f39b4d8e5709319094e" # VFF + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = 101; + }; + } + { + trash_ids = [ + "4cafa20d5584f6ba1871d1b8941aa3cb" # VOF + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = 0; + }; + } + { + trash_ids = [ + "52772f1cad6b5d26c2551f79bc538a50" # VFI + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = 0; + }; + } + { + trash_ids = [ + "29b5f7b1a5f20f64228786c3ab1bdc7d" # VF2 + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = 101; + }; + } + { + trash_ids = [ + "b6ace47331a1d3b77942fc18156f6df6" # VFQ + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = -101; + }; + } + { + trash_ids = [ + "f7caa1942be5cc547c266bd3dbc2cda9" # VOQ + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = 0; + }; + } + { + trash_ids = [ + "95aa50f71a01c82354a7a2b385f1c4d8" # VQ + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = 0; + }; + } + { + trash_ids = [ + "b3fb499641d7b3c2006be1d9eb014cb3" # VFB + ]; + assign_scores_to = { + name = "FR-MULTi-VO-HD"; + score = 0; + }; + } + ]; + }; + sonarr.sonarr_main = { + api_key = { + _secret = "/run/credentials/recyclarr.service/sonarr-api_key"; + }; + base_url = "http://localhost:8989"; + include = [ + { + template = "sonarr-quality-definition-series"; + } + { + template = "sonarr-v4-quality-profile-bluray-web-1080p-french-multi-vo"; + } + { + template = "sonarr-v4-custom-formats-bluray-web-1080p-french-multi-vo"; + } + ]; + delete_old_custom_formats = true; + replace_existing_custom_formats = true; + custom_formats = [ + # ===== Versions françaises ===== + { + trash_ids = [ + "2c29a39a4fdfd6d258799bc4c09731b9" # VFF + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = 101; + }; + } + { + trash_ids = [ + "7ae924ee9b2f39df3283c6c0beb8a2aa" # VOF + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = 0; + }; + } + { + trash_ids = [ + "b6816a0e1d4b64bf3550ad3b74b009b6" # VFI + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = 0; + }; + } + { + trash_ids = [ + "34789ec3caa819f087e23bbf9999daf7" # VF2 + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = 101; + }; + } + { + trash_ids = [ + "7a7f4e4f58bd1058440236d033a90b67" # VFQ + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = -101; + }; + } + { + trash_ids = [ + "802dd70b856c423a9b0cb7f34ac42be1" # VOQ + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = 0; + }; + } + { + trash_ids = [ + "82085412d9a53ba8d8e46fc624eb701d" # VQ + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = 0; + }; + } + { + trash_ids = [ + "0ce1e39a4676c6692ce47935278dac76" # VFB + ]; + assign_scores_to = { + name = "FR-MULTi-VO-WEB-1080p"; + score = 0; + }; + } + ]; + + }; + }; + }; + jellyfin.enable = true; slimserver.enable = true; }; @@ -36,6 +231,11 @@ LimitNOFILE = 1048576; }; + systemd.services.recyclarr.serviceConfig.LoadCredential = [ + "radarr-api_key:/mnt/secrets/radarr-api_key" + "sonarr-api_key:/mnt/secrets/sonarr-api_key" + ]; + networking = { firewall.allowedTCPPorts = [ config.services.transmission.settings.peer-port diff --git a/systems/LoutreOS/services.nix b/systems/LoutreOS/services.nix index 967130c..28cf410 100644 --- a/systems/LoutreOS/services.nix +++ b/systems/LoutreOS/services.nix @@ -198,7 +198,9 @@ in zigbee2mqtt = { enable = true; + package = pkgs.zigbee2mqtt_2; settings = { + homeassistant.enabled = config.services.home-assistant.enable; serial = { port = "/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D97058-if00"; adapter = "zstack"; diff --git a/systems/LoutreOS/web.nix b/systems/LoutreOS/web.nix index 4d06b38..adeb85e 100644 --- a/systems/LoutreOS/web.nix +++ b/systems/LoutreOS/web.nix @@ -360,7 +360,7 @@ in nextcloud = { enable = true; - package = pkgs.nextcloud30; + package = pkgs.nextcloud31; hostName = "cloud.nyanlout.re"; database.createLocally = true; https = true; diff --git a/systems/common-cli.nix b/systems/common-cli.nix index 4da4392..4651d9a 100644 --- a/systems/common-cli.nix +++ b/systems/common-cli.nix @@ -93,6 +93,7 @@ { name = "buffer"; } ]; }; + web-devicons.enable = true; }; };