forked from jan-leila/nix-config
		
	removed users from common
removed common hardware
This commit is contained in:
		
							parent
							
								
									d6cccdc41b
								
							
						
					
					
						commit
						ddc087a548
					
				
					 22 changed files with 400 additions and 420 deletions
				
			
		|  | @ -1,11 +1,5 @@ | |||
| { | ||||
|   pkgs, | ||||
|   lib, | ||||
|   ... | ||||
| }: { | ||||
|   imports = [ | ||||
|     ./users | ||||
|   ]; | ||||
| {pkgs, ...}: { | ||||
|   imports = []; | ||||
| 
 | ||||
|   nix = { | ||||
|     settings = { | ||||
|  | @ -40,124 +34,6 @@ | |||
|     LC_TIME = "en_US.UTF-8"; | ||||
|   }; | ||||
| 
 | ||||
|   users = { | ||||
|     users = { | ||||
|       leyla = { | ||||
|         uid = 1000; | ||||
|         description = "Leyla"; | ||||
|         group = "leyla"; | ||||
|         home = "/home/leyla"; | ||||
|       }; | ||||
| 
 | ||||
|       ester = { | ||||
|         uid = 1001; | ||||
|         description = "Ester"; | ||||
|         group = "ester"; | ||||
|         home = "/home/ester"; | ||||
|       }; | ||||
| 
 | ||||
|       eve = { | ||||
|         uid = 1002; | ||||
|         description = "Eve"; | ||||
|         group = "eve"; | ||||
|         home = "/home/eve"; | ||||
|       }; | ||||
| 
 | ||||
|       jellyfin = { | ||||
|         uid = 2000; | ||||
|         group = "jellyfin"; | ||||
|         isSystemUser = true; | ||||
|       }; | ||||
| 
 | ||||
|       forgejo = { | ||||
|         uid = 2002; | ||||
|         group = "forgejo"; | ||||
|         isSystemUser = true; | ||||
|       }; | ||||
| 
 | ||||
|       pihole = { | ||||
|         uid = 2003; | ||||
|         group = "pihole"; | ||||
|         isSystemUser = true; | ||||
|       }; | ||||
| 
 | ||||
|       hass = { | ||||
|         uid = lib.mkForce 2004; | ||||
|         group = "hass"; | ||||
|         isSystemUser = true; | ||||
|       }; | ||||
| 
 | ||||
|       headscale = { | ||||
|         uid = 2005; | ||||
|         group = "headscale"; | ||||
|         isSystemUser = true; | ||||
|       }; | ||||
| 
 | ||||
|       nextcloud = { | ||||
|         uid = 2006; | ||||
|         group = "nextcloud"; | ||||
|         isSystemUser = true; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     groups = { | ||||
|       leyla = { | ||||
|         gid = 1000; | ||||
|         members = ["lelya"]; | ||||
|       }; | ||||
| 
 | ||||
|       ester = { | ||||
|         gid = 1001; | ||||
|         members = ["ester"]; | ||||
|       }; | ||||
| 
 | ||||
|       eve = { | ||||
|         gid = 1002; | ||||
|         members = ["eve"]; | ||||
|       }; | ||||
| 
 | ||||
|       users = { | ||||
|         gid = 100; | ||||
|         members = ["leyla" "ester" "eve"]; | ||||
|       }; | ||||
| 
 | ||||
|       jellyfin = { | ||||
|         gid = 2000; | ||||
|         members = ["jellyfin" "leyla"]; | ||||
|       }; | ||||
| 
 | ||||
|       jellyfin_media = { | ||||
|         gid = 2001; | ||||
|         members = ["jellyfin" "leyla" "ester" "eve"]; | ||||
|       }; | ||||
| 
 | ||||
|       forgejo = { | ||||
|         gid = 2002; | ||||
|         members = ["forgejo" "leyla"]; | ||||
|       }; | ||||
| 
 | ||||
|       pihole = { | ||||
|         gid = 2003; | ||||
|         members = ["pihole" "leyla"]; | ||||
|       }; | ||||
| 
 | ||||
|       hass = { | ||||
|         gid = lib.mkForce 2004; | ||||
|         members = ["hass" "leyla"]; | ||||
|       }; | ||||
| 
 | ||||
|       headscale = { | ||||
|         gid = 2005; | ||||
|         members = ["headscale"]; | ||||
|       }; | ||||
| 
 | ||||
|       nextcloud = { | ||||
|         gid = 2006; | ||||
|         members = ["nextcloud"]; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   services = { | ||||
|     automatic-timezoned = { | ||||
|       enable = true; | ||||
|  |  | |||
|  | @ -1,9 +0,0 @@ | |||
| {...}: { | ||||
|   imports = [ | ||||
|     ./leyla | ||||
|     ./ester | ||||
|     ./eve | ||||
|   ]; | ||||
| 
 | ||||
|   users.mutableUsers = false; | ||||
| } | ||||
|  | @ -1,36 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.nixos.users.ester; | ||||
| in { | ||||
|   options.nixos.users.ester = { | ||||
|     isDesktopUser = lib.mkEnableOption "install applications intended for desktop use"; | ||||
|   }; | ||||
| 
 | ||||
|   config = { | ||||
|     nixpkgs.config.allowUnfree = true; | ||||
| 
 | ||||
|     sops.secrets = lib.mkIf cfg.isDesktopUser { | ||||
|       "passwords/ester" = { | ||||
|         neededForUsers = true; | ||||
|         sopsFile = "${inputs.secrets}/user-passwords.yaml"; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     users.users.ester = ( | ||||
|       if cfg.isDesktopUser | ||||
|       then { | ||||
|         isNormalUser = true; | ||||
|         extraGroups = ["networkmanager"]; | ||||
| 
 | ||||
|         hashedPasswordFile = config.sops.secrets."passwords/ester".path; | ||||
|       } | ||||
|       else { | ||||
|         isSystemUser = true; | ||||
|       } | ||||
|     ); | ||||
|   }; | ||||
| } | ||||
|  | @ -1,36 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.nixos.users.eve; | ||||
| in { | ||||
|   options.nixos.users.eve = { | ||||
|     isDesktopUser = lib.mkEnableOption "install applications intended for desktop use"; | ||||
|   }; | ||||
| 
 | ||||
|   config = { | ||||
|     nixpkgs.config.allowUnfree = true; | ||||
| 
 | ||||
|     sops.secrets = lib.mkIf cfg.isDesktopUser { | ||||
|       "passwords/eve" = { | ||||
|         neededForUsers = true; | ||||
|         sopsFile = "${inputs.secrets}/user-passwords.yaml"; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     users.users.eve = ( | ||||
|       if cfg.isDesktopUser | ||||
|       then { | ||||
|         isNormalUser = true; | ||||
|         extraGroups = ["networkmanager"]; | ||||
| 
 | ||||
|         hashedPasswordFile = config.sops.secrets."passwords/eve".path; | ||||
|       } | ||||
|       else { | ||||
|         isSystemUser = true; | ||||
|       } | ||||
|     ); | ||||
|   }; | ||||
| } | ||||
|  | @ -1,78 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   inputs, | ||||
|   ... | ||||
| }: let | ||||
|   cfg = config.nixos.users.leyla; | ||||
| in { | ||||
|   options.nixos.users.leyla = { | ||||
|     isDesktopUser = lib.mkEnableOption "install applications intended for desktop use"; | ||||
|     isTerminalUser = lib.mkEnableOption "install applications intended for terminal use"; | ||||
|     hasGPU = lib.mkEnableOption "installs gpu intensive programs"; | ||||
|   }; | ||||
| 
 | ||||
|   config = { | ||||
|     nixpkgs.config.allowUnfree = true; | ||||
| 
 | ||||
|     sops.secrets = lib.mkIf (cfg.isDesktopUser || cfg.isTerminalUser) { | ||||
|       "passwords/leyla" = { | ||||
|         neededForUsers = true; | ||||
|         sopsFile = "${inputs.secrets}/user-passwords.yaml"; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     users.users.leyla = ( | ||||
|       if (cfg.isDesktopUser || cfg.isTerminalUser) | ||||
|       then { | ||||
|         isNormalUser = true; | ||||
|         extraGroups = ( | ||||
|           ["networkmanager" "wheel" "dialout"] | ||||
|           ++ lib.lists.optional (!cfg.isTerminalUser) "adbusers" | ||||
|         ); | ||||
| 
 | ||||
|         hashedPasswordFile = config.sops.secrets."passwords/leyla".path; | ||||
| 
 | ||||
|         openssh = { | ||||
|           authorizedKeys.keys = [ | ||||
|             "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon" | ||||
|             "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBiZkg1c2aaNHiieBX4cEziqvJVj9pcDfzUrKU/mO0I leyla@twilight" | ||||
|           ]; | ||||
|         }; | ||||
|       } | ||||
|       else { | ||||
|         isSystemUser = true; | ||||
|       } | ||||
|     ); | ||||
| 
 | ||||
|     services = { | ||||
|       # ollama = { | ||||
|       #   enable = cfg.hasGPU; | ||||
|       #   acceleration = "cuda"; | ||||
|       # }; | ||||
| 
 | ||||
|       # TODO: this should reference the home directory from the user config | ||||
|       openssh.hostKeys = [ | ||||
|         { | ||||
|           comment = "leyla@" + config.networking.hostName; | ||||
|           path = "/home/leyla/.ssh/leyla_" + config.networking.hostName + "_ed25519"; | ||||
|           rounds = 100; | ||||
|           type = "ed25519"; | ||||
|         } | ||||
|       ]; | ||||
|     }; | ||||
| 
 | ||||
|     programs = { | ||||
|       steam = lib.mkIf cfg.isDesktopUser { | ||||
|         enable = true; | ||||
|         remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play | ||||
|         dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated ServerServer | ||||
|         localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers | ||||
|       }; | ||||
| 
 | ||||
|       noisetorch.enable = cfg.isDesktopUser; | ||||
| 
 | ||||
|       adb.enable = cfg.isDesktopUser; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue