nix-infra/flake.nix
2023-11-09 23:10:51 +01:00

83 lines
1.8 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nixos-generators, ... }: {
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}
];
};
colmena = {
meta = {
nixpkgs = import nixpkgs {
system = "x86_64-linux";
};
};
} // builtins.mapAttrs (self.generateColmenaHost) self.hosts;
hydraJobs = {
nixConfigurations.nitter = let system = "x86_64-linux";
in nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./configuration/common
./configuration/proxmox-vm
./hosts/nitter
];
};
};
# 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";
};
};
};
}