Commit 43fb6df9099f

Vincent Demeester <vincent@sbr.pm>
2026-09-15 22:26:57
feat(shikoku): prepare clean NixOS base
Reset the former media and virtualization host to a minimal, reproducible installation target for future infrastructure migrations. Keep the base on the established 26.05 server channel while retaining a current kernel for its workshop role. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent e0c5ca7
systems/shikoku/boot.nix
@@ -1,56 +1,20 @@
-{
-  config,
-  pkgs,
-  ...
-}:
+{ pkgs, ... }:
 {
   boot = {
-    # supportedFilesystems = [ "zfs" ];
     initrd.availableKernelModules = [
-      "xhci_pci"
       "ahci"
       "nvme"
-      "usb_storage"
-      "usbhid"
       "sd_mod"
       "sr_mod"
-    ];
-    initrd.kernelModules = [
-      "vfio_pci"
-      "vfio"
-      "vfio_iommu_type1"
-
-      "nvidia"
-      "nvidia_modeset"
-      "nvidia_uvm"
-      "nvidia_drm"
+      "usb_storage"
+      "usbhid"
+      "xhci_pci"
     ];
     kernelModules = [
-      "ahci" # sata controller, might not be needed
-      "nvme" # required for nvme disks
-      "thunderbolt" # required for thunderbolt (dock, …)
-      # from thinkpad x1 gen 9
-      "dm-mod"
-      "cryptd" # required for encryption
-      "xhci_pci" # usb controller related
-      "usb_storage" # usb storage related
-      "sd_mod" # block device related
-      "sdhci_pci" # block device related as well
-      "aesni-intel" # advanced encryption for intel
-      "kvm_intel"
+      "thunderbolt"
       "kvm-intel"
-      "nvidia"
     ];
-    extraModulePackages = [
-      config.boot.kernelPackages.nvidiaPackages.stable
-      config.boot.kernelPackages.nvidia_x11
-    ];
-    kernelParams = [
-      "intel_iommu=on"
-      "kvm_intel.nested=1"
-      # ("vfio-pci.ids=" + lib.concatStringsSep "," gpuIDs)
-    ];
-
+    kernelParams = [ "kvm_intel.nested=1" ];
     kernelPackages = pkgs.linuxPackages_latest;
   };
 }
