diff --git a/.gitignore b/.gitignore
index c56a9cf..217032a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 .direnv
 .pre-commit-config.yaml
 result
+.manifests
diff --git a/applyset-deploy.sh b/applyset-deploy.sh
index e7d4e5b..e5b1232 100644
--- a/applyset-deploy.sh
+++ b/applyset-deploy.sh
@@ -2,12 +2,31 @@
 
 set -euo pipefail
 
+CREATE_LOCAL_GCROOT=false
+
+while [[ "$#" -gt 0 ]]; do
+	case "$1" in
+	--help)
+		echo "Use --create-local-gcroot to create local GC root"
+		exit 0
+		;;
+	--create-local-gcroot)
+		CREATE_LOCAL_GCROOT=true
+		shift
+		;;
+	*)
+		echo "Unknown option: $1"
+		exit 1
+		;;
+	esac
+done
+
 first_server="${SERVERS%% *}"
 previous_manifest=$(
 	envsubst <<EOF | ssh -T "root@$first_server"
-if [[ -f "$GCROOTDIR/$NAME.yml" ]]; then
-	cat "$GCROOTDIR/$NAME.yml"
-fi
+        if [[ -f "$GCROOTDIR/$NAME.yml" ]]; then
+                cat "$GCROOTDIR/$NAME.yml"
+        fi
 EOF
 )
 
@@ -28,7 +47,6 @@ echo Uploading closure...
 for server in $SERVERS; do
 	echo Uploading closure to "$server"...
 	nix copy --to "ssh://root@$server.dmz" "$MANIFEST"
-	ssh "root@$server.dmz" "mkdir -p $GCROOTDIR && ln -sf $MANIFEST $GCROOTDIR/${NAME}.yml"
 done
 
 echo Applying Kubernetes manifest...
@@ -38,3 +56,13 @@ vals eval -fail-on-missing-key-in-map <"$MANIFEST" |
 		--prune \
 		--applyset applyset-"$NAME" \
 		--namespace "$NAMESPACE"
+
+echo Creating GC roots
+for server in $SERVERS; do
+	ssh "root@$server.dmz" "mkdir -p $GCROOTDIR && ln -sf $MANIFEST $GCROOTDIR/${NAME}.yml"
+done
+
+if $CREATE_LOCAL_GCROOT; then
+	mkdir -p ./.manifests
+	ln -sf "$MANIFEST" "./.manifests/${NAME}.yml"
+fi
diff --git a/globals.nix b/globals.nix
index a5e2f10..011531f 100644
--- a/globals.nix
+++ b/globals.nix
@@ -1,7 +1,7 @@
 {servers, ...}: let
   globals = {
     images = {
-      jellyfin = "jellyfin/jellyfin:10.10.4";
+      jellyfin = "jellyfin/jellyfin:10.10.5";
       atuin = "ghcr.io/atuinsh/atuin:18.4.0";
       postgres14 = "postgres:14";
       kms = "teddysun/kms:latest";
diff --git a/kubenix.nix b/kubenix.nix
index 86355e9..6f55e05 100644
--- a/kubenix.nix
+++ b/kubenix.nix
@@ -8,7 +8,7 @@ inputs @ {
 flake-utils.lib.eachDefaultSystem
 (system: let
   pkgs = nixpkgs.legacyPackages.${system};
-  lib = pkgs.lib;
+  inherit (pkgs) lib;
   deployScript = (pkgs.writeScriptBin "applyset-deploy.sh" (builtins.readFile ./applyset-deploy.sh)).overrideAttrs (old: {
     buildCommand = "${old.buildCommand}\npatchShebangs $out";
   });