From 0c66cff9f2be96a6bfb4db3adf1bf54bde3838db Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 6 Jan 2026 17:40:10 +0900 Subject: [PATCH] hosts/skrott: move here from the dibbler repo --- flake.lock | 57 +++++++++++++++++++++++++++++++- flake.nix | 27 ++++++++++++--- hosts/skrott/configuration.nix | 60 ++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+), 5 deletions(-) create mode 100644 hosts/skrott/configuration.nix diff --git a/flake.lock b/flake.lock index dedcdf6..8ca743e 100644 --- a/flake.lock +++ b/flake.lock @@ -21,6 +21,28 @@ "type": "github" } }, + "dibbler": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767688395, + "narHash": "sha256-vvAr3XPLmpG8cP1F0csbxfVNipiWD5Jhtg2lE42H+AQ=", + "ref": "main", + "rev": "1733843b772dc0055f0182155c9a105bccd7a858", + "revCount": 216, + "type": "git", + "url": "https://git.pvv.ntnu.no/Projects/dibbler.git" + }, + "original": { + "ref": "main", + "type": "git", + "url": "https://git.pvv.ntnu.no/Projects/dibbler.git" + } + }, "disko": { "inputs": { "nixpkgs": [ @@ -62,6 +84,23 @@ "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "id": "flake-utils", + "type": "indirect" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { "lastModified": 1726560853, "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", @@ -250,7 +289,7 @@ "nix-topology": { "inputs": { "devshell": "devshell", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs" ], @@ -368,6 +407,7 @@ }, "root": { "inputs": { + "dibbler": "dibbler", "disko": "disko", "gergle": "gergle", "greg-ng": "greg-ng", @@ -505,6 +545,21 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 3c2ed6a..5c71ccf 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,9 @@ pvv-calendar-bot.url = "git+https://git.pvv.ntnu.no/Projects/calendar-bot.git?ref=main"; pvv-calendar-bot.inputs.nixpkgs.follows = "nixpkgs"; + dibbler.url = "git+https://git.pvv.ntnu.no/Projects/dibbler.git?ref=main"; + dibbler.inputs.nixpkgs.follows = "nixpkgs"; + matrix-next.url = "github:dali99/nixos-matrix-modules/v0.8.0"; matrix-next.inputs.nixpkgs.follows = "nixpkgs"; @@ -81,6 +84,7 @@ name: configurationPath: extraArgs@{ + system ? "x86_64-linux", specialArgs ? { }, modules ? [ ], overlays ? [ ], @@ -88,9 +92,7 @@ ... }: lib.nixosSystem (lib.recursiveUpdate - (let - system = "x86_64-linux"; - in { + { inherit system; specialArgs = { @@ -118,11 +120,13 @@ inputs.roowho2.overlays.default ]) ++ overlays; }; - }) + } (builtins.removeAttrs extraArgs [ + "system" "modules" "overlays" "specialArgs" + "enableDefaults" ]) ); @@ -207,6 +211,16 @@ inputs.gergle.overlays.default ]; }; + skrott = stableNixosConfig "skrott" { + system = "aarch64-linux"; + modules = [ + (nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64.nix") + inputs.dibbler.nixosModules.default + ]; + overlays = [ + inputs.dibbler.overlays.default + ]; + }; } // (let @@ -268,6 +282,11 @@ lib.genAttrs allMachines (machine: self.nixosConfigurations.${machine}.config.system.build.toplevel) // + # Skrott is exception + { + skrott = self.nixosConfigurations.skrott.config.system.build.sdImage; + } + // # Nix-topology (let topology' = import inputs.nix-topology { diff --git a/hosts/skrott/configuration.nix b/hosts/skrott/configuration.nix new file mode 100644 index 0000000..f4cfc26 --- /dev/null +++ b/hosts/skrott/configuration.nix @@ -0,0 +1,60 @@ +{ lib, fp, ... }: { + imports = [ + # ./hardware-configuration.nix + + (fp /base) + ]; + + boot = { + consoleLogLevel = 0; + enableContainers = false; + loader.grub.enable = false; + }; + + # Now turn off a bunch of stuff lol + system.autoUpgrade.enable = lib.mkForce false; + services.irqbalance.enable = lib.mkForce false; + services.logrotate.enable = lib.mkForce false; + services.nginx.enable = lib.mkForce false; + services.postfix.enable = lib.mkForce false; + + # TODO: can we reduce further? + + system.stateVersion = "25.05"; + + # sops.defaultSopsFile = fp /secrets/skrott/skrott.yaml; + # sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; + # sops.age.keyFile = "/var/lib/sops-nix/key.txt"; + # sops.age.generateKey = true; + + # zramSwap.enable = true; + + networking = { + hostName = "skrot"; + interfaces.eth0 = { + useDHCP = false; + ipv4.addresses = [{ + address = "129.241.210.235"; + prefixLength = 25; + }]; + }; + }; + + services.dibbler = { + enable = true; + kioskMode = true; + limitScreenWidth = 80; + limitScreenHeight = 42; + }; + + # https://github.com/NixOS/nixpkgs/issues/84105 + boot.kernelParams = [ + "console=ttyUSB0,9600" + # "console=tty1" # Already part of the module + ]; + systemd.services."serial-getty@ttyUSB0" = { + enable = true; + wantedBy = [ "getty.target" ]; # to start at boot + serviceConfig.Restart = "always"; # restart when session is closed + }; +}