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