{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-krypton.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-schule.url = "github:NixOS/nixpkgs/nixos-unstable"; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; chaosevents = { url = "git+https://git.clerie.de/clerie/chaosevents.git"; inputs.nixpkgs.follows = "nixpkgs"; }; fernglas = { url = "github:wobcom/fernglas"; inputs.nixpkgs.follows = "nixpkgs"; }; fieldpoc.url = "git+https://git.clerie.de/clerie/fieldpoc.git"; nixos-exporter = { url = "git+https://git.clerie.de/clerie/nixos-exporter.git"; inputs.nixpkgs.follows = "nixpkgs"; }; solid-xmpp-alarm = { url = "git+https://git.clerie.de/clerie/solid-xmpp-alarm.git"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, chaosevents, fernglas, nixos-exporter, solid-xmpp-alarm, ... }@inputs: let helper = (import ./lib/flake-helper.nix) inputs; in { clerie.hosts = { aluminium = { name = "aluminium"; group = "event"; }; astatine = { name = "astatine"; group = "event"; }; backup-4 = { name = "backup-4"; }; beryllium = { name = "beryllium"; group = "event"; }; carbon = { name = "carbon"; }; clerie-backup = { name = "clerie-backup"; }; dn42-il-gw1 = { name = "dn42-il-gw1"; }; dn42-il-gw5 = { name = "dn42-il-gw5"; }; dn42-il-gw6 = { name = "dn42-il-gw6"; }; dn42-ildix-clerie = { name = "dn42-ildix-clerie"; }; dn42-ildix-service = { name = "dn42-ildix-service"; }; gatekeeper = { name = "gatekeeper"; }; hydra-1 = { name = "hydra-1"; }; hydra-2 = { name = "hydra-2"; }; krypton = { name = "krypton"; }; mail-2 = { name = "mail-2"; }; minecraft-2 = { name = "minecraft-2"; }; monitoring-3 = { name = "monitoring-3"; }; nonat = { name = "nonat"; }; osmium = { name = "osmium"; }; palladium = { name = "palladium"; }; porter = { name = "porter"; }; schule = { name = "schule"; }; storage-2 = { name = "storage-2"; }; web-2 = { name = "web-2"; }; _iso = { name = "_iso"; }; }; nixosConfigurations = helper.mapToNixosConfigurations self.clerie.hosts; colmena = { meta = { nixpkgs = import nixpkgs {}; }; } // helper.mapToColmenaHosts self.nixosConfigurations; packages.x86_64-linux = let pkgs = import nixpkgs { overlays = [ (import ./pkgs/overlay.nix) ]; system = "x86_64-linux"; }; in { inherit (pkgs) anycast_healthchecker flask-excel iot-data pyexcel-xlsx pyexcel-webio uptimestatus wetter; }; hydraJobs = { inherit (self) packages; nixosConfigurations = helper.buildHosts self.nixosConfigurations; iso = self.nixosConfigurations._iso.config.system.build.isoImage; }; }; }