{ inputs, outputs, lib, config, pkgs, ... }: { imports = [ ./hardware-configuration.nix inputs.home-manager.nixosModules.home-manager ]; # General time.timeZone = "Europe/Berlin"; i18n.defaultLocale = "en_US.UTF-8"; # Boot boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Networking networking.hostName = "dnsc-server"; networking.networkmanager.enable = true; # My user account users.users.dennis = { description = "dennis"; isNormalUser = true; extraGroups = [ "wheel" "networkmanager" ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILvXWZOPOJJDAoF+Sx/ZLoAVu6G/7/MAWoknBgMAzjul dennis@dnsc-mac" ]; }; # Home Manager Setup home-manager = { extraSpecialArgs = { inherit inputs outputs; }; users = { dennis = import ./home.nix; }; }; # Enable new Nix CLI and flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Install system wide packages environment.systemPackages = with pkgs; [ git btop neovim wget ]; # Programs # GnuPG programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # Services # SSH Settings services.openssh = { enable = true; settings = { X11Forwarding = false; PermitRootLogin = "no"; PasswordAuthentication = false; }; openFirewall = true; }; # Firewall Settings networking.firewall.enable = true; # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Environment variables environment.variables.EDITOR = "nvim"; # Copy the NixOS configuration file and link it from the resulting system # (/run/current-system/configuration.nix). This is useful in case you # accidentally delete configuration.nix. # system.copySystemConfiguration = true; # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # and migrated your data accordingly. # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "24.11"; }