1
0
nixfiles/flake.nix
2022-12-09 23:24:09 +01:00

166 lines
4.2 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { self, nixpkgs, ... }: let
pkgs = import nixpkgs {
overlays = [
(import ./pkgs/overlay.nix)
];
system = "x86_64-linux";
};
system = "x86_64-linux";
in {
nixosConfigurations = {
backup-4 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/backup-4/configuration.nix
];
};
carbon = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/carbon/configuration.nix
];
};
clerie-backup = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/clerie-backup/configuration.nix
];
};
dn42-il-gw1 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/dn42-il-gw1/configuration.nix
];
};
dn42-il-gw5 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/dn42-il-gw5/configuration.nix
];
};
dn42-il-gw6 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/dn42-il-gw6/configuration.nix
];
};
dn42-ildix-clerie = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/dn42-ildix-clerie/configuration.nix
];
};
gatekeeper = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/gatekeeper/configuration.nix
];
};
hydra-1 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/hydra-1/configuration.nix
];
};
hydra-2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/hydra-2/configuration.nix
];
};
minecraft-2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/minecraft-2/configuration.nix
];
};
monitoring-3 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/monitoring-3/configuration.nix
];
};
nonat = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/nonat/configuration.nix
];
};
osmium = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/osmium/configuration.nix
];
};
palladium = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/palladium/configuration.nix
];
};
porter = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/porter/configuration.nix
];
};
schule = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./configuration/common
./hosts/schule/configuration.nix
];
};
storage-2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/storage-2/configuration.nix
];
};
web-2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/web-2/configuration.nix
];
};
};
colmena = {
meta = {
nixpkgs = import nixpkgs {};
};
defaults = { name, ... }: {
deployment = {
targetHost = "${name}.net.clerie.de";
targetUser = null;
};
};
} // builtins.mapAttrs (name: host: {
nixpkgs.system = host.config.nixpkgs.system;
imports = host._module.args.modules;
deployment.allowLocalDeployment = builtins.any (n: n == name) [ "schule" "osmium" ];
}) self.nixosConfigurations;
packages.x86_64-linux = {
inherit (pkgs)
anycast_healthchecker
flask-excel
iot-data
pyexcel-xlsx
pyexcel-webio
uptimestatus
wetter;
};
hydraJobs = {
inherit (self)
packages;
nixosConfigurations = builtins.mapAttrs (name: host: host.config.system.build.toplevel) self.nixosConfigurations;
};
};
}