diff options
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/configurations.nix | 100 | ||||
-rw-r--r-- | nixos/default.nix | 4 |
2 files changed, 101 insertions, 3 deletions
diff --git a/nixos/configurations.nix b/nixos/configurations.nix new file mode 100644 index 0000000..8977c7c --- /dev/null +++ b/nixos/configurations.nix @@ -0,0 +1,100 @@ +self: +with self.inputs; +let + + modules = hostname: [ + self.nixosModules.default + self.nixosModules."machine-${hostname}" + shellrc.nixosModules.default + usbkey.nixosModules.default + (personal-secret.lib.personalSecrets hostname) + { + networking.hostName = hostname; + nixpkgs.overlays = [ + self.overlays.default + sterm.overlay + ]; + } + ]; + + genericSystem = {system ? "x86_64-linux", extra_modules ? []}: + hostname: { + ${hostname} = nixpkgs.lib.nixosSystem { + system = system; + modules = (modules hostname) ++ extra_modules; + }; + }; + amd64System = genericSystem { }; + vpsSystem = genericSystem { + extra_modules = [ + vpsadminos.nixosConfigurations.container + { boot.loader.systemd-boot.enable = false; } + ]; + }; + raspi2System = genericSystem { + system = "armv7l-linux"; + extra_modules = [ + nixos-hardware.nixosModules.raspberry-pi-2 + nixturris.nixosModules.turris-crossbuild + nixturris.nixosModules.armv7l-overlay + ({pkgs, ...}: { + boot.loader.systemd-boot.enable = false; + boot.initrd.includeDefaultModules = false; + }) + ]; + }; + raspi3System = genericSystem { + system = "aarch64-linux"; + extra_modules = [ + nixturris.nixosModules.turris-crossbuild + ({pkgs, ...}: { + boot.kernelPackages = pkgs.linuxPackages_rpi3; + boot.initrd.includeDefaultModules = false; + boot.loader.grub.enable = false; + boot.loader.systemd-boot.enable = false; + boot.loader.raspberryPi = { + enable = true; version = 3; + }; + }) + ]; + }; + beagleboneSystem = genericSystem { + system = "armv7l-linux"; + extra_modules = [ + nixturris.nixosModules.turris-crossbuild + nixturris.nixosModules.armv7l-overlay + { + boot.loader.grub.enable = false; + boot.loader.systemd-boot.enable = false; + boot.loader.generic-extlinux-compatible.enable = true; + } + ]; + }; + + turrisSystem = board: hostname: { + ${hostname} = nixturris.lib.nixturrisSystem { + nixpkgs = nixpkgs; + board = board; + modules = modules hostname; + }; + }; + turrisMoxSystem = turrisSystem "mox"; + turrisOmniaSystem = turrisSystem "omnia"; + +in + amd64System "albert" // + amd64System "binky" // + amd64System "errol" // + amd64System "ridcully" // + amd64System "susan" // + vpsSystem "lipwig" // + vpsSystem "mrpump" // + raspi2System "spt-mpd" // + raspi3System "adm-mpd" // + beagleboneSystem "gaspode" // + turrisMoxSystem "dean" // + turrisOmniaSystem "spt-omnia" // + turrisMoxSystem "spt-mox" // + turrisMoxSystem "spt-mox2" // + turrisOmniaSystem "adm-omnia" // + turrisOmniaSystem "adm-omnia2" diff --git a/nixos/default.nix b/nixos/default.nix index 64593bb..939d438 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -1,6 +1,4 @@ -self: - -let +self: let modules = import ./modules self.inputs.nixpkgs; machines = import ./machine self; |