main
nix 71 lines 2.34 KB
Raw
1 { config, lib, ... }:
2 let
3 nodes = {
4 ofborg-eval02 = {
5 substituter = "eval02.ofborg.org";
6 public-key = "eval02.ofborg.org:85vbhZviIv2eeC3VKK2T/X/zzgIYLYjyGw3Pi+Pqh34=";
7 };
8 ofborg-eval03 = {
9 substituter = "eval03.ofborg.org";
10 public-key = "eval03.ofborg.org:HATIHUe6QMH83dbDpnUv9VeuaNDBjeWshW2monmRK1c=";
11 };
12 ofborg-eval04 = {
13 substituter = "eval04.ofborg.org";
14 public-key = "eval04.ofborg.org:k4s/u1JWDew+dwXcuFvAAVFK2DfN6ib+73iCwX5gkBE=";
15 };
16 ofborg-build01 = {
17 substituter = "build01.ofborg.org";
18 public-key = "build01.ofborg.org:Edgo6+RgHXa8nlxuLAgh18fMhQuXGdXNcYK6yNKQaQ8=";
19 };
20 ofborg-build02 = {
21 substituter = "build02.ofborg.org";
22 public-key = "build02.ofborg.org:uw5IBpYv129c8+ltrQ288TGvmE5JqNZA+q7GW3tDaUk=";
23 };
24 ofborg-build03 = {
25 substituter = "build03.ofborg.org";
26 public-key = "build03.ofborg.org:8LFTt2s1cbzniV4MLkT30qEHPY0cK3RP+6fk03GD3lw=";
27 };
28 ofborg-build04 = {
29 substituter = "build04.ofborg.org";
30 public-key = "build04.ofborg.org:NHEGj8moimu2TiZNIA4DOb4kVhvds6Vlzr2TAwX1mUY=";
31 };
32 ofborg-build05 = {
33 substituter = "build05.ofborg.org";
34 public-key = "build05.ofborg.org:RPuXIkyo86mCmsfYqyK/STIbPE+DM9Ixcw7HUe64Ss4=";
35 };
36 };
37 ownNode = nodes."${config.networking.hostName}";
38 allOtherNodes = lib.filterAttrs (n: _: n != config.networking.hostName) nodes;
39 in
40 {
41 services.harmonia.cache = {
42 enable = true;
43 signKeyPaths = [ "/run/secrets/harmonia/secret" ];
44 settings = {
45 priority = 50;
46 };
47 };
48
49 nix.settings = {
50 fallback = true;
51 extra-substituters = lib.mapAttrsToList (_: config: "http://${config.substituter}") allOtherNodes;
52 extra-trusted-public-keys = lib.mapAttrsToList (_: config: config.public-key) allOtherNodes;
53 };
54
55 networking.firewall.allowedTCPPorts = [ 80 ];
56 services.nginx = {
57 enable = true;
58 recommendedTlsSettings = true;
59 virtualHosts."${ownNode.substituter}" = {
60 locations."/".extraConfig = ''
61 proxy_pass http://127.0.0.1:5000;
62 proxy_set_header Host $host;
63 proxy_redirect http:// https://;
64 proxy_http_version 1.1;
65 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
66 proxy_set_header Upgrade $http_upgrade;
67 proxy_set_header Connection $connection_upgrade;
68 '';
69 };
70 };
71 }