diff options
| -rw-r--r-- | 1systems/makefu/pnp.nix | 20 | ||||
| -rw-r--r-- | 2configs/makefu/cgit-retiolum.nix | 52 | ||||
| -rw-r--r-- | 3modules/krebs/default.nix | 26 | ||||
| -rw-r--r-- | 3modules/makefu/default.nix | 19 | 
4 files changed, 114 insertions, 3 deletions
| diff --git a/1systems/makefu/pnp.nix b/1systems/makefu/pnp.nix index 51f5bb00c..f98cd5276 100644 --- a/1systems/makefu/pnp.nix +++ b/1systems/makefu/pnp.nix @@ -9,7 +9,10 @@          [ # Include the results of the hardware scan.          <nixpkgs/nixos/modules/profiles/qemu-guest.nix>          ../../2configs/makefu/base.nix +        ../../3modules/krebs/retiolum.nix +        ../../2configs/makefu/cgit-retiolum.nix          ]; +    krebs.enable = true;      boot.loader.grub.enable = true;      boot.loader.grub.version = 2;      boot.loader.grub.device = "/dev/vda"; @@ -20,19 +23,32 @@      hardware.enableAllFirmware = true;      hardware.cpu.amd.updateMicrocode = true; +    # networking.firewall is enabled by default +    networking.firewall.allowedTCPPorts = [ 80 ]; +      fileSystems."/" =      { device = "/dev/disk/by-label/nixos";          fsType = "ext4";      }; +        krebs.retiolum = { +            enable = true; +            hosts = ../../Zhosts; +            connectTo = [ +                "gum" +                "pigstarter" +                "fastpoke" +            ]; +        };      nix.maxJobs = 1;      networking.hostName = "pnp"; # Define your hostname.  # $ nix-env -qaP | grep wget -    environment.systemPackages = with pkgs; [ +        environment.systemPackages = with pkgs; [          wget          git          gnumake -    ]; +        jq +        ];  } diff --git a/2configs/makefu/cgit-retiolum.nix b/2configs/makefu/cgit-retiolum.nix new file mode 100644 index 000000000..d5ad35fda --- /dev/null +++ b/2configs/makefu/cgit-retiolum.nix @@ -0,0 +1,52 @@ +{ config, lib, pkgs, ... }: +with import ../../4lib/tv { inherit lib pkgs; }; +let + +  out = { +    imports = [ ../../3modules/krebs/git.nix ]; +    krebs.git = { +      enable = true; +      root-title = "public repositories "; +      root-desc = "keep calm and enrage"; +      inherit repos rules ; +    }; +  }; + +  repos = public-repos; +  rules = concatMap make-rules (attrValues repos); + +  public-repos = mapAttrs make-public-repo { +    stockholm = { +      desc = "take all the computers hostage, they'll love you!"; +    }; +  }; + +  # TODO move users to separate module + +  make-public-repo = name: { desc ? null, ... }: { +    inherit name desc; +    public = true; +    hooks = { +      post-receive = git.irc-announce { +        nick = config.networking.hostName; +        channel = "#retiolum"; +        server = "cd.retiolum"; +      }; +    }; +  }; + +  make-rules = +    with git // config.krebs.users; +    repo: +      singleton { +        user = makefu; +        repo = [ repo ]; +        perm = push "refs/*" [ non-fast-forward create delete merge ]; +      } ++ +      optional repo.public { +        user = [ lass tv uriel ]; +        repo = [ repo ]; +        perm = fetch; +      }; + +in out diff --git a/3modules/krebs/default.nix b/3modules/krebs/default.nix index 4da2d7fa2..999e68da2 100644 --- a/3modules/krebs/default.nix +++ b/3modules/krebs/default.nix @@ -49,10 +49,34 @@ let    makefu-imp = {       hosts = addNames { +      pnp = { +        cores = 1; +        dc = "makefu"; #vm on 'omo' +        nets = { +          retiolum = { +            addrs4 = ["10.243.0.210"]; +            addrs6 = ["42:f9f1:0000:0000:0000:0000:0000:0001"]; +            aliases = [ +              "pnp.retiolum" +              "cgit.pnp.retiolum" +            ]; +            tinc.pubkey = '' +              -----BEGIN RSA PUBLIC KEY----- +              MIIBCgKCAQEAugkgEK4iy2C5+VZHwhjj/q3IOhhazE3TYHuipz37KxHWX8ZbjH+g +              Ewtm79dVysujAOX8ZqV8nD8JgDAvkIZDp8FCIK0/rgckhpTsy1HVlHxa7ECrOS8V +              pGz4xOxgcPFRbv5H2coHtbnfQc4GdA5fcNedQ3BP3T2Tn7n/dbbVs30bOP5V0EMR +              SqZwNmtqaDQxOvjpPg9EoHvAYTevrpbbIst9UzCyvmNli9R+SsiDrzEPgB7zOc4T +              TG12MT+XQr6JUu4jPpzdhb6H/36V6ADCIkBjzWh0iSfWGiFDQFinD+YSWbA1NOTr +              Qtd1I3Ov+He7uc2Z719mb0Og2kCGnCnPIwIDAQAB +              -----END RSA PUBLIC KEY----- +              ''; +          }; +        }; +      };      };      users = addNames {        makefu = { -        pubkey = readFile ../../Zpubkeys/makefu.ssh.pub; +        pubkey = readFile ../../Zpubkeys/makefu_arch.ssh.pub;        };      };    }; diff --git a/3modules/makefu/default.nix b/3modules/makefu/default.nix new file mode 100644 index 000000000..45ca8c3eb --- /dev/null +++ b/3modules/makefu/default.nix @@ -0,0 +1,19 @@ +{ config, lib, ... }: + +with import ../../4lib/krebs { inherit lib; }; +let +  cfg = config.krebs; + +  out = { +    imports = [ +    ]; +    options.krebs = api; +    config = mkIf cfg.enable imp; +  }; + +  api = { }; + +  imp = { }; + +in +out | 
