summary refs log tree commit diff
path: root/host/Rory-nginx/services/nginx/rory.gay/conduit.nix
blob: feaa77ad8515bfa5341d56039b33f9f1827805e0 (plain) (blame)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
{
  enableACME = true;
  addSSL = true;
  locations."/" = {
    #proxyPass = "http://127.0.0.1:9002";
    proxyPass = "http://127.0.0.1:6167";
    extraConfig = ''
      if ($request_method = 'OPTIONS') {
        more_set_headers 'Access-Control-Allow-Origin: *';
        more_set_headers 'Access-Control-Allow-Methods: *';
        #
        # Custom headers and headers various browsers *should* be OK with but aren't
        #
        more_set_headers 'Access-Control-Allow-Headers: *, Authorization';
        #
        # Tell client that this pre-flight info is valid for 20 days
        #
        more_set_headers 'Access-Control-Max-Age: 1728000';
        more_set_headers 'Content-Type: text/plain; charset=utf-8';
        more_set_headers 'Content-Length: 0';
        return 204;
      }
      # We want to wait for 15 minutes here...
      proxy_read_timeout 54000;
      proxy_connect_timeout 54000;
      proxy_send_timeout 54000;
    '';
  };
  #locations."/_synapse/client".proxyPass = "http://192.168.1.5:8008";   
  locations."/_conduwuit/".extraConfig = ''
    return 404;
  '';

  locations."= /.well-known/matrix/server".extraConfig = ''
    more_set_headers 'Content-Type application/json';
    more_set_headers 'Access-Control-Allow-Origin *';
    return 200 '${builtins.toJSON {
      "m.server" = "conduit.rory.gay:443";
    }}';
  ''; 
  locations."= /.well-known/matrix/client".extraConfig = ''
    more_set_headers 'Content-Type application/json';
    more_set_headers 'Access-Control-Allow-Origin *';
    return 200 '${builtins.toJSON {
      "m.homeserver".base_url = "https://conduit.rory.gay";
      "m.identity_server".base_url = "https://conduit.rory.gay";
    }
    }';
  ''; 
  locations."= /.well-known/matrix/support".extraConfig = ''
    more_set_headers 'Content-Type application/json';
    more_set_headers 'Access-Control-Allow-Origin *';
    return 200 '${builtins.toJSON {
      admins = [
        {
          matrix_id = "@emma:rory.gay";
          role = "admin";
        }
	      {
          matrix_id = "@alicia:rory.gay";
          role = "admin";
        }
	      {
          matrix_id = "@root:rory.gay";
          role = "admin";
        }
      	{
          matrix_id = "@rory:rory.gay";
          role = "admin";
        }
      ];
    }
    }';
  '';
}