initial setup

This commit is contained in:
2025-05-29 13:53:53 +02:00
commit 9f1f69cf9b
112 changed files with 3344 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
# Shell Apps for every host.
{ pkgs, ... }:
{
environment.systemPackages =
(with pkgs; [
wget
git
nil
yaml-language-server
]);
}

View 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";
}

View File

@@ -0,0 +1,6 @@
{ ... }:
{
networking.firewall = {
enable = false;
};
}

View File

@@ -0,0 +1,6 @@
# Firmware updater.
{ ... }:
{
services.fwupd.enable = true;
hardware.enableAllFirmware = true;
}

View 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";
}

View 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";
};
}

View 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;
}

View 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;
}

View 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" ];
}

View File

@@ -0,0 +1,5 @@
# For now only enable rtkit.
{ ... }:
{
security.rtkit.enable = true;
}

View 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
View 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"
];
}

View File

@@ -0,0 +1,5 @@
# NixOS state version.
{ ... }:
{
system.stateVersion = "25.05";
}

View 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;
# };
}

View 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" ];
};
}