From 1eec29e99c155dbf0de2b0cdd482e2fb63b7bae6 Mon Sep 17 00:00:00 2001 From: Sridhar Ratnakumar <3998+srid@users.noreply.github.com> Date: Wed, 3 Apr 2024 03:23:26 -0400 Subject: [PATCH] Setup ax41 dedicated server (2024) (#53) --- flake.nix | 5 +++++ nixos/disko/trivial.nix | 4 ++-- systems/ax41.nix | 48 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 systems/ax41.nix diff --git a/flake.nix b/flake.nix index 764ab01..cca8e4d 100644 --- a/flake.nix +++ b/flake.nix @@ -82,6 +82,11 @@ nixosConfigurations.github-runner = self.nixos-flake.lib.mkLinuxSystem ./systems/github-runner.nix; + + # Hetzner dedicated + nixosConfigurations.immediacy = + self.nixos-flake.lib.mkLinuxSystem + ./systems/ax41.nix; }; perSystem = { self', pkgs, lib, config, ... }: { diff --git a/nixos/disko/trivial.nix b/nixos/disko/trivial.nix index a7fd981..e3abf4b 100644 --- a/nixos/disko/trivial.nix +++ b/nixos/disko/trivial.nix @@ -4,8 +4,8 @@ disko.devices = { disk = { main = { - # When using disko-install, we will overwrite this value from the commandline - device = "/dev/disk/by-id/some-disk-id"; + # TODO: Don't hardcode (this file is used by multiple systems) + device = "/dev/nvme0n1"; type = "disk"; content = { type = "gpt"; diff --git a/systems/ax41.nix b/systems/ax41.nix new file mode 100644 index 0000000..24d92b5 --- /dev/null +++ b/systems/ax41.nix @@ -0,0 +1,48 @@ +{ flake, pkgs, lib, ... }: + +let + inherit (flake) inputs; + inherit (inputs) self; +in +{ + imports = [ + inputs.disko.nixosModules.disko + self.nixosModules.default + "${self}/nixos/disko/trivial.nix" + "${self}/nixos/nix.nix" + "${self}/nixos/self/primary-as-admin.nix" + # "${self}/nixos/server/harden/basics.nix" + ]; + + system.stateVersion = "23.11"; + networking.hostName = "immediacy"; + nixpkgs.hostPlatform = "x86_64-linux"; + boot.loader.grub = { + devices = [ "/dev/nvme0n1" ]; + efiSupport = true; + efiInstallAsRemovable = true; + }; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "sd_mod" ]; + hardware.cpu.intel.updateMicrocode = true; + hardware.enableRedistributableFirmware = true; + + # Hetzner networking + networking.useDHCP = false; + networking.interfaces."eth0".ipv4.addresses = [ + { + address = "65.109.84.215"; # your IPv4 here + prefixLength = 24; + } + ]; + networking.interfaces."eth0".ipv6.addresses = [ + { + address = "2a01:4f9:3051:52d3::2"; # Your IPv6 here + prefixLength = 64; + } + ]; + networking.defaultGateway = "65.109.84.193"; + networking.nameservers = [ "8.8.8.8" ]; + + + services.openssh.enable = true; +}