{ inputs, ... }: let name = "test-nix"; username = "john"; in { flake.modules.nixos."${name}" = { pkgs, lib, ...}: { home-manager.users."${username}" = { imports = [ inputs.self.homeModules."${username}" ]; home.sessionVariables = rec { HOST = "${name}"; OTHER_VAR = "abc123"; }; }; networking.hostName = "${name}"; # environment.sessionVariables = rec { # HOST = "${name}"; # }; users.users."${username}" = { isNormalUser = true; shell = pkgs.zsh; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIAUa4dcg1TWc4pW++uodyhX4eOqrX/QYIxFWtEP7HFJ john@john-pc-ubuntu" ]; }; programs.zsh.enable = true; services.openssh = { enable = true; # require public key authentication for better security settings.PasswordAuthentication = false; settings.KbdInteractiveAuthentication = false; }; }; # Generic bootstrapping lxc, use a specific host file for more flake.nixosConfigurations."${name}" = inputs.nixpkgs.lib.nixosSystem { modules = [ inputs.home-manager.nixosModules.home-manager inputs.self.modules.nixos.lxc inputs.self.modules.nixos."${name}" ]; }; }