aboutsummaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
Diffstat (limited to 'nixos')
-rw-r--r--nixos/configurations.nix100
-rw-r--r--nixos/default.nix4
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;