-
Notifications
You must be signed in to change notification settings - Fork 477
/
default.nix
51 lines (51 loc) · 2.67 KB
/
default.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
let
plutus = import ../../. {};
serverTemplate = import ./server.nix;
prometheusTemplate = import ./prometheus.nix;
machines = (plutus.pkgs.lib.importJSON ./machines.json);
overlays = import ./overlays.nix;
secrets = (plutus.pkgs.lib.importJSON ./secrets.json);
enableGithubHooks = plutus.pkgs.lib.hasAttr "githubWebhookKey" secrets;
deploymentConfigDir = plutus.pkgs.copyPathToStore ../nixops ;
githubhooks = plutus.haskellPackages.deployment-server;
mkConfig = redirectUrl: name: plutus.pkgs.writeTextFile {
name = name;
text = ''
auth:
# Maintainers' notes:
# 1) Github keys and URL in here *must* match the ones set up for this app on
# github.
# 2) If you change the JWT signature, it will break all existing logins.
# Don't change it unless that's something you specifically want!
github-client-id: ${secrets.githubClientId}
github-client-secret: ${secrets.githubClientSecret}
jwt-signature: ${secrets.jwtSignature}
redirect-url: ${redirectUrl}
'';
};
playgroundConfig = mkConfig "https://${machines.environment}.${machines.plutusTld}" "playground.yaml";
meadowConfig = mkConfig "https://${machines.environment}.${machines.marloweTld}" "marlowe.yaml";
stdOverlays = [ overlays.journalbeat ];
options = { inherit stdOverlays machines defaultMachine plutus secrets; };
defaultMachine = (import ./default-machine.nix) options;
meadowOptions = options // { serviceConfig = meadowConfig;
serviceName = "meadow";
server-invoker = plutus.meadow.server-invoker;
client = plutus.meadow.client;
};
playgroundOptions = options // { serviceConfig = playgroundConfig;
serviceName = "plutus-playground";
server-invoker = plutus.plutus-playground.server-invoker;
client = plutus.plutus-playground.client;
};
playgroundA = serverTemplate.mkInstance playgroundOptions machines.playgroundA;
playgroundB = serverTemplate.mkInstance playgroundOptions machines.playgroundB;
meadowA = serverTemplate.mkInstance meadowOptions machines.meadowA;
meadowB = serverTemplate.mkInstance meadowOptions machines.meadowB;
nixops = prometheusTemplate.mkInstance
(options // {configDir = deploymentConfigDir; inherit githubhooks enableGithubHooks;})
{dns = "nixops.internal.${machines.environment}.${machines.plutusTld}";
ip = "127.0.0.1";
name = "nixops"; };
in
{ inherit playgroundA playgroundB meadowA meadowB nixops; }