This repository has no description
1.1 kB
39 lines
1{ config, lib, 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.secrets."nix-serve" = {
9 secrets."nix-serve.key" = { };
10 facts."nix-serve.pub" = { };
11 generator.path = with pkgs; [ coreutils nix ];
12 generator.script = ''
13 nix-store --generate-binary-cache-key "$secrets"/nix-serve.key "$facts"/nix-serve.pub
14 '';
15 };
16 services.nix-serve = {
17 enable = true;
18 secretKeyFile = "${config.krebs.secret.directory}/nix-serve.key";
19 port = 5005;
20 };
21
22 services.nginx = {
23 enable = true;
24 virtualHosts.nix-serve = {
25 serverAliases = [ "cache.${config.networking.hostName}.r" ];
26 locations."/".extraConfig = ''
27 proxy_pass http://localhost:${toString config.services.nix-serve.port};
28 '';
29 locations."= /nix-cache-info".extraConfig = ''
30 alias ${pkgs.writeText "cache-info" ''
31 StoreDir: /nix/store
32 WantMassQuery: 1
33 Priority: 42
34 ''};
35 '';
36 };
37 };
38}
39