1{
2 config,
3 inputs,
4 terra,
5 ...
6}:
7let
8 knotCfg = config.services.tangled.knot;
9in
10{
11 imports = [
12 "${inputs.tangled}/nix/modules/knot.nix"
13 ];
14
15 services.tangled.knot = {
16 enable = true;
17 package = terra.tangled-knot;
18 gitUser = "git";
19 motdFile = ./motd;
20 server = {
21 listenAddr = "0.0.0.0:7777";
22 hostname = "knot.gaze.systems";
23 owner = "did:plc:dfl62fgb7wtjj3fcbb72naae";
24 };
25 };
26
27 security.acme.certs."gaze.systems".extraDomainNames = [ knotCfg.server.hostname ];
28
29 services.nginx.virtualHosts.${knotCfg.server.hostname} = {
30 useACMEHost = "gaze.systems";
31 forceSSL = true;
32 quic = true;
33 kTLS = true;
34 locations."/" = {
35 proxyPass = "http://${knotCfg.server.listenAddr}";
36 proxyWebsockets = true;
37 };
38 };
39}