37 lines
1.1 KiB
Nix
37 lines
1.1 KiB
Nix
{ inputs }:
|
|
|
|
let
|
|
modules = import ../modules;
|
|
|
|
mkHost = name: extraModules:
|
|
inputs.nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
specialArgs = { inherit inputs; };
|
|
modules = [
|
|
./common.nix
|
|
inputs.sops-nix.nixosModules.sops
|
|
inputs.disko.nixosModules.disko
|
|
# All three boxes are identical qemu guests, so they share one
|
|
# hardware-configuration.nix and one disko disk layout (single
|
|
# /dev/sda → GPT → LVM → ext4 root). disko derives fileSystems +
|
|
# bootloader devices from disk-config.nix. db-host additionally
|
|
# imports the /dev/sdb data disk from ./db-host.nix.
|
|
./hardware-configurations/hardware-configuration.nix
|
|
./hardware-configurations/disk-config.nix
|
|
modules.gebos-secrets
|
|
modules.gebos-postgres
|
|
modules.gebos-supabase
|
|
modules.gebos-caddy
|
|
modules.gebos-hivemq
|
|
modules.gebos-ingester
|
|
modules.gebos-frontend
|
|
./${name}.nix
|
|
] ++ extraModules;
|
|
};
|
|
in
|
|
{
|
|
db-host = mkHost "db-host" [ ];
|
|
app-host = mkHost "app-host" [ ];
|
|
mqtt-ingest = mkHost "mqtt-ingest" [ ];
|
|
}
|