systems/shikoku/disks.nix
@@ -1,17 +1,10 @@
 _: {
   disko.devices = {
-    # NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
-    # sda           8:0    0   489G  0 disk
-    # sdb           8:16   0   1.8T  0 disk
-    # sdc           8:32   0 465.8G  0 disk
-    # nvme0n1     259:0    0 232.9G  0 disk
-    # nvme1n1     259:3    0 232.9G  0 disk
     disk = {
-      # 512GB root/boot drive. Configured with:
-      # - A FAT32 ESP partition for systemd-boot
-      # - A LUKS container which contains an EXT4 filesystem
       root = {
         type = "disk";
+        # Verify with lsblk before installing. Override with --disk root DEVICE
+        # when the system disk changes, for example after adding Okinawa's NVMe.
         device = "/dev/nvme0n1";
         content = {
           type = "gpt";
systems/shikoku/extra.nix
@@ -1,92 +1,1 @@
-{
-  pkgs,
-  ...
-}:
-{
-  imports = [
-
-    ../common/services/containers.nix
-    ../common/services/docker.nix
-    ../common/services/libvirt.nix
-  ];
-
-  age.secrets."aria2RPCSecret" = {
-    file = ../../secrets/shikoku/aria2rpcsecret.age;
-    mode = "444";
-    owner = "aria2";
-    group = "aria2";
-  };
-  nixpkgs.config.permittedInsecurePackages = [
-    "dotnet-sdk-6.0.428"
-    "aspnetcore-runtime-6.0.36"
-  ];
-
-  services = {
-
-    aria2 = {
-      enable = true;
-      openPorts = true;
-      # extraArguments = "--max-concurrent-downloads=20";
-      settings = {
-        max-concurrent-downloads = 20;
-      };
-      downloadDir = "/data/downloads";
-      rpcSecretFile = "${pkgs.writeText "aria" "aria2rpc\n"}";
-    };
-    bazarr = {
-      enable = true;
-      # Use reverse proxy instead
-      openFirewall = true;
-    };
-    radarr = {
-      enable = true;
-      # Use reverse proxy instead
-      openFirewall = true;
-    };
-    sonarr = {
-      enable = true;
-      # Use reverse proxy instead
-      openFirewall = true;
-    };
-    prowlarr = {
-      enable = true;
-      # Use reverse proxy instead
-      openFirewall = true;
-    };
-    readarr = {
-      enable = true;
-      # Use reverse proxy instead
-      openFirewall = true;
-    };
-    lidarr = {
-      enable = true;
-      # Use reverse proxy instead
-      openFirewall = true;
-    };
-    smartd = {
-      enable = true;
-      devices = [ { device = "/dev/nvme0n1"; } ];
-    };
-    ollama = {
-      enable = true;
-      package = pkgs.ollama.override {
-        config.cudaSupport = true;
-        config.rocmSupport = false;
-      };
-      acceleration = "cuda"; # no nivida :D
-    };
-  };
-
-  # Move this to a "builder" role, or maybe I don't need this anymore ?
-  users.extraUsers.builder = {
-    isNormalUser = true;
-    uid = 1018;
-    extraGroups = [ ];
-    openssh.authorizedKeys.keys = [ (builtins.readFile ../../secrets/builder.pub) ];
-  };
-  nix.settings.trusted-users = [
-    "root"
-    "vincent"
-    "builder"
-  ];
-}
+_: { }
systems/shikoku/hardware.nix
@@ -1,81 +1,14 @@
-{
-  inputs,
-  lib,
-  config,
-  ...
-}:
+{ inputs, ... }:
 {
   imports = [
     inputs.disko.nixosModules.disko
-    (import ./disks.nix { inherit lib; })
+    ./disks.nix
   ];
-  fileSystems."/" = {
-    device = "/dev/disk/by-uuid/73fd8864-f6af-4fdd-b826-0dfdeacd3c19";
-    fsType = "ext4";
-    options = [
-      "noatime"
-      "discard"
-    ];
-  };
-
-  fileSystems."/boot" = {
-    device = "/dev/disk/by-uuid/829D-BFD1";
-    fsType = "vfat";
-  };
-
-  # Extra data
-  # HDD:   b58e59a4-92e7-4278-97ba-6fe361913f50
-  fileSystems."/data" = {
-    device = "/dev/disk/by-uuid/b58e59a4-92e7-4278-97ba-6fe361913f50";
-    fsType = "ext4";
-    options = [ "noatime" ];
-  };
-  # ZFS Pool
-  # SSD1:  469077df-049f-4f5d-a34f-1f5449d782ec
-  # SSD2:  e11a3b63-791c-418b-9f4b-5ae0199f1f97
-  # NVME2: 3d2dff80-f2b1-4c48-8e76-12b01fdf4137
-  # boot.zfs.extraPools = [ "tank" ];
-  # networking.hostId = "03129692bea040488878aa0133e54914";
-  # networking.hostId = "03129692";
-  # fileSystems."/tank/data" =
-  #   {
-  #     device = "tank/data";
-  #     fsType = "zfs";
-  #     options = [ "zfsutil" ];
-  #   };
-  #
-  # fileSystems."/tank/virt" =
-  #   {
-  #     device = "tank/virt";
-  #     fsType = "zfs";
-  #     options = [ "zfsutil" ];
-  #   };
 
   swapDevices = [
     {
-      device = "/dev/disk/by-uuid/a9ec44e6-0c1d-4f60-9f5c-81a7eaa8e8fd";
+      device = "/swapfile";
+      size = 8 * 1024; # 8 GiB
     }
   ];
-
-  networking = {
-    hostId = builtins.substring 0 8 (builtins.hashString "md5" config.networking.hostName);
-    # Bridge setup
-    bridges.br1.interfaces = [ "enp0s31f6" ];
-    useDHCP = false;
-    interfaces.br1 = {
-      useDHCP = true;
-    };
-    # FIXME probably change this
-    firewall.enable = false; # we are in safe territory :D
-  };
-  hardware.nvidia = {
-    modesetting.enable = true;
-    open = false;
-    nvidiaSettings = true;
-    package = config.boot.kernelPackages.nvidiaPackages.stable;
-  };
-  hardware.graphics = {
-    enable = true;
-  };
-  nixpkgs.config.allowUnfree = true;
 }
flake.nix
@@ -91,9 +91,12 @@
         sakhalin = libx.mkHost {
           hostname = "sakhalin";
         };
-        # shikoku = libx.mkHost {
-        #   hostname = "shikoku";
-        # };
+        shikoku = libx.mkHost {
+          hostname = "shikoku";
+          pkgsInput = inputs.nixpkgs-26_05;
+          homeInput = inputs.home-manager-26_05;
+          agenixInput = inputs.agenix-26_05;
+        };
         # Servers (stable)
         aix = libx.mkHost {
           hostname = "aix";