feat: init config

This commit is contained in:
Zhongheng Liu 2024-07-31 07:45:22 +00:00
commit f10f6922fb
6 changed files with 287 additions and 0 deletions

85
nixos/configuration.nix Normal file
View file

@ -0,0 +1,85 @@
# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{
inputs,
lib,
config,
pkgs,
...
}:
let
myHostName = "homelab-nix";
stevenUserName = "stvnliu";
in
{
imports = [
#inputs.hardware.nixosModules.common-cpu-amd
#inputs.hardware.nixosModules.common-ssd
./hardware-configuration.nix
./services/display-manager.nix
];
boot.loader = {
efi.canTouchEfiVariables = true;
grub = {
enable = true;
useOSProber = true;
efiSupport = true;
fsIdentifier = "label";
devices = [ "nodev" ];
extraEntries = ''
menuentry "Reboot" {
reboot
}
menuentry "Poweroff" {
halt
}
'';
};
};
nixpkgs = {
overlays = [
];
config = {
allowUnfree = true;
};
};
nix = let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in {
settings = {
experimental-features = "nix-command flakes";
flake-registry = "";
nix-path = config.nix.nixPath;
};
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
};
networking = {
hostName = "${myHostName}";
networkmanager.enable = true;
};
users.users = {
"${stevenUserName}" = {
initialPassword = "stevenpassword";
isNormalUser = true;
openssh.authorizedKeys.keys = [
];
packages = with pkgs; [
nh
neovim
gitFull
];
extraGroups = ["wheel"];
};
};
services.openssh = {
enable = true;
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.05";
}