initial setup
This commit is contained in:
		
							
								
								
									
										11
									
								
								root/base/apps-shell/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								root/base/apps-shell/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
# Shell Apps for every host.
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  environment.systemPackages =
 | 
			
		||||
   (with pkgs; [
 | 
			
		||||
    wget
 | 
			
		||||
    git
 | 
			
		||||
    nil
 | 
			
		||||
    yaml-language-server
 | 
			
		||||
    ]);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								root/base/boot/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								root/base/boot/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
# Boot options.
 | 
			
		||||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
  boot.loader.systemd-boot.consoleMode = "max";
 | 
			
		||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
  boot.loader.timeout = 1;
 | 
			
		||||
  boot.consoleLogLevel = 0;
 | 
			
		||||
  # Lots of kernel params for pure quiet boot.
 | 
			
		||||
  boot.kernelParams = [ "quiet" "splash" "boot.shell_on_fail" "i915.fastboot=1" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" "i915.enable_guc=2" ];
 | 
			
		||||
  boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
 | 
			
		||||
  boot.initrd.verbose = false;
 | 
			
		||||
  boot.initrd.enable = true;
 | 
			
		||||
  boot.plymouth.enable = true;
 | 
			
		||||
  boot.plymouth.theme = "bgrt";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								root/base/firewall/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								root/base/firewall/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  networking.firewall = {
 | 
			
		||||
  enable = false;
 | 
			
		||||
};
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								root/base/firmware/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								root/base/firmware/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
# Firmware updater.
 | 
			
		||||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  services.fwupd.enable = true;
 | 
			
		||||
  hardware.enableAllFirmware = true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								root/base/home-manager/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								root/base/home-manager/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
# Home Manager Settings.
 | 
			
		||||
{ pkgs, user, hostName, ... }:
 | 
			
		||||
{
 | 
			
		||||
    home-manager.useGlobalPkgs = true;
 | 
			
		||||
    home-manager.useUserPackages = true;
 | 
			
		||||
    home-manager.extraSpecialArgs = { inherit pkgs; inherit user; inherit hostName; };
 | 
			
		||||
    home-manager.backupFileExtension = "backup";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								root/base/locale/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								root/base/locale/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
# Locale settings.
 | 
			
		||||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  time.timeZone = "Europe/Berlin";
 | 
			
		||||
  i18n.defaultLocale = "de_DE.UTF-8";
 | 
			
		||||
  console.keyMap = "de";
 | 
			
		||||
  services.xserver.xkb.layout = "de";
 | 
			
		||||
  i18n.extraLocaleSettings = {
 | 
			
		||||
    LC_ADDRESS = "de_DE.UTF-8";
 | 
			
		||||
    LC_IDENTIFICATION = "de_DE.UTF-8";
 | 
			
		||||
    LC_MEASUREMENT = "de_DE.UTF-8";
 | 
			
		||||
    LC_MONETARY = "de_DE.UTF-8";
 | 
			
		||||
    LC_NAME = "de_DE.UTF-8";
 | 
			
		||||
    LC_NUMERIC = "de_DE.UTF-8";
 | 
			
		||||
    LC_PAPER = "de_DE.UTF-8";
 | 
			
		||||
    LC_TELEPHONE = "de_DE.UTF-8";
 | 
			
		||||
    LC_TIME = "de_DE.UTF-8";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								root/base/microcode/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								root/base/microcode/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
# CPU microcode, uses both since it can't hurt
 | 
			
		||||
{ lib, config,... }:
 | 
			
		||||
{
 | 
			
		||||
  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								root/base/networking/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								root/base/networking/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
# Simple networking settings. Uses DHCP.
 | 
			
		||||
{ lib,  hostName, ... }:
 | 
			
		||||
{
 | 
			
		||||
  networking.hostName = hostName;
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  networking.networkmanager.enable = true;
 | 
			
		||||
  networking.interfaces.enp11s0.wakeOnLan.enable = true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								root/base/nixsettings/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								root/base/nixsettings/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
# Misc. nix settings.
 | 
			
		||||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  nixpkgs.config.allowUnfree = true;
 | 
			
		||||
  nix.settings.experimental-features = [ "nix-command" "flakes" ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								root/base/security/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								root/base/security/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
# For now only enable rtkit.
 | 
			
		||||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  security.rtkit.enable = true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								root/base/shell/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								root/base/shell/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
# ZSH global settings. No HM needed.
 | 
			
		||||
{ pkgs,  ... }:
 | 
			
		||||
{
 | 
			
		||||
  programs.zsh.enable = true;
 | 
			
		||||
  programs.zsh.enableCompletion = true;
 | 
			
		||||
  programs.zsh.syntaxHighlighting.enable = true;
 | 
			
		||||
  programs.zsh.autosuggestions.enable = true;
 | 
			
		||||
  programs.zsh.autosuggestions.async = true;
 | 
			
		||||
  programs.zsh.ohMyZsh.enable = true;
 | 
			
		||||
  programs.zsh.ohMyZsh.theme = "agnoster";
 | 
			
		||||
  users.defaultUserShell = pkgs.zsh;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								root/base/ssh/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								root/base/ssh/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
# SSH settings. Defined authorized internal key and enables key authentication.
 | 
			
		||||
{ user, ... }:
 | 
			
		||||
{
 | 
			
		||||
    services.openssh = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        settings.PasswordAuthentication = false;
 | 
			
		||||
        settings.KbdInteractiveAuthentication = false;
 | 
			
		||||
    };
 | 
			
		||||
    users.users.${user}.openssh.authorizedKeys.keys = [
 | 
			
		||||
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxNhl9lAA7SGpFv0/YhIrL+C1nrODGsvpXlevjpOP9d Interne Infrastruktur"
 | 
			
		||||
    ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								root/base/systemversion/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								root/base/systemversion/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
# NixOS state version.
 | 
			
		||||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  system.stateVersion = "25.05";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								root/base/upgrades/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								root/base/upgrades/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# Autoupdate settings. Maybe make it weekly.
 | 
			
		||||
{ hostName, ... }:
 | 
			
		||||
{
 | 
			
		||||
   # nix.optimise.automatic = true;
 | 
			
		||||
   # nix.optimise.dates = [ "03:45" ];
 | 
			
		||||
   # system.autoUpgrade = {
 | 
			
		||||
   #     enable = true;
 | 
			
		||||
   #     dates = "04:00";
 | 
			
		||||
   #     persistent = true;
 | 
			
		||||
   #     flake = "git+ssh://git@github.com/Moe1369/nixos-config.git?ref=main#${hostName}";
 | 
			
		||||
   #     flags = [
 | 
			
		||||
   #     ];
 | 
			
		||||
   #     allowReboot = false;
 | 
			
		||||
   # };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								root/base/users/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								root/base/users/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
# Define users. Hashed Password reused across devices.
 | 
			
		||||
{ user, ... }:
 | 
			
		||||
{
 | 
			
		||||
  users.users.${user} = {
 | 
			
		||||
    hashedPassword = "$y$j9T$qziHkyBuG215vEKwqmoFl1$Pd1zqAsFlx1.kENKSn7BCWA1vHTLF2wlq7BQjFxgTu8";
 | 
			
		||||
    description = "Mohamed Chrayed";
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    extraGroups = [ "wheel" "networkmanager" ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user