diff options
-rw-r--r-- | flake.nix | 110 | ||||
-rw-r--r-- | nixos/configurations.nix | 100 | ||||
-rw-r--r-- | nixos/default.nix | 4 |
3 files changed, 103 insertions, 111 deletions
@@ -16,118 +16,12 @@ usbkey.url = "git+https://git.cynerd.cz/usbkey?ref=modules"; }; - outputs = { self - , nixpkgs, flake-utils, nixos-hardware, nix - , personal-secret - , nixturris, vpsadminos - , shellrc, usbkey, sterm - }: + outputs = { self, nixpkgs, nix, nixos-hardware, flake-utils, shellrc, ... }: with flake-utils.lib; { overlays.default = final: prev: import ./pkgs { inherit self; nixpkgs = prev; }; nixosModules = import ./nixos self; - - nixosConfigurations = 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.kernelPackages = pkgs.linuxPackages_latest; - }) - { nixpkgs.overlays = [ (final: super: { - makeModulesClosure = x: - super.makeModulesClosure (x // { allowMissing = true; }); - })]; } - ]; - }; - raspi3System = genericSystem { - system = "aarch64-linux"; - extra_modules = [ - nixturris.nixosModules.turris-crossbuild - { - 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"; - + nixosConfigurations = import ./nixos/configurations.nix self; } // eachDefaultSystem (system: { packages = filterPackages system (flattenTree ( import ./pkgs { inherit self; nixpkgs = nixpkgs.legacyPackages."${system}"; } 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; |