diff --git a/flake.nix b/flake.nix index d5ef5c7..e6aa1ef 100644 --- a/flake.nix +++ b/flake.nix @@ -69,6 +69,7 @@ }; in { + nixosConfigurations."anemone" = mkSystem nixpkgs "anemone" "x86_64-linux" true []; nixosConfigurations."blossom" = mkSystem nixpkgs "blossom" "x86_64-linux" true []; nixosConfigurations."hyacinth" = mkSystem nixpkgs "hyacinth" "x86_64-linux" true []; diff --git a/hosts/anemone/default.nix b/hosts/anemone/default.nix new file mode 100644 index 0000000..76118cf --- /dev/null +++ b/hosts/anemone/default.nix @@ -0,0 +1,43 @@ +{ config, inputs, modules, overlays, pkgs, ... }: { + networking.hostName = "anemone"; + system.stateVersion = "23.11"; + time.timeZone = "Asia/Phnom_Penh"; + + nixpkgs.overlays = [ inputs.neovim-nightly.overlay ]; + age.secrets = { + passwd.file = ../../secrets/passwd.age; + #wg_hyacinth.file = ../../secrets/wg_blossom.age; + #wpa_conf.file = ../../secrets/wpa_conf.age; + }; + imports = with modules.system; [ + inputs.home-manager.nixosModule + home-manager + + audio + base + ccache + corectrl + flatpak + greetd + gui + input + kernel + nix + packages + printing + security + snapper + #wireguard + + ./filesystem.nix + ./kernel.nix + ./networking.nix + + ../../users/rin + ]; + + # For steam fhs-env + nixpkgs.config.permittedInsecurePackages = [ + "openssl-1.1.1w" + ]; +} diff --git a/hosts/anemone/filesystem.nix b/hosts/anemone/filesystem.nix new file mode 100644 index 0000000..2ba2d02 --- /dev/null +++ b/hosts/anemone/filesystem.nix @@ -0,0 +1,36 @@ +{ config, lib, ... }: +let + mkLabelMount = label: type: { + device = "/dev/disk/by-label/${label}"; + fsType = type; + options = [ "defaults" "relatime" ]; + }; + mkBtrfsMount = name: subvol: atime: mkLabelMount name "btrfs" // { + options = [ "autodefrag" "compress=zstd:3" "defaults" "discard=async" "space_cache=v2" "ssd" "subvol=${subvol}" (if atime then "relatime" else "noatime") ]; + }; + submount = mkBtrfsMount "Anemone"; +in +{ + fileSystems = { + "/" = { + device = "rootfs"; + fsType = "tmpfs"; + options = [ "defaults" "size=8G" "mode=755" ]; + }; + "/boot" = mkLabelMount "SYSTEM" "vfat"; + + "/mnt/butter" = submount "/" true; + "/nix" = submount "/current/snow" false; + "/home" = submount "/current/home" true; + "/home/.snapshots" = submount "/snapshot/home" false; + "/root" = submount "/current/root" false; + "/var" = submount "/current/var" false; + "/persist" = { + depends = [ "/var" ]; + device = "/var/persist"; + fsType = "none"; + options = [ "bind" ]; + neededForBoot = true; + }; + }; +} diff --git a/hosts/anemone/kernel.nix b/hosts/anemone/kernel.nix new file mode 100644 index 0000000..d782fe3 --- /dev/null +++ b/hosts/anemone/kernel.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, ... }: { + boot = { + loader = { + efi.canTouchEfiVariables = true; + systemd-boot.enable = true; + }; + initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + initrd.kernelModules = [ "amdgpu" ]; + kernelModules = [ "kvm-amd" ]; + kernelPackages = lib.mkForce (pkgs.linuxPackagesFor pkgs.me.linux-lava); + }; + + hardware.cpu.amd.updateMicrocode = true; +} diff --git a/hosts/anemone/networking.nix b/hosts/anemone/networking.nix new file mode 100644 index 0000000..d8ca7a7 --- /dev/null +++ b/hosts/anemone/networking.nix @@ -0,0 +1,12 @@ +{ config, ... }: { + networking = { + useDHCP = true; + nameservers = [ "1.1.1.1" "8.8.8.8" ]; + wireless.userControlled.enable = true; + + extraHosts = '' + 192.168.100.12 strawberry + 192.168.100.15 caramel + ''; + }; +} diff --git a/modules/system/kernel.nix b/modules/system/kernel.nix index 181ef90..e4c5b6b 100644 --- a/modules/system/kernel.nix +++ b/modules/system/kernel.nix @@ -9,7 +9,6 @@ "kernel.core_pattern" = "|/bin/false"; "kernel.sysrq" = 1; }; - loader.grub.useOSProber = true; }; hardware.enableRedistributableFirmware = true; zramSwap.enable = true; diff --git a/packages/linux-lava/sources.nix b/packages/linux-lava/sources.nix index f6ea9d4..9f1773b 100644 --- a/packages/linux-lava/sources.nix +++ b/packages/linux-lava/sources.nix @@ -1,7 +1,7 @@ { fetchFromGitHub, inputs, lib }: let version = "6.7.0"; - kernelHash = "1l2nisx9lf2vdgkq910n5ldbi8z25ky1zvl67zgwg2nxcdna09nr"; + kernelHash = "0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg"; kernelPatchHash = "1qnial7m91l3amcsgms3cs599pi529kvda1c982qk45s39y029xj"; mm = lib.versions.majorMinor version; diff --git a/secrets.nix b/secrets.nix index a713b13..f83332a 100644 --- a/secrets.nix +++ b/secrets.nix @@ -1,11 +1,12 @@ let + anemone = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEPFifSAybe97xDP/cq6AAjy7Fm0go0dtQ9ICK6JRUgc"; blossom = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA5wfPCcpkNR3ubr7cBV0UwVCDo/sMmV0aI/JOJTIxQj"; caramel = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIPFJT1XYyjDZFHYT/8RdxAReKkeU8QfpLrmMjEeW/80"; sugarcane = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIImymDDLSOdLcsox8wxS9Z84fsbsz6Mi58OU0od2p/ZQ"; rin = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPru5eTBvHJ4ZmrrzPRHCGM09wQP/ZHSaKYalDuBVO15"; in { - "secrets/passwd.age".publicKeys = [ blossom caramel sugarcane rin ]; + "secrets/passwd.age".publicKeys = [ anemone blossom caramel sugarcane rin ]; "secrets/wpa_conf.age".publicKeys = [ blossom caramel rin ]; "secrets/acme_dns.age".publicKeys = [ caramel rin ]; diff --git a/secrets/acme_dns.age b/secrets/acme_dns.age index aae2a16..17f90a8 100644 --- a/secrets/acme_dns.age +++ b/secrets/acme_dns.age @@ -1,10 +1,7 @@ age-encryption.org/v1 --> ssh-ed25519 U9FXlg dDnXFO4iUwixemx1WPFZSM15/z7xtAGjZxriBbsURRg -uv6gdP/LDmZMZu/B3IWWYEzfR+H7TJsR3Zo8hYzthQE --> ssh-ed25519 krYeuQ Yo3FXb2pDijXv2JxYvNP3IF0DADygWjIHEoUlfCw3zc -vly4m2xyGfuJxBPue0mk9dodc4YAEKYTWLwx9ljVhWs --> ,-grease -v4PvG0kmxXhjh7Jf ---- 6yg8u5a9px36osMqiVI4ZPfea+ySjKB8GR/TcCG/ZXU -qT!|E#r QT QMɑIX#:f|kSis^~^ _K}"I)GI -~ы*4A^w( \ No newline at end of file +-> ssh-ed25519 krYeuQ SBY9moNFVc8mdntk13DRWSIyoJfSuzsBrhzmaH8u51c +5QU1vtRllrmYsArw6LSktuRLQ7QbrtNBKVrOG8d2pyk +-> ssh-ed25519 U9FXlg HR/A429gFyLaUq6QSyTYv8yK5syfJbLDFzmhGGTZt1M +jCXRzzzp8vfB4n8pM6BAZr/IC9E+vBeeOm0AYGYBOe0 +--- /vlh5vuiRyVyiQpn4PZ5zBeUNaQclSW5Y5z1mR43fFg +,S=;9}J|5UjB{j-v(T7l^kɀQx^?`/N|aqxI \ No newline at end of file diff --git a/secrets/passwd.age b/secrets/passwd.age index 0e7d693..7d2a224 100644 Binary files a/secrets/passwd.age and b/secrets/passwd.age differ diff --git a/secrets/warden_admin.age b/secrets/warden_admin.age index 972ef49..ef48c4d 100644 --- a/secrets/warden_admin.age +++ b/secrets/warden_admin.age @@ -1,10 +1,8 @@ age-encryption.org/v1 --> ssh-ed25519 U9FXlg YL/xEUVIIOIeP2FRVxZhkCg/yaiX50S74HSMslKzoSw -SqzuQt4hd6ICDRlq+6Vqy0j/ZuNm3waCg7pUt9EqVD0 --> ssh-ed25519 krYeuQ IsFu0w7BFrTm5rAE6Ysxuievf3NiC60h/KkoUO51FUA -/BCYR/4qP+1449Kf2MY79sq0ahpjqI5fq7Sme2swU6U --> V;-grease ^F.M -lxjBnTXUAhPceJGeXm985SzVP4D2PsxkUEv/kKSx+6LGCHUzYAggYXi8C2ahorkY -XrYNvorBDG0aezi2GSicmAf4pQkkrLcvZhsmU+/QOKzyAxMw7V0 ---- jUlhN0y3o/J/jQlcN0um+lTQ3hZv2Ur0crxSsGeZ28c -DJ?w9%s5zkA3U"V3[in0kXi:LoaD'$O54&Ս² ^ULEQP/ \ No newline at end of file +-> ssh-ed25519 krYeuQ V3hCVmXcLm9tDavUNciUCqqCc7+hg6lJir0t4iUoOA4 +CH3+qpJsmjTJ9+lB7hr1nE5W9RteMtpkuJHlCOSrc0c +-> ssh-ed25519 U9FXlg VT5DxyuigkAL6btdC5Mt4vvCuzOB7xjuf/n/fYOALF0 +Ln3p2c9swsONWzPSkuY/ovv3HG8Sl/3dHpHqRHIckrU +--- sBS5K5WGRvcgrs9CRXZjvteE5qQrPhM/Trmhc7bU+dg +t f9Kh3"ԧcL\E@-nj b+BI; +(Q|0jrmHQ.hZ#l䘻1 OIptPxqCY \ No newline at end of file diff --git a/secrets/wg_blossom.age b/secrets/wg_blossom.age index 6b5df62..f7f550e 100644 --- a/secrets/wg_blossom.age +++ b/secrets/wg_blossom.age @@ -1,11 +1,8 @@ age-encryption.org/v1 --> ssh-ed25519 U9FXlg Y/Q29duiKdP+fV11ellTIMtHFyi9saczXfbcnq7iB0s -D9P8MAHlFOLR7P8Ux90CjljnhExARGnuSuw24AXOr5c --> ssh-ed25519 CUCjXQ eGpAJd5fydYBlC7o34CP7091jg4O4NsuLji1/rYtQVg -9/rgYCpe9wcCrLM7fTYI92oa+3+SAEK6ZgJNmBeOtnM --> A-grease xTj~+6%4 aF]RZn tj](JCp -5iDN8bexrr7eNqyFwBNCUefrOqAIS10KppbrdDJH1+fD0TkUifEOjcM2uV/+3tH2 -dYX5eM94zkmwxw ---- QKnJmu6ICTTfadXCKLKii03FXVTBqAFvbAZVHGzGLzE - ssh-ed25519 CUCjXQ iM2w01v4y0Q3DVbpGtt6f3HiHMRw7Xr08JgTB6fe8x4 +WiBMVRZr1edBVfLAPAFT4GSEGoyn9jWzO92yysNM9Mo +-> ssh-ed25519 U9FXlg Bvlaqu4nEbjfBGgBFKDmD1cBbxH2+dyz1BHzegz1AS4 ++sf3rC0J2Ik1SNtpr52GxV6G6tzGLiwlvjXFWE3qrSw +--- yaZjH1jeXqPGiw1lIkH9uz6QJo/nM1lBezbpVlJDNUM +cgj" +U"^ *ADvl2cRq).NLtZjCB5l^0)䥆. \ No newline at end of file diff --git a/secrets/wg_caramel.age b/secrets/wg_caramel.age index 2a18202..37276ac 100644 Binary files a/secrets/wg_caramel.age and b/secrets/wg_caramel.age differ diff --git a/secrets/wg_sugarcane.age b/secrets/wg_sugarcane.age index 9c96739..ef79954 100644 Binary files a/secrets/wg_sugarcane.age and b/secrets/wg_sugarcane.age differ diff --git a/secrets/wpa_conf.age b/secrets/wpa_conf.age index 60be4db..17e93a9 100644 Binary files a/secrets/wpa_conf.age and b/secrets/wpa_conf.age differ