diff options
61 files changed, 1486 insertions, 549 deletions
diff --git a/krebs/3modules/apt-cacher-ng.nix b/krebs/3modules/apt-cacher-ng.nix new file mode 100644 index 000000000..75296bafb --- /dev/null +++ b/krebs/3modules/apt-cacher-ng.nix @@ -0,0 +1,157 @@ +{ config, pkgs, lib, ... }: + +with lib; +let +  acng-config = pkgs.writeTextFile { +    name = "acng-configuration"; +    destination = "/acng.conf"; +    text = '' +      ForeGround: 1 +      CacheDir: ${cfg.cacheDir} +      LogDir: ${cfg.logDir} +      PidFile: /var/run/apt-cacher-ng.pid +      ExTreshold: ${toString cfg.cacheExpiration} +      CAfile: ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt + +      Port: ${toString cfg.port} +      BindAddress: ${cfg.bindAddress} + +      # defaults: +      Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian +      Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu +      Remap-debvol: file:debvol_mirror*.gz /debian-volatile ; file:backends_debvol +      Remap-cygwin: file:cygwin_mirrors /cygwin +      Remap-sfnet:  file:sfnet_mirrors +      Remap-alxrep: file:archlx_mirrors /archlinux +      Remap-fedora: file:fedora_mirrors +      Remap-epel:   file:epel_mirrors +      Remap-slrep:  file:sl_mirrors # Scientific Linux +      Remap-gentoo: file:gentoo_mirrors.gz /gentoo ; file:backends_gentoo + +      ReportPage: acng-report.html +      SupportDir: ${pkgs.apt-cacher-ng}/lib/apt-cacher-ng +      LocalDirs: acng-doc ${pkgs.apt-cacher-ng}/share/doc/apt-cacher-ng + +      # Nix cache +      ${optionalString cfg.enableNixCache '' +        Remap-nix: http://cache.nixos.org /nixos ; https://cache.nixos.org +        PfilePatternEx: (^|.*?/).*\.nar(info)?(|\.gz|\.xz|\.bz2)$ +        VfilePatternEx: (^|.*?/)nix-cache-info$ +      ''} + +      ${cfg.extraConfig} +    ''; +  }; + +  acng-home = "/var/cache/acng"; +  cfg = config.krebs.apt-cacher-ng; + +  api = { +    enable = mkEnableOption "apt-cacher-ng"; + +    cacheDir = mkOption { +      default = acng-home + "/cache"; +      type = types.str; +      description = '' +        Path to apt-cacher-ng cache directory. +        Will be created and chowned to acng-user +      ''; +    }; + +    logDir = mkOption { +      default = acng-home + "/log"; +      type = types.str; +      description = '' +        Path to apt-cacher-ng log directory. +        Will be created and chowned to acng-user +      ''; +    }; + +    port = mkOption { +      default = 3142; +      type = types.int; +      description = '' +        port of apt-cacher-ng +      ''; +    }; + +    bindAddress = mkOption { +      default = ""; +      type = types.str; +      example = "localhost 192.168.7.254 publicNameOnMainInterface"; +      description = '' +        listen address of apt-cacher-ng. Defaults to every interface. +      ''; +    }; + +    cacheExpiration = mkOption { +      default = 4; +      type = types.int; +      description = '' +        number of days before packages expire in the cache without being +        requested. +      ''; +    }; + +    enableNixCache = mkOption { +      default = true; +      type = types.bool; +      description = '' +        enable cache.nixos.org caching via PfilePatternEx and VfilePatternEx. + +        to use the apt-cacher-ng in your nixos configuration: +          nix.binary-cache = [ http://acng-host:port/nixos ]; + +        These options cannot be used in extraConfig, use SVfilePattern and +        SPfilePattern or disable this option. +      ''; +    }; + +    extraConfig = mkOption { +      default = ""; +      type = types.lines; +      description = '' +        extra config appended to the generated acng.conf +      ''; +    }; +  }; + +  imp = { + +    users.extraUsers.acng = { +    # uid = config.ids.uids.acng; +      uid = 897955083; #genid Reaktor +      description = "apt-cacher-ng"; +      home = acng-home; +      createHome = false; +    }; + +    users.extraGroups.acng = { +      gid = 897955083; #genid Reaktor +    # gid = config.ids.gids.Reaktor; +    }; + +    systemd.services.apt-cacher-ng = { +      description = "apt-cacher-ng"; +      after = [ "network.target" ]; +      wantedBy = [ "multi-user.target" ]; +      serviceConfig = { +        PermissionsStartOnly = true; +        ExecStartPre = pkgs.writeScript "acng-init" '' +          #!/bin/sh +          mkdir -p ${shell.escape cfg.cacheDir} ${shell.escape cfg.logDir} +          chown acng:acng  ${shell.escape cfg.cacheDir} ${shell.escape cfg.logDir} +        ''; +        ExecStart = "${pkgs.apt-cacher-ng}/bin/apt-cacher-ng -c ${acng-config}"; +        PrivateTmp = "true"; +        User = "acng"; +        Restart = "always"; +        RestartSec = "10"; +      }; +    }; +  }; +in +{ +  options.krebs.apt-cacher-ng = api; +  config = mkIf cfg.enable imp; +} diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix index a908d437b..6d2b090a2 100644 --- a/krebs/3modules/default.nix +++ b/krebs/3modules/default.nix @@ -6,6 +6,7 @@ let    out = {      imports = [ +      ./apt-cacher-ng.nix        ./bepasty-server.nix        ./build.nix        ./current.nix @@ -13,6 +14,7 @@ let        ./exim-smarthost.nix        ./github-hosts-sync.nix        ./git.nix +      ./go.nix        ./iptables.nix        ./nginx.nix        ./per-user.nix @@ -85,6 +87,7 @@ let        krebs.dns.providers = {          de.krebsco = "zones";          gg23 = "hosts"; +        shack = "hosts";          internet = "hosts";          retiolum = "hosts";        }; diff --git a/lass/3modules/go.nix b/krebs/3modules/go.nix index aa900f118..793d1f60d 100644 --- a/lass/3modules/go.nix +++ b/krebs/3modules/go.nix @@ -4,10 +4,10 @@ with builtins;  with lib;  let -  cfg = config.lass.go; +  cfg = config.krebs.go;    out = { -    options.lass.go = api; +    options.krebs.go = api;      config = mkIf cfg.enable imp;    }; @@ -26,6 +26,11 @@ let    };    imp = { +    services.redis = { +      enable = mkDefault true; +      bind = mkDefault "127.0.0.1"; +    }; +      users.extraUsers.go = {        name = "go";        uid = 42774411; #genid go diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix index 2ad4353bd..26b0947bb 100644 --- a/krebs/3modules/lass/default.nix +++ b/krebs/3modules/lass/default.nix @@ -2,42 +2,14 @@  with lib; -let -  testHosts = lib.genAttrs [ -    "test-arch" -    "test-centos6" -    "test-centos7" -  ] (name: { -    inherit name; -    cores = 1; -    nets = { -      retiolum = { -        addrs4 = ["10.243.111.111"]; -        addrs6 = ["42:0:0:0:0:0:0:7357"]; -        aliases = [ -          "test.retiolum" -        ]; -        tinc.pubkey = '' -          -----BEGIN RSA PUBLIC KEY----- -          MIIBCgKCAQEAy41YKF/wpHLnN370MSdnAo63QUW30aw+6O79cnaJyxoL6ZQkk4Nd -          mrX2tBIfb2hhhgm4Jecy33WVymoEL7EiRZ6gshJaYwte51Jnrac6IFQyiRGMqHY5 -          TG/6IzzTOkeQrT1fw3Yfh0NRfqLBZLr0nAFoqgzIVRxvy+QO1gCU2UDKkQ/y5df1 -          K+YsMipxU08dsOkPkmLdC/+vDaZiEdYljIS3Omd+ED5JmLM3MSs/ZPQ8xjkjEAy8 -          QqD9/67bDoeXyg1ZxED2n0+aRKtU/CK/66Li//yev6yv38OQSEM4t/V0dr9sjLcY -          VIdkxKf96F9r3vcDf/9xw2HrqVoy+D5XYQIDAQAB -          -----END RSA PUBLIC KEY----- -        ''; -      }; -    }; -  }); -in { +{    hosts = addNames {      echelon = {        cores = 2;        dc = "lass"; #dc = "cac";        nets = rec {          internet = { -          addrs4 = ["167.88.34.158"]; +          addrs4 = ["162.252.241.33"];            aliases = [              "echelon.internet"            ]; @@ -241,7 +213,7 @@ in {        };      }; -  } // testHosts; +  };    users = addNames {      lass = {        pubkey = readFile ../../Zpubkeys/lass.ssh.pub; diff --git a/krebs/3modules/shared/default.nix b/krebs/3modules/shared/default.nix index 24dd7b782..b332676c6 100644 --- a/krebs/3modules/shared/default.nix +++ b/krebs/3modules/shared/default.nix @@ -2,15 +2,48 @@  with lib; -{ +let +  testHosts = lib.genAttrs [ +    "test-arch" +    "test-centos6" +    "test-centos7" +  ] (name: { +    inherit name; +    cores = 1; +    nets = { +      retiolum = { +        addrs4 = ["10.243.111.111"]; +        addrs6 = ["42:0:0:0:0:0:0:7357"]; +        aliases = [ +          "test.retiolum" +        ]; +        tinc.pubkey = '' +          -----BEGIN RSA PUBLIC KEY----- +          MIIBCgKCAQEAy41YKF/wpHLnN370MSdnAo63QUW30aw+6O79cnaJyxoL6ZQkk4Nd +          mrX2tBIfb2hhhgm4Jecy33WVymoEL7EiRZ6gshJaYwte51Jnrac6IFQyiRGMqHY5 +          TG/6IzzTOkeQrT1fw3Yfh0NRfqLBZLr0nAFoqgzIVRxvy+QO1gCU2UDKkQ/y5df1 +          K+YsMipxU08dsOkPkmLdC/+vDaZiEdYljIS3Omd+ED5JmLM3MSs/ZPQ8xjkjEAy8 +          QqD9/67bDoeXyg1ZxED2n0+aRKtU/CK/66Li//yev6yv38OQSEM4t/V0dr9sjLcY +          VIdkxKf96F9r3vcDf/9xw2HrqVoy+D5XYQIDAQAB +          -----END RSA PUBLIC KEY----- +        ''; +      }; +    }; +  }); +in {    hosts = addNames {      wolf = { -      #dc = "shack"; +      dc = "shack";        nets = { -        #shack = { -        #  addrs4 = [ TODO ]; -        #  aliases = ["wolf.shack"]; -        #}; +        shack = { +          addrs4 = [ "10.42.2.150" ]; +          aliases = [ +            "wolf.shack" +            "graphite.shack" +            "acng.shack" +            "drivedroid.shack" +          ]; +        };          retiolum = {            addrs4 = ["10.243.77.1"];            addrs6 = ["42:0:0:0:0:0:77:1"]; @@ -32,7 +65,7 @@ with lib;        ssh.privkey.path = <secrets/ssh.id_ed25519>;        ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKYMXMWZIK0jjnZDM9INiYAKcwjXs2241vew54K8veCR";      }; -  }; +  } // testHosts;    users = addNames {      shared = {        mail = "spam@krebsco.de"; diff --git a/krebs/3modules/tinc_graphs.nix b/krebs/3modules/tinc_graphs.nix index e415d20ab..20aa385a9 100644 --- a/krebs/3modules/tinc_graphs.nix +++ b/krebs/3modules/tinc_graphs.nix @@ -89,9 +89,9 @@ let        };        restartIfChanged = true; -        serviceConfig = {          Type = "simple"; +        restart = "always";          ExecStartPre = pkgs.writeScript "tinc_graphs-init" ''            #!/bin/sh diff --git a/krebs/4lib/infest/prepare.sh b/krebs/4lib/infest/prepare.sh index 182a068ef..0bfc49380 100644 --- a/krebs/4lib/infest/prepare.sh +++ b/krebs/4lib/infest/prepare.sh @@ -66,6 +66,7 @@ prepare_debian() {    type bzip2 2>/dev/null || apt-get install bzip2    type git   2>/dev/null || apt-get install git    type rsync 2>/dev/null || apt-get install rsync +  type curl 2>/dev/null || apt-get install curl    prepare_common  } diff --git a/krebs/5pkgs/Reaktor/default.nix b/krebs/5pkgs/Reaktor/default.nix index c38aa6423..c4a362757 100644 --- a/krebs/5pkgs/Reaktor/default.nix +++ b/krebs/5pkgs/Reaktor/default.nix @@ -2,14 +2,14 @@  python3Packages.buildPythonPackage rec {    name = "Reaktor-${version}"; -  version = "0.5.0"; +  version = "0.5.1";    propagatedBuildInputs = with pkgs;[      python3Packages.docopt      python3Packages.requests2    ];    src = fetchurl {      url = "https://pypi.python.org/packages/source/R/Reaktor/Reaktor-${version}.tar.gz"; -    sha256 = "1npag52xmnyqv56z0anyf6xf00q0smfzsippal0xdbxrfj7s8qim"; +    sha256 = "0dn9r0cyxi1sji2pnybsrc4hhaaq7hmf235nlgkrxqlsdb7y6n6n";    };    meta = {      homepage = http://krebsco.de/; diff --git a/krebs/5pkgs/apt-cacher-ng/default.nix b/krebs/5pkgs/apt-cacher-ng/default.nix new file mode 100644 index 000000000..f253cdba0 --- /dev/null +++ b/krebs/5pkgs/apt-cacher-ng/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, cmake, doxygen, zlib, openssl, bzip2, pkgconfig, libpthreadstubs }: + +stdenv.mkDerivation rec { +  name = "apt-cacher-ng-${version}"; +  version = "0.8.6"; + +  src = fetchurl { +    url = "http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_${version}.orig.tar.xz"; +    sha256 = "0044dfks8djl11fs28jj8894i4rq424xix3d3fkvzz2i6lnp8nr5"; +  }; + +  NIX_LDFLAGS = "-lpthread"; +  buildInputs = [ doxygen cmake zlib openssl bzip2 pkgconfig libpthreadstubs ]; + +  meta = { +    description = "A caching proxy specialized for linux distribution files"; +    homepage = http://www.unix-ag.uni-kl.de/~bloch/acng/; +    license = stdenv.lib.licenses.gpl2; +    maintainers = [ stdenv.lib.maintainers.makefu ]; +  }; +} diff --git a/krebs/5pkgs/cacpanel/default.nix b/krebs/5pkgs/cacpanel/default.nix new file mode 100644 index 000000000..55d1e2ca8 --- /dev/null +++ b/krebs/5pkgs/cacpanel/default.nix @@ -0,0 +1,18 @@ +{pkgs, python3Packages, ...}: + +python3Packages.buildPythonPackage rec { +  name = "cacpanel-${version}"; +  version = "0.2.0"; + +  src = pkgs.fetchurl { +    url = "https://pypi.python.org/packages/source/c/cacpanel/cacpanel-${version}.tar.gz"; +    sha256 = "1rcylbiy6488lpw4s4bildb48fljdq9kn12ksjrl81shmhhq9fcj"; +  }; + +  propagatedBuildInputs = with python3Packages; [ +    docopt +    requests2 +    beautifulsoup4 +  ]; +} + diff --git a/krebs/5pkgs/drivedroid-gen-repo/default.nix b/krebs/5pkgs/drivedroid-gen-repo/default.nix new file mode 100644 index 000000000..de8046c4a --- /dev/null +++ b/krebs/5pkgs/drivedroid-gen-repo/default.nix @@ -0,0 +1,22 @@ +{stdenv,fetchurl,pkgs,python3Packages, ... }: + +python3Packages.buildPythonPackage rec { +  name = "drivedroid-gen-repo-${version}"; +  version = "0.4.4"; + +  propagatedBuildInputs = with pkgs;[ +    python3Packages.docopt +  ]; + +  src = fetchurl { +    url = "https://pypi.python.org/packages/source/d/drivedroid-gen-repo/drivedroid-gen-repo-${version}.tar.gz"; +    sha256 = "09p58hzp61r5fp025lak9z52y0aakmaqpi59p9w5xq42dvy2hnvl"; +  }; + +  meta = { +    homepage = http://krebsco.de/; +    description = "Generate Drivedroid repos"; +    license = stdenv.lib.licenses.wtfpl; +  }; +} + diff --git a/lass/5pkgs/go/default.nix b/krebs/5pkgs/go/default.nix index 9dd166adc..9dd166adc 100644 --- a/lass/5pkgs/go/default.nix +++ b/krebs/5pkgs/go/default.nix diff --git a/lass/5pkgs/go/packages.nix b/krebs/5pkgs/go/packages.nix index 9acfd7658..9acfd7658 100644 --- a/lass/5pkgs/go/packages.nix +++ b/krebs/5pkgs/go/packages.nix diff --git a/krebs/Zpubkeys/exco.ssh.pub b/krebs/Zpubkeys/exco.ssh.pub new file mode 100644 index 000000000..e2afcf3fb --- /dev/null +++ b/krebs/Zpubkeys/exco.ssh.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7HCK+TzelJp7atCbvCbvZZnXFr3cE35ioactgpIJL7BOyQM6lJ/7y24WbbrstClTuV7n0rWolDgfjx/8kVQExP3HXEAgCwV6tIcX/Ep84EXSok7QguN0ozZMCwX9CYXOEyLmqpe2KAx3ggXDyyDUr2mWs04J95CFjiR/YgOhIfM4+gVBxGtLSTyegyR3Fk7O0KFwYDjBRLi7a5TIub3UYuOvw3Dxo7bUkdhtf38Kff8LEK8PKtIku/AyDlwZ0mZT4Z7gnihSG2ezR5mLD6QXVuGhG6gW/gsqfPVRF4aZbrtJWZCp2G21wBRafpEZJ8KFHtR18JNcvsuWA1HJmFOj2K0mAY5hBvzCbXGhSzBtcGxKOmTBDTRlZ7FIFgukP/ckSgDduydFUpsv07ZRj+qY07zKp3Nhh3RuN7ZcveCo2WpaAzTuWCMPB0BMhEQvsO8I/p5YtTaw2T1poOPorBbURQwEgNrZ92kB1lL5t1t1ZB4oNeDJX5fddKLkgnLqQZWOZBTKtoq0EAVXojTDLZaA+5z20h8DU7sicDQ/VG4LWtqm9fh8iDpvt/3IHUn/HJEEnlfE1Gd+F2Q+R80yu4e1PClmuzfWjCtkPc4aY7oDxfcJqyeuRW6husAufPqNs31W6X9qXwoaBh9vRQ1erZUo46iicxbzujXIy/Hwg67X8dw== christian.stoeveken@gmail.com diff --git a/krebs/default.nix b/krebs/default.nix index bfd6175d9..ad0205426 100644 --- a/krebs/default.nix +++ b/kre  | 
