nixos modules for convenient deployment of cloud resources
at main 1.2 kB view raw
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}