diff --git a/arion.nix b/arion.nix
index 4f2680652ce5a9104d7d9ea6d3a13a9a31c760aa..7a2a04eb4cf7e871c72a9e98ea50108cf6bfb813 100644
--- a/arion.nix
+++ b/arion.nix
@@ -3,6 +3,7 @@
 , includeStorePaths ? false
 }:
 let
+  inherit (pkgs) lib;
   nixpkgs = import <nixpkgs> {};
   local-grid = "${./.}/morph/grid/local";
   arion-src = nixpkgs.fetchFromGitHub {
@@ -15,6 +16,15 @@ let
   arion = arion-eval {
     modules = [ "${local-grid}/arion-compose.nix" ];
   };
+  systems = pkgs.runCommand "systems" 
+    { preferLocalBuild = true; allowSubstitutes = false; }
+    ''
+    mkdir $out
+    ${lib.concatStringsSep "\n" (lib.mapAttrsToList (name: service:
+      ''
+      ln -s ${service.nixos.build.toplevel} $out/${lib.escapeShellArg name}
+      ''
+    ) arion.config.services)}'';
   bundle = pkgs.dockerTools.mergeImages (
     map (
       { imageName, imageTag, imageExe }:
@@ -38,4 +48,4 @@ let
      '';
    pause = pkgs.callPackage ./pause.nix {};
 in
-  {inherit pkgs arion local-grid bundle arion-eval arion-src docker-yaml package pause;}
+  {inherit pkgs arion local-grid bundle arion-eval arion-src docker-yaml package pause systems;}