"type": "indirect"
}
},
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1770491427,
+ "narHash": "sha256-8b+0vixdqGnIIcgsPhjdX7EGPdzcVQqYxF+ujjex654=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "cbd8a72e5fe6af19d40e2741dc440d9227836860",
+ "type": "github"
+ },
+ "original": {
+ "id": "home-manager",
+ "type": "indirect"
+ }
+ },
"nixpkgs": {
"locked": {
"lastModified": 1770380644,
"root": {
"inputs": {
"disko": "disko",
+ "home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
url = "disko";
inputs.nixpkgs.follows = "nixpkgs";
};
+
+ home-manager = {
+ url = "home-manager";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
- outputs = { nixpkgs, disko, ... }: let
+ outputs = { nixpkgs, disko, home-manager, ... }: let
hostname = "levanter";
- device = "/dev/sda";
in {
nixosConfigurations.${hostname} = nixpkgs.lib.nixosSystem {
- specialArgs = { inherit device hostname; };
+ specialArgs = {
+ device = "/dev/sda";
+ inherit hostname;
+ ayo_public_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIeBrQONJC4u4M0/gYhsMMcVxs+mVlk5bmT7vtReEyK7 ayo@monsoon";
+ };
modules = [
disko.nixosModules.disko
+ home-manager.nixosModules.home-manager
./levanter/configuration.nix
];
};
-{ device, hostname, ... }: {
+{ device, hostname, ayo_public_key, ... }: {
imports = [
./hardware-configuration.nix
./disko.nix
./komuhn-website.nix
+ ./git-server.nix
];
boot.loader.grub = {
users."ayo" = {
isNormalUser = true;
extraGroups = [ "wheel" ];
-
- openssh.authorizedKeys.keys = [
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIeBrQONJC4u4M0/gYhsMMcVxs+mVlk5bmT7vtReEyK7 ayo@monsoon"
- ];
+ openssh.authorizedKeys.keys = [ ayo_public_key ];
};
};
--- /dev/null
+{ ayo_public_key, ... }: let
+ group = "git";
+ user = "git";
+in {
+ users = {
+ groups.${group} = {};
+
+ users.${user} = {
+ isSystemUser = true;
+ inherit group;
+ home = "/srv/${user}";
+ createHome = true;
+ useDefaultShell = true;
+ openssh.authorizedKeys.keys = [ ayo_public_key ];
+ };
+ };
+
+ home-manager = {
+ useUserPackages = true;
+ useGlobalPkgs = true;
+
+ users.${user} = {
+ home.stateVersion = "26.05";
+
+ programs.git = {
+ enable = true;
+ extraConfig.init.defaultBranch = "main";
+ };
+ };
+ };
+}