From 86bec559e6f02c8c5c51ef5bf117cceece7b3a8d Mon Sep 17 00:00:00 2001 From: JuliusFreudenberger Date: Sun, 29 Mar 2026 21:00:09 +0200 Subject: [PATCH] Add busch-main-docker server --- flake.nix | 14 +++++++ hosts/busch-main-docker/default.nix | 42 +++++++++++++++++++ .../hardware-configuration.nix | 17 ++++++++ modules/disko/legacy-full-ext4.nix | 28 +++++++++++++ 4 files changed, 101 insertions(+) create mode 100644 hosts/busch-main-docker/default.nix create mode 100644 hosts/busch-main-docker/hardware-configuration.nix create mode 100644 modules/disko/legacy-full-ext4.nix diff --git a/flake.nix b/flake.nix index 04be147..0d1fcc0 100644 --- a/flake.nix +++ b/flake.nix @@ -135,6 +135,20 @@ ]; }; + busch-main-docker = nixpkgs.lib.nixosSystem rec { + system = "x86_64-linux"; + + specialArgs = { + inherit inputs outputs; + }; + + modules = [ + ./hosts/busch-main-docker + disko.nixosModules.disko + agenix.nixosModules.default + ]; + }; + srv01-hf = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; diff --git a/hosts/busch-main-docker/default.nix b/hosts/busch-main-docker/default.nix new file mode 100644 index 0000000..42b93a4 --- /dev/null +++ b/hosts/busch-main-docker/default.nix @@ -0,0 +1,42 @@ +{ inputs, outputs, config, lib, pkgs, ... }: + +{ + imports = + [ + ../../modules/disko/legacy-full-ext4.nix + + ../../users/julius/nixos-server.nix + ../../modules/nix.nix + ../../modules/auto-upgrade.nix + ../../modules/locale.nix + ../../modules/server-cli.nix + ../../modules/sshd.nix + ../../modules/docker.nix + "${inputs.secrets}/modules/opkssh.nix" + + # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + # Use the GRUB 2 boot loader. + boot = { + loader.grub = { + enable = true; + }; + tmp.useTmpfs = true; + }; + networking.hostName = "docker-main"; # Define your hostname. + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "25.05"; # Did you read the comment? +} diff --git a/hosts/busch-main-docker/hardware-configuration.nix b/hosts/busch-main-docker/hardware-configuration.nix new file mode 100644 index 0000000..54932ff --- /dev/null +++ b/hosts/busch-main-docker/hardware-configuration.nix @@ -0,0 +1,17 @@ +# 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 + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; +} diff --git a/modules/disko/legacy-full-ext4.nix b/modules/disko/legacy-full-ext4.nix new file mode 100644 index 0000000..3cb3094 --- /dev/null +++ b/modules/disko/legacy-full-ext4.nix @@ -0,0 +1,28 @@ +{ + disko.devices = { + disk = { + sda = { + type = "disk"; + device = "/dev/sda"; + content = { + type = "gpt"; + partitions = { + MBR = { + type = "EF02"; # for grub MBR + size = "1M"; + priority = 1; # Needs to be first partition + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; + }; +}