This repository has no description
1.2 kB
41 lines
1{ config, pkgs, ... }:
2{
3 # nixpkgs.config.packageOverrides = p: {
4 # nix-serve = p.haskellPackages.nix-serve-ng;
5 # };
6 # generate private key with:
7 # nix-store --generate-binary-cache-key my-secret-key my-public-key
8 clanCore.facts.services."nix-serve" = {
9 secret."nix-serve.key" = { };
10 public."nix-serve.pub" = { };
11 generator.path = with pkgs; [
12 coreutils
13 nix
14 ];
15 generator.script = ''
16 nix-store --generate-binary-cache-key "$secrets"/nix-serve.key "$facts"/nix-serve.pub
17 '';
18 };
19 services.nix-serve = {
20 enable = true;
21 secretKeyFile = "${config.krebs.secret.directory}/nix-serve.key";
22 port = 5005;
23 };
24
25 services.nginx = {
26 enable = true;
27 virtualHosts.nix-serve = {
28 serverAliases = [ "cache.${config.networking.hostName}.r" ];
29 locations."/".extraConfig = ''
30 proxy_pass http://localhost:${toString config.services.nix-serve.port};
31 '';
32 locations."= /nix-cache-info".extraConfig = ''
33 alias ${pkgs.writeText "cache-info" ''
34 StoreDir: /nix/store
35 WantMassQuery: 1
36 Priority: 42
37 ''};
38 '';
39 };
40 };
41}