{
  private,
  config,
  lib,
  pkgs,
  ...
}:

{
  modules.hardware.form.server = true;
  modules.secrets.enable = false;
  info.loc.home = false;

  system.stateVersion = "23.11";

  networking = {
    domain = "cs.purdue.edu";
    hostName = "data";
  };

  home-manager.useUserPackages = false;

  home =
    { main, config, ... }:
    {
      home = {
        username = lib.mkForce private.variables.purdue-username;

        packages =
          with pkgs;
          [
            home-manager
          ]
          ++ main.universe.packages;

        inherit (main.universe) shellAliases;

        sessionVariables = {
          TMPDIR = "${config.home.homeDirectory}/scratch/tmp";
          UNIVERSE_FLAKE_ROOT = "${config.home.homeDirectory}/universe";
          UNIVERSE_USERNAME = main.user.name;
          SHELL = "zsh";
        };

        file.".profile".target = ".profile-hm";

        homeDirectory = lib.mkForce "/homes/${config.home.username}";
      };

      nix.settings = {
        inherit (main.nix.settings)
          auto-optimise-store
          experimental-features
          fallback
          flake-registry
          keep-derivations
          keep-outputs
          min-free
          sandbox
          use-xdg-base-directories
          ;
      };
    };
}
