From b421c3de6856939abca158ee40f57611bd881f3f Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Mon, 4 Nov 2024 21:23:24 +0100 Subject: [PATCH] introduce new host --- modules/nixos/submodules/basics/default.nix | 4 +-- modules/nixos/tools/git/default.nix | 2 +- modules/nixos/user/default.nix | 7 ++++ systems/x86_64-linux/loptland/default.nix | 37 +++++++++++++++++++++ systems/x86_64-linux/loptland/hardware.nix | 35 +++++++++++++++++++ 5 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 systems/x86_64-linux/loptland/default.nix create mode 100644 systems/x86_64-linux/loptland/hardware.nix diff --git a/modules/nixos/submodules/basics/default.nix b/modules/nixos/submodules/basics/default.nix index 9200885..bdc697b 100644 --- a/modules/nixos/submodules/basics/default.nix +++ b/modules/nixos/submodules/basics/default.nix @@ -13,7 +13,7 @@ let in { options.${namespace}.submodules.basics = with types; { - enable = mkBoolOpt false "Whether or not to enable basic configuration."; + enable = mkEnableOption "Whether or not to enable basic configuration."; }; config = mkIf cfg.enable { @@ -29,7 +29,7 @@ in #optional pciutils usbutils - htop + btop ]; ${namespace} = { diff --git a/modules/nixos/tools/git/default.nix b/modules/nixos/tools/git/default.nix index ad7eb11..8b37b71 100644 --- a/modules/nixos/tools/git/default.nix +++ b/modules/nixos/tools/git/default.nix @@ -24,7 +24,7 @@ in environment.systemPackages = with pkgs; [ git gitAndTools.gh - gitbutler + # gitbutler ]; ${namespace}.home.extraOptions = { diff --git a/modules/nixos/user/default.nix b/modules/nixos/user/default.nix index efdc078..62fb307 100644 --- a/modules/nixos/user/default.nix +++ b/modules/nixos/user/default.nix @@ -48,6 +48,11 @@ in icon = mkOpt (nullOr package) defaultIcon "The profile picture to use for the user."; extraGroups = mkOpt (listOf str) [ ] "Groups for the user to be assigned."; extraOptions = mkOpt attrs { } (mdDoc "Extra options passed to `users.users.`."); + trustedPublicKeys = mkOption { + default = [ ]; + type = nullOr (listOf str); + description = "Trusted public keys for this user for the machine"; + }; }; config = { @@ -92,6 +97,8 @@ in # system to select). uid = 1000; + openssh.authorizedKeys.keys = cfg.trustedPublicKeys; + extraGroups = [ "steamcmd" ] ++ cfg.extraGroups; } // cfg.extraOptions; }; diff --git a/systems/x86_64-linux/loptland/default.nix b/systems/x86_64-linux/loptland/default.nix new file mode 100644 index 0000000..241b786 --- /dev/null +++ b/systems/x86_64-linux/loptland/default.nix @@ -0,0 +1,37 @@ +{ + lib, + namespace, + pkgs, + ... +}: +let + inherit (lib.${namespace}) enabled; +in +{ + imports = [ ./hardware.nix ]; + + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = false; + KbdInteractiveAuthentication = false; + }; + }; + + ${namespace} = { + submodules = { + basics = enabled; + }; + + services = { + factorio-server = enabled; + }; + + user.trustedPublicKeys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0" + ]; + + }; + + system.stateVersion = "24.11"; +} diff --git a/systems/x86_64-linux/loptland/hardware.nix b/systems/x86_64-linux/loptland/hardware.nix new file mode 100644 index 0000000..38d1a1f --- /dev/null +++ b/systems/x86_64-linux/loptland/hardware.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + modulesPath, + ... +}: + +{ + imports = [ + (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ + "ata_piix" + "uhci_hcd" + "virtio_pci" + "sr_mod" + "virtio_blk" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; + + swapDevices = [ ]; + + networking.useDHCP = lib.mkDefault true; + + nixpkgs.hostplatform = lib.mkDefault "x86_64-linux"; +}