diff --git a/apps/extract-subs/default.nix b/apps/extract-subs/default.nix
index 22bd28a3..90bfce7e 100644
--- a/apps/extract-subs/default.nix
+++ b/apps/extract-subs/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-XceOF2nmSxLd36/GSZEHIkETxmp3EJ9EN++AcPWQdTU=";
+  npmDepsHash = "sha256-VJFYkiQUjwYaN43w+plNXPXqyZteSnmv/h6GQ5wl5DQ=";
 
   runtimeInputs = [
     ffmpeg-full
diff --git a/apps/extract-subs/package-lock.json b/apps/extract-subs/package-lock.json
index 31eba604..94f3af51 100644
--- a/apps/extract-subs/package-lock.json
+++ b/apps/extract-subs/package-lock.json
@@ -35,7 +35,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.29.1"
+                "typescript-eslint": "8.30.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -439,9 +439,9 @@
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
-            "version": "4.6.0",
-            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz",
-            "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==",
+            "version": "4.6.1",
+            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz",
+            "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==",
             "license": "MIT",
             "dependencies": {
                 "eslint-visitor-keys": "^3.4.3"
diff --git a/apps/list2series/default.nix b/apps/list2series/default.nix
index 0e176277..a517cc04 100644
--- a/apps/list2series/default.nix
+++ b/apps/list2series/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-Kh9xvY3QpxCzhr/xRdlrRphHr7BeyCR65t1zaP8v4IM=";
+  npmDepsHash = "sha256-uqLLmVbpHM5MIGNlHeLYAhWBYaNDW4oRyGJ0azou1Es=";
 
   runtimeInputs = [];
 
diff --git a/apps/list2series/package-lock.json b/apps/list2series/package-lock.json
index d1194e8d..22317510 100644
--- a/apps/list2series/package-lock.json
+++ b/apps/list2series/package-lock.json
@@ -439,9 +439,9 @@
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
-            "version": "4.6.0",
-            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz",
-            "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==",
+            "version": "4.6.1",
+            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz",
+            "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==",
             "license": "MIT",
             "dependencies": {
                 "eslint-visitor-keys": "^3.4.3"
diff --git a/apps/mc-mods/default.nix b/apps/mc-mods/default.nix
index cb1369c1..b0ba0e08 100644
--- a/apps/mc-mods/default.nix
+++ b/apps/mc-mods/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-nO34xFJHlkS7RM5Qu4oe85Nw3Jj8VmhdRSDNBeq78Zg=";
+  npmDepsHash = "sha256-u4inCcNOTx6gf/e8a6/W/a1L5YmBPycAEG/Z46oaHRg=";
 
   runtimeInputs = [
     nodejs_latest
diff --git a/apps/mc-mods/package-lock.json b/apps/mc-mods/package-lock.json
index 72be31c6..2e159b31 100644
--- a/apps/mc-mods/package-lock.json
+++ b/apps/mc-mods/package-lock.json
@@ -438,9 +438,9 @@
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
-            "version": "4.6.0",
-            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz",
-            "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==",
+            "version": "4.6.1",
+            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz",
+            "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==",
             "license": "MIT",
             "dependencies": {
                 "eslint-visitor-keys": "^3.4.3"
diff --git a/apps/pin-inputs/default.nix b/apps/pin-inputs/default.nix
index 15b1e9c8..c071a1de 100644
--- a/apps/pin-inputs/default.nix
+++ b/apps/pin-inputs/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-zb/YuACgQYfX0sKFt+eDjyawu+mufRwDEZd3KBrYZs0=";
+  npmDepsHash = "sha256-oF5IFeBmtQ8ThhJtTcR1JuyWXU6zgCcqmKudi054E4w=";
 
   runtimeInputs = [];
 
diff --git a/apps/pin-inputs/package-lock.json b/apps/pin-inputs/package-lock.json
index 57a07485..b6d7d13c 100644
--- a/apps/pin-inputs/package-lock.json
+++ b/apps/pin-inputs/package-lock.json
@@ -438,9 +438,9 @@
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
-            "version": "4.6.0",
-            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz",
-            "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==",
+            "version": "4.6.1",
+            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz",
+            "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==",
             "license": "MIT",
             "dependencies": {
                 "eslint-visitor-keys": "^3.4.3"
diff --git a/apps/update-sources/default.nix b/apps/update-sources/default.nix
index f42a24a9..5e5f91a8 100644
--- a/apps/update-sources/default.nix
+++ b/apps/update-sources/default.nix
@@ -12,7 +12,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-QtKNapnC9TypI16X7RsVyVqxUwzzRxFMEZ2zXbRNrN4=";
+  npmDepsHash = "sha256-f8jA2SwTbI+LgjoPm096cTSfGVrfA1oD2F3xC69vt6o=";
 
   runtimeInputs = [
     curl
diff --git a/apps/update-sources/package-lock.json b/apps/update-sources/package-lock.json
index f77128b9..68f305ae 100644
--- a/apps/update-sources/package-lock.json
+++ b/apps/update-sources/package-lock.json
@@ -34,7 +34,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.29.1"
+                "typescript-eslint": "8.30.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -438,9 +438,9 @@
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
-            "version": "4.6.0",
-            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz",
-            "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==",
+            "version": "4.6.1",
+            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz",
+            "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==",
             "license": "MIT",
             "dependencies": {
                 "eslint-visitor-keys": "^3.4.3"
diff --git a/configurations/cluster/modules/caddy/plugins.nix b/configurations/cluster/modules/caddy/plugins.nix
index 195adf68..bf912a7d 100644
--- a/configurations/cluster/modules/caddy/plugins.nix
+++ b/configurations/cluster/modules/caddy/plugins.nix
@@ -2,7 +2,7 @@
   plugins = {
     certmagic = {
       url = "github.com/caddyserver/certmagic";
-      version = "v0.22.3-0.20250407182622-b9399eadfbe7";
+      version = "v0.23.1-0.20250416233037-0d908a37e8f8";
       type = "git";
     };
 
@@ -13,5 +13,5 @@
     };
   };
 
-  hash = "sha256-dvWokqBDpE/Tga1YK8PLf8AF3p2Ba0DxoEwpcms/ld8=";
+  hash = "sha256-WAaPnp9+kjxjc2imzg19uLHZcBjcJ8XI5wvuMgH5vZc=";
 }
diff --git a/configurations/nos/modules/docker/forgejo/images/act_runner.nix b/configurations/nos/modules/docker/forgejo/images/act_runner.nix
index 2fe5737e..a5f68a1e 100644
--- a/configurations/nos/modules/docker/forgejo/images/act_runner.nix
+++ b/configurations/nos/modules/docker/forgejo/images/act_runner.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "vegardit/gitea-act-runner";
-  imageDigest = "sha256:7dd9b594a79b67a9d050c953f85803e9e4c64301441ba7a742c812a37a4ec908";
-  hash = "sha256-DHbCwFNKtJntR34pUFS8xsxLhKM2do2ORzqSazfABtE=";
+  imageDigest = "sha256:02ab7bbb1423d790d7fdf39b62851b4422243858e282738744930270bf2e2a99";
+  hash = "sha256-kix0y5xsijlXGkK57gLQlvDjRR9s8a46HV3yVJ+yfAg=";
   finalImageName = imageName;
   finalImageTag = "dind-latest";
 }
diff --git a/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix b/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix
index 737f9af6..5f187b7a 100644
--- a/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix
+++ b/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "rssbridge/rss-bridge";
-  imageDigest = "sha256:bada251086dbe3945b1fe79e1bbdd6cbf51eb4ae4ab115617928ebeabe38699d";
-  hash = "sha256-tHESEgImbH9FXnUqNU8RO0TWHGuVKDbPLv0/QEXtDY8=";
+  imageDigest = "sha256:8e031d8dfa73601ff60696a4952b6c30a00018a1a4bc32f5b2a8bad109e09857";
+  hash = "sha256-PzY9zwTLe+ga9JsZNI1knKylYw+sk89eDruSDBrqyfk=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix b/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
index f3386084..82727f3e 100644
--- a/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
+++ b/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/linuxserver/bazarr";
-  imageDigest = "sha256:d6c430bc4bb48979dd8247816af75e4fbb5999535eef7c9515ba8e5dbc8ac80d";
-  hash = "sha256-LO6uuTSHWzwbLFuvNrQ/qAf750cmkvZMCVDbIHzmeig=";
+  imageDigest = "sha256:b98bdcac54db7ed05524fb63447b855d7fc419428222b3827b1cc9655f95bf51";
+  hash = "sha256-NefisUb38Lia+InLyOktZO8anr9PL+yNAgGaz1Vr+ok=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix b/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix
index 05b30106..ede4fc50 100644
--- a/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix
+++ b/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/linuxserver/prowlarr";
-  imageDigest = "sha256:af8eaaa96684a4d83c73684a39ef0abcdc3ee2c0e9ba7b4c90b1523d28327b04";
-  hash = "sha256-PYw7cfnTBJVHY3SeHQv3jEF93HXSb//bRBwAW1lUGAA=";
+  imageDigest = "sha256:e3242cf552ed1818f9e8208c7826e6b3a28b9203c9732fb0dae176b0323954f2";
+  hash = "sha256-kdRtOAmw0OBLSEqurQzEkp9bqAL5qjMT1i5kDvE9R80=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/nextcloud/images/nginx.nix b/configurations/nos/modules/docker/nextcloud/images/nginx.nix
index 8e207be9..f30956d2 100644
--- a/configurations/nos/modules/docker/nextcloud/images/nginx.nix
+++ b/configurations/nos/modules/docker/nextcloud/images/nginx.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "nginx";
-  imageDigest = "sha256:09369da6b10306312cd908661320086bf87fbae1b6b0c49a1f50ba531fef2eab";
-  hash = "sha256-PH3jMib/DmusC9KTtyYTSdUxEj8AvWx86/SWBdOwOvA=";
+  imageDigest = "sha256:5ed8fcc66f4ed123c1b2560ed708dc148755b6e4cbd8b943fab094f2c6bfa91e";
+  hash = "sha256-sH+aeUx4b8iJhHznSnxeJtICQbn/dgg+NFDnzyvTxEE=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix b/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix
index 3f7d5f76..8acd489f 100644
--- a/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix
+++ b/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "onlyoffice/documentserver";
-  imageDigest = "sha256:9c76330ee4be00623e204c5305b20f8868c37e0e90c88e351c27feb148aada80";
-  hash = "sha256-8fSmxhmYKlSCxWxm27ARuEUuExzrQp+oy1lZ9oul+us=";
+  imageDigest = "sha256:0daa2d1d414d49286bfa9495fc0c936e7e73edaf8944a61102a7a6353a952297";
+  hash = "sha256-HO2z4wjDWYTUWaOtrbPC0+XsxMMU/fBDykava6KVLiY=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/qbittorrent/vuetorrent.nix b/configurations/nos/modules/qbittorrent/vuetorrent.nix
index ad6eea6a..2b94d81a 100644
--- a/configurations/nos/modules/qbittorrent/vuetorrent.nix
+++ b/configurations/nos/modules/qbittorrent/vuetorrent.nix
@@ -1,6 +1,6 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  version = "2.24.0";
-  url = "https://github.com/VueTorrent/VueTorrent/releases/download/v2.24.0/vuetorrent.zip";
-  hash = "sha256-H3/qHyziASUhiA6FiAIe1feHiu4t47FJIE7agezc+Mk=";
+  version = "2.24.1";
+  url = "https://github.com/VueTorrent/VueTorrent/releases/download/v2.24.1/vuetorrent.zip";
+  hash = "sha256-luW5dHxTeoiuUPFAVEJxG9yS28/9JJ8lW16pI/0ruFU=";
 }
diff --git a/modules/ags/config/default.nix b/modules/ags/config/default.nix
index 9674c2a5..4e036f8e 100644
--- a/modules/ags/config/default.nix
+++ b/modules/ags/config/default.nix
@@ -1,3 +1,3 @@
 {
-  npmDepsHash = "sha256-2qUzv9AQLJMreCULTg9jmPlBvm41yE5IqYVJLIZgc10=";
+  npmDepsHash = "sha256-di8AqjocF6lCG/KOg7bDJITD1oJRexTywsnJmYg8Ha4=";
 }
diff --git a/modules/ags/config/package-lock.json b/modules/ags/config/package-lock.json
index 087e4530..e2c09316 100644
--- a/modules/ags/config/package-lock.json
+++ b/modules/ags/config/package-lock.json
@@ -10,7 +10,7 @@
             "dependencies": {
                 "@eslint/js": "9.24.0",
                 "@stylistic/eslint-plugin": "4.2.0",
-                "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?8f020e6d663d4222234826b51f2eb9e01db340a2",
+                "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?d4dd7fcaa25b885d1327d66aac440ddc7e043090",
                 "eslint": "9.24.0",
                 "eslint-plugin-jsdoc": "50.6.9",
                 "fzf": "0.5.2",
@@ -33,9 +33,9 @@
             }
         },
         "node_modules/@eslint-community/eslint-utils": {
-            "version": "4.6.0",
-            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz",
-            "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==",
+            "version": "4.6.1",
+            "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz",
+            "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==",
             "license": "MIT",
             "dependencies": {
                 "eslint-visitor-keys": "^3.4.3"
@@ -595,8 +595,8 @@
             "license": "Python-2.0"
         },
         "node_modules/astal": {
-            "resolved": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?8f020e6d663d4222234826b51f2eb9e01db340a2",
-            "integrity": "sha512-N6ruFz8OJuh2muObgWq5ca8HW3y955JNfYueLq+y4tU0+2lVI+6PTpW0vTWaUwtNtm4nkQMdO9re673q5lHHrw==",
+            "resolved": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?d4dd7fcaa25b885d1327d66aac440ddc7e043090",
+            "integrity": "sha512-FIOR8M9syM1QCF2xa3n4MbX1CyHFiBl6zcpuQVLUHaB94nMuQDZykyB4g7JXr3gI/WhKnb4fqSAu227Dp1fmfQ==",
             "license": "LGPL-2.1"
         },
         "node_modules/balanced-match": {
diff --git a/modules/ags/config/package.json b/modules/ags/config/package.json
index 92767062..3c2a2fcb 100644
--- a/modules/ags/config/package.json
+++ b/modules/ags/config/package.json
@@ -3,7 +3,7 @@
     "version": "0.0.0",
     "main": "app.ts",
     "dependencies": {
-        "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?8f020e6d663d4222234826b51f2eb9e01db340a2",
+        "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?d4dd7fcaa25b885d1327d66aac440ddc7e043090",
         "@eslint/js": "9.24.0",
         "@stylistic/eslint-plugin": "4.2.0",
         "eslint": "9.24.0",
diff --git a/packages/homepage/update.sh b/packages/homepage/update.sh
index c9db3389..bb249883 100755
--- a/packages/homepage/update.sh
+++ b/packages/homepage/update.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-nix-update --flake homepage -q --commit-message | head -n 1
+nix-update --flake homepage
 
 file="$FLAKE/packages/homepage/default.nix"
 old_hash="$(sed -n 's/.*pnpmDepsHash = "\(.*\)";/\1/p' "$file")"
diff --git a/scopedPackages/firefox-addons/generated-firefox-addons.nix b/scopedPackages/firefox-addons/generated-firefox-addons.nix
index d013c830..92131534 100644
--- a/scopedPackages/firefox-addons/generated-firefox-addons.nix
+++ b/scopedPackages/firefox-addons/generated-firefox-addons.nix
@@ -79,10 +79,10 @@
   };
   "floccus" = buildFirefoxXpiAddon {
     pname = "floccus";
-    version = "5.5.1";
+    version = "5.5.2";
     addonId = "floccus@handmadeideas.org";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4470978/floccus-5.5.1.xpi";
-    sha256 = "990a44ef126d888a8f00e5e8c4a5ff0b8cf979d2749d84dcba872c0ed20b94ed";
+    url = "https://addons.mozilla.org/firefox/downloads/file/4475378/floccus-5.5.2.xpi";
+    sha256 = "204300ace8d68440cb6c3eee85f0f200a3964624deb2e16f3cc880cca1b510da";
     meta = with lib; {
       homepage = "https://floccus.org";
       description = "Sync your bookmarks and tabs across browsers via Nextcloud, any WebDAV service, any Git service, via a local file, via Google Drive.";