{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, nixos-generators, ... }@inputs: let helper = (import ./helper.nix) inputs; in { hosts = { hydra = { site = "vs"; }; iperf = { site = "vs"; }; jackett = { site = "vs"; }; nitter = { site = "vs"; }; nixos-coturn = { site = "vs"; }; tor-relay = { site = "vs"; }; web-public-2 = { site = "vs"; }; }; generateColmenaHost = name: host: { deployment = { targetHost = "${name}.${host.site}.grzb.de"; targetUser = "colmena-deploy"; }; imports = [ ./configuration/common ./configuration/proxmox-vm ./configuration/proxmox-vm/hardware-configuration.nix ./hosts/${name} ] ++ nixpkgs.lib.optional (builtins.pathExists ./hosts/${name}/secrets.nix) ./hosts/${name}/secrets.nix; }; colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; }; }; } // builtins.mapAttrs (self.generateColmenaHost) self.hosts; nixosConfigurations = nixpkgs.lib.mapAttrs (name: config: let nodeNixpkgs = self.outputs.colmena.meta.nodeNixpkgs.${name} or self.outputs.colmena.meta.nixpkgs; nodeNixos = import (nodeNixpkgs.path + "/nixos/lib/eval-config.nix"); in nodeNixos { modules = [ #self.outputs.colmena.defaults config #inputs.colmena.nixosModules.deploymentOptions { _module.args.name = nixpkgs.lib.mkForce name; _module.args.nodes = self.outputs.nixosConfigurations; #nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays; } ]; inherit (nodeNixpkgs) system; } ) (builtins.removeAttrs self.outputs.colmena ["meta" "defaults"]); hydraJobs = { nixosConfigurations = nixpkgs.lib.mapAttrs (_: config: config.config.system.build.toplevel) self.outputs.nixosConfigurations; }; /* nixosConfigurations = (builtins.mapAttrs (helper.mapToNixosConfigurations) self.hosts); hydraJobs = { nixConfigurations = helper.buildHosts self.nixosConfigurations; }; */ # Generate a base VM image for Proxmox with `nix build .#base-proxmox` packages.x86_64-linux = { base-proxmox = nixos-generators.nixosGenerate { system = "x86_64-linux"; modules = [ ./configuration/common ./configuration/nixos-generators ./configuration/proxmox-vm ]; format = "proxmox"; }; }; }; }