Add voyager host

This commit is contained in:
ItsDrike 2024-06-19 14:10:37 +00:00
parent 3c22f0372a
commit 657149e5c3
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
3 changed files with 169 additions and 0 deletions

View file

@ -31,4 +31,15 @@ in
inputs.lanzaboote.nixosModules.lanzaboote
] ++ shared;
};
voyager = lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit lib inputs self; };
modules = [
./voyager
inputs.home-manager.nixosModules.home-manager
inputs.impermanence.nixosModules.impermanence
inputs.lanzaboote.nixosModules.lanzaboote
] ++ shared;
};
}

89
hosts/voyager/default.nix Normal file
View file

@ -0,0 +1,89 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
boot.supportedFilesystems = [ "btrfs" ];
hardware.enableAllFirmware = true;
# My flake disables this by default for security reasons. However, with an encrypted setup,
# which requires entering password before booting anyways, this is not a security concern, and
# changing kernel params can be useful sometimes for debugging
boot.loader.systemd-boot.editor = true;
# CPU usage configuration for nix
nix.settings = {
max-jobs = 8;
cores = 6;
};
# NixOS release from which this machine was first installed
# (for stateful data, like file locations and db versions)
# Leave this alone!
system.stateVersion = "24.05";
myOptions = {
system = {
hostname = "voyager";
username = "itsdrike";
sound.enable = true;
bluetooth.enable = true;
# TODO: Impermanence
};
device = {
roles = {
type = "laptop";
virtual-machine = false;
};
cpu.type = "amd";
gpu.type = null;
hasTPM = true;
};
security = {
auditd = {
enable = true;
autoPrune.enable = true;
};
};
workstation = {
printing.enable = true;
};
home-manager = {
enable = true;
stateVersion = "24.05";
git = {
userName = "ItsDrike";
userEmail = "itsdrike@protonmail.com";
signing = {
enable = true;
key = "FA2745890B7048C0";
};
};
wms.hyprland = {
enable = true;
monitor = [
"eDP-1, 1920x1080@60, 0x0, 1"
];
};
programs = {
spotify.enable = true;
};
};
};
}

View file

@ -0,0 +1,69 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.luks.devices."cryptfs".device = "/dev/disk/by-label/NIXOS-CRYPTFS";
fileSystems."/" =
{ device = "/dev/disk/by-label/NIXOS-FS";
fsType = "btrfs";
options = [ "subvol=root" "noatime" "compress=zstd:3" ];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-label/NIXOS-FS";
fsType = "btrfs";
options = [ "subvol=nix" "noatime" "compress=zstd:3" ];
};
fileSystems."/persist" =
{ device = "/dev/disk/by-label/NIXOS-FS";
fsType = "btrfs";
options = [ "subvol=persist" "noatime" "compress=zstd:3" ];
neededForBoot = true;
};
fileSystems."/home" =
{ device = "/dev/disk/by-label/NIXOS-FS";
fsType = "btrfs";
options = [ "subvol=home" "noatime" "compress=zstd:3" ];
};
fileSystems."/data" =
{ device = "/dev/disk/by-label/NIXOS-FS";
fsType = "btrfs";
options = [ "subvol=data" "noatime" "compress=zstd:3" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/EFI";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-label/SWAP"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}