nixos modules for convenient deployment of cloud resources
1{
2 description = "nixos modules for convenient deployment of cloud resources";
3
4 inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
5
6 outputs = inp: let
7 l = inp.nixpkgs.lib;
8 pkgsInstances =
9 l.genAttrs
10 ["x86_64-linux"]
11 (s: inp.nixpkgs.legacyPackages.${s});
12 in {
13 nixosModules = {
14 firewall = ./firewall;
15 firewall-hetzner = ./firewall/hetzner;
16 };
17 checks =
18 l.mapAttrs
19 (_: pkgs: let
20 testSystem = l.nixosSystem {
21 system = pkgs.system;
22 modules = l.attrValues inp.self.nixosModules;
23 };
24 in {
25 firewall-hetzner-app = import ./firewall/hetzner/app.nix {
26 inherit pkgs;
27 taggedPorts = {
28 http.allowedTCPPorts = [80 443];
29 ssh.allowedTCPPorts = [22];
30 "bla bla" = {
31 allowedUDPPortRanges = [{from = 1332; to = 8891;}];
32 allowedTCPPorts = [101];
33 allowedUDPPorts = [102];
34 };
35 };
36 id = 1;
37 };
38 test-system-app =
39 (inp.self.makeApps {
40 inherit pkgs; nixosSystem = testSystem;
41 }).run;
42 })
43 pkgsInstances;
44 makeApps = import ./makeApps.nix;
45 };
46}