diff --git a/nixos/modules/deployment.nix b/nixos/modules/deployment.nix
index 19cf7395f44d182657c948ed845014f8093e3a16..bd8f06fca9b98bd2901a85fe60afe4591c9c857a 100755
--- a/nixos/modules/deployment.nix
+++ b/nixos/modules/deployment.nix
@@ -34,6 +34,11 @@ in {
       # Without some shell no login is possible at all, even to execute our
       # restricted command.
       useDefaultShell = true;
+
+      # Without a home directory, lots of tools break.
+      createHome = true;
+      home = "/home/deployment";
+
       openssh.authorizedKeys.keys = [
         (restrictedKey {
           inherit (cfg) authorizedKey gridName;
diff --git a/nixos/modules/update-deployment b/nixos/modules/update-deployment
index 4f5ecd40bd58c24ccae69b1486fa985cc3b198f8..43f1ad918231442b68fff2dc62ade9b858ddffcb 100755
--- a/nixos/modules/update-deployment
+++ b/nixos/modules/update-deployment
@@ -12,7 +12,7 @@ else
     BRANCH="${GRIDNAME}"
 fi
 
-CHECKOUT="/run/user/$(id --user)/PrivateStorageio"
+CHECKOUT="${HOME}/PrivateStorageio"
 REPO="https://whetstone.privatestorage.io/privatestorage/PrivateStorageio.git"
 
 if [ -e "${CHECKOUT}" ]; then
@@ -24,7 +24,7 @@ else
     git -C "${CHECKOUT}" checkout "${BRANCH}"
 fi
 
-echo "$(date --iso-8601=seconds) $(git -C "${CHECKOUT}" rev-parse HEAD)" >> /var/log/updates.txt
+echo "$(date --iso-8601=seconds) $(git -C "${CHECKOUT}" rev-parse HEAD)" >> ${HOME}/updates.txt
 
 nix-shell "${CHECKOUT}"/shell.nix --command "
   morph deploy \"${CHECKOUT}\"/morph/grid/\"${GRIDNAME}\"/grid.nix switch --on \"$(hostname)\"