{ nixos-version, ... }:

let
  home-manager-package = builtins.fetchGit {
    url = "https://github.com/nix-community/home-manager.git";
    ref = "release-${nixos-version}";
  };

  pkgs = builtins.fetchGit {
    url = "https://github.com/NixOS/nixpkgs.git";
    ref = "release-${nixos-version}";
  };

  initialize = import ../../initialize.nix;

  # This is a problem...it creates a second source of truth.
  host-config = ip: port: config:
    { ... }: {
      imports = [
        (initialize {
          hostname = config.hostname;
          profile = config.profile;
          site = config.site;
          domain = config.domain;
          home-manager-package = home-manager-package;
          pkgs = pkgs;
        })
      ];

      deployment.targetHost = ip;
    };

in { host-config = host-config; }