From 81dbc3ba9acba706b80b26518a5bee1fe63a6cca Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Tue, 17 Feb 2026 15:11:46 +0000 Subject: [PATCH] Add working amd-legacy-quadcore --- flake.nix | 7 ++ .../amd-legacy-quadcore/configuration.nix | 33 ++++++++ host/nocix/amd-legacy-quadcore/default.nix | 6 ++ .../nocix/amd-legacy-quadcore/disk-config.nix | 80 +++++++++++++++++++ .../hardware-configuration.nix | 39 +++++++++ host/nocix/amd-legacy-quadcore/network.nix | 42 ++++++++++ 6 files changed, 207 insertions(+) create mode 100644 host/nocix/amd-legacy-quadcore/configuration.nix create mode 100644 host/nocix/amd-legacy-quadcore/default.nix create mode 100644 host/nocix/amd-legacy-quadcore/disk-config.nix create mode 100644 host/nocix/amd-legacy-quadcore/hardware-configuration.nix create mode 100644 host/nocix/amd-legacy-quadcore/network.nix diff --git a/flake.nix b/flake.nix index f93385a..a48e354 100644 --- a/flake.nix +++ b/flake.nix @@ -60,6 +60,13 @@ ]; inherit configFiles disko home-manager inputs nixpkgs nixvim sops-nix system timecard-bot; }; + "nocix-amd-legacy-quadcore" = import ./system.nix { + configuration = ./host/nocix/amd-legacy-quadcore; + roles = [ + ./roles/nidus-sync.nix + ]; + inherit configFiles disko home-manager inputs nixpkgs nixvim sops-nix system timecard-bot; + }; "nocix-amd-legacy-sexcore" = import ./system.nix { configuration = ./host/nocix/amd-legacy-sexcore; roles = [ diff --git a/host/nocix/amd-legacy-quadcore/configuration.nix b/host/nocix/amd-legacy-quadcore/configuration.nix new file mode 100644 index 0000000..b0b43c0 --- /dev/null +++ b/host/nocix/amd-legacy-quadcore/configuration.nix @@ -0,0 +1,33 @@ +{ + lib, + modulesPath, + pkgs, + ... +} @ args: +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + (modulesPath + "/profiles/qemu-guest.nix") + ./disk-config.nix + ./network.nix + ]; + boot.loader.grub = { + # no need to set devices, disko will add all devices that have a EF02 partition to the list already + # devices = [ ]; + efiSupport = true; + efiInstallAsRemovable = true; + }; + environment.systemPackages = map lib.lowPrio [ + pkgs.curl + pkgs.dig + pkgs.gitMinimal + ]; + services.openssh.enable = true; + users.users.root.openssh.authorizedKeys.keys = + [ + # change this to your ssh key + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBvhtF6nRWlA6PVs71Eek7p0p2PxTd3P6ZEGFV2t75MB eliribble@nixos" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHL1SpT3KR8XeXtH19muncYVrKxWzWdWtJYNTwoJGTm3 eliribble@Elis-Mac-mini.local" + ] ++ (args.extraPublicKeys or []); # this is used for unit-testing this module and can be removed if not needed + system.stateVersion = "25.11"; +} diff --git a/host/nocix/amd-legacy-quadcore/default.nix b/host/nocix/amd-legacy-quadcore/default.nix new file mode 100644 index 0000000..246ffea --- /dev/null +++ b/host/nocix/amd-legacy-quadcore/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/host/nocix/amd-legacy-quadcore/disk-config.nix b/host/nocix/amd-legacy-quadcore/disk-config.nix new file mode 100644 index 0000000..ecafdcb --- /dev/null +++ b/host/nocix/amd-legacy-quadcore/disk-config.nix @@ -0,0 +1,80 @@ +# Example to create a bios compatible gpt partition +{ lib, ... }: +{ + disko.devices = { + disk = { + root = { + device = "/dev/sda"; + type = "disk"; + content = { + type = "gpt"; + partitions = { + MBR = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + boot = { + size = "500M"; + type = "EF00"; # for grub MBR + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ + "defaults" + ]; + }; + }; + root = { + size = "100%"; + content = { + type = "lvm_pv"; + vg = "pool"; + }; + }; + }; + }; + }; + /* + data = { + device = "/dev/sdb"; + type = "disk"; + content = { + type = "gpt"; + partitions = { + bigdisk = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/mnt/bigdisk"; + mountOptions = [ + "defaults" + ]; + }; + }; + }; + }; + }; + */ + }; + lvm_vg = { + pool = { + type = "lvm_vg"; + lvs = { + root = { + size = "100%FREE"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + mountOptions = [ + "defaults" + ]; + }; + }; + }; + }; + }; + }; +} diff --git a/host/nocix/amd-legacy-quadcore/hardware-configuration.nix b/host/nocix/amd-legacy-quadcore/hardware-configuration.nix new file mode 100644 index 0000000..56a7f33 --- /dev/null +++ b/host/nocix/amd-legacy-quadcore/hardware-configuration.nix @@ -0,0 +1,39 @@ +# 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 = [ "ahci" "ohci_pci" "ehci_pci" "xhci_pci" "sd_mod" ]; + boot.initrd.kernelModules = [ "dm-snapshot" ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + # yeah, when I enabled this everything about the server died. + /* + fileSystems = { + "/" = { + device = "/dev/sda3"; + }; + "/mnt/bigdisk" = { + device = "762be975-bbf0-4fd6-998f-7eb077b580cb"; + options = [ "users" "nofail" ]; + }; + }; + */ + + # 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/host/nocix/amd-legacy-quadcore/network.nix b/host/nocix/amd-legacy-quadcore/network.nix new file mode 100644 index 0000000..87f1245 --- /dev/null +++ b/host/nocix/amd-legacy-quadcore/network.nix @@ -0,0 +1,42 @@ +{ lib, ... }: +{ + networking = { + defaultGateway = { + address = "69.197.185.113"; + interface = "enp3s0"; + }; + defaultGateway6 = { + address = "2604:4300:a:14c::"; + interface = "enp3s0"; + }; + domain = "gleipnir.technology"; + firewall = { + allowedUDPPorts = [ 22 80 443 7000 16652 ]; + allowedTCPPorts = [ 22 80 443 7000 16652 ]; + enable = false; + /*interfaces.enp3s0 = { + allowedUDPPorts = [ 22 80 443 7000 16652 ]; + allowedTCPPorts = [ 22 80 443 7000 16652 ]; + };*/ + }; + hostName = "nocix-amd-legacy-quadcore"; + interfaces.enp3s0 = { + ipv4.addresses = [{ + address = "69.197.185.114"; + prefixLength = 29; + } { + address = "69.197.185.115"; + prefixLength = 29; + }]; + ipv6.addresses = [{ + address = "2604:4300:a:14c::2"; + prefixLength = 64; + }]; + }; + nameservers = ["8.8.8.8"]; + networkmanager.enable = false; + nftables.enable = true; + useNetworkd = true; + search = ["nocix.net"]; + }; +}