diff --git a/build01/cache.nix b/build01/cache.nix
new file mode 100644
index 0000000..5fa7a15
--- /dev/null
+++ b/build01/cache.nix
@@ -0,0 +1,16 @@
+{ config, pkgs, ... }:
+
+let
+
+  postBuildHook = pkgs.writeScript "post-build-hook.sh" ''
+    #!${pkgs.runtimeShell}
+    exec ${pkgs.cachix}/bin/cachix -c /var/lib/post-build-hook/nix-community-cachix.dhall push nix-community $OUT_PATHS
+  '';
+
+in {
+
+  nix.extraOptions = ''
+    post-build-hook = ${postBuildHook}
+  '';
+
+}
diff --git a/build01/configuration.nix b/build01/configuration.nix
index a259d99..b8c9d83 100644
--- a/build01/configuration.nix
+++ b/build01/configuration.nix
@@ -11,6 +11,7 @@ in
     ./buildkite.nix
     ./gitlab.nix
     ./hydra.nix
+    ./cache.nix
     ./nixpkgs-update.nix
 
     ../profiles/common.nix
diff --git a/deployment.nix b/deployment.nix
index 863e2a1..c1984cc 100644
--- a/deployment.nix
+++ b/deployment.nix
@@ -72,6 +72,13 @@ in
           permissions = "0600";
         };
 
+        deployment.keys."nix-community-cachix.dhall" = {
+          text = secrets."nix-community-cachix.dhall";
+          destDir = "/var/lib/post-build-hook";
+          user = "root";
+          permissions = "0400";
+        };
+
         deployment.keys.github-nixpkgs-swh-key = {
           text = secrets.github-nixpkgs-swh-key;
           user = "buildkite-agent";