network/flake.nix

56 lines
1.5 KiB
Nix

{
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 = { 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;
};
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
);
# nixosConfigurations.test_vm =
# nixpkgs.lib.nixosSystem {
# inherit system;
# modules = [ nixosModule ];
# extraModules = [ ({ ... }: {
# networking.hostName = "test_vm";
# }) ];
# };
};
}