{ pkgs, ... }: { services.nginx = { enable = true; virtualHosts = { "matrix.walkah.chat" = { forceSSL = true; enableACME = true; locations."/" = { proxyPass = "http://100.111.208.75:8008"; }; }; "syncv3.walkah.chat" = { forceSSL = true; enableACME = true; locations."/" = { proxyPass = "http://100.111.208.75:8088"; }; }; "walkah.chat" = { forceSSL = true; enableACME = true; locations = { "= /.well-known/matrix/server".extraConfig = let server = { "m.server" = "matrix.walkah.chat:443"; }; in '' default_type application/json; add_header Access-Control-Allow-Origin *; return 200 '${builtins.toJSON server}'; ''; "= /.well-known/matrix/client".extraConfig = let client = { "m.homeserver" = { "base_url" = "https://matrix.walkah.chat"; }; "org.matrix.msc3575.proxy" = { "url" = "https://syncv3.walkah.chat"; }; }; in '' default_type application/json; add_header Access-Control-Allow-Origin *; return 200 '${builtins.toJSON client}'; ''; "/" = { root = pkgs.element-web; }; }; }; }; }; }