{ config, pkgs, ... }: { services.nginx = { virtualHosts = { "cyplo.dev" = { forceSSL = true; enableACME = true; locations."= /.well-known/matrix/server".extraConfig = let server = {"m.server" = "cyplo.dev:443";}; in '' add_header Content-Type application/json; return 200 '${builtins.toJSON server}'; ''; locations."= /.well-known/matrix/client".extraConfig = let client = { "m.homeserver" = {"base_url" = "https://cyplo.dev";}; "m.identity_server" = {"base_url" = "https://vector.im";}; }; in '' add_header Content-Type application/json; add_header Access-Control-Allow-Origin *; return 200 '${builtins.toJSON client}'; ''; locations."/".extraConfig = '' return 404; ''; locations."/_matrix" = { proxyPass = "http://bolty:8008"; # without a trailing / }; }; }; }; }