{ description = "Zentralwerk network"; inputs = { nixpkgs.url = "github:nixos/nixpkgs"; zentralwerk-network-key.url = "git+https://gitea.c3d2.de/zentralwerk/network.git?dir=nix/key&ref=nix"; }; outputs = inputs@{ self, nixpkgs, zentralwerk-network-key }: let system = "x86_64-linux"; systems = [ system ]; forAllSystems = nixpkgs.lib.genAttrs systems; nixosConfig = name: self.lib.nixosSystem { inherit system; modules = [ self.nixosModule ]; specialArgs.hostName = name; specialArgs.lib = self.lib; specialArgs.self = self; specialArgs.inputs = inputs; }; in { lib = nixpkgs.lib.extend (final: prev: import ./nix/lib { inherit self; inherit (zentralwerk-network-key.lib) gpgKey; pkgs = nixpkgs.legacyPackages.x86_64-linux; }); packages = forAllSystems (system: import ./nix/pkgs { inherit self nixpkgs system; } ); nixosModule = { ... }: { imports = [ ./nix/nixos-module ]; }; nixosConfigurations = builtins.mapAttrs (hostName: _: nixosConfig hostName) ( nixpkgs.lib.filterAttrs (_: { role, ... }: builtins.elem role [ "server" "container" ] ) self.lib.config.site.hosts ); checks = self.packages; }; }