prose-im / prose-app-web

Prose Web application. XMPP client for team messaging.
https://prose.org/downloads
Mozilla Public License 2.0
25 stars 2 forks source link

Support looking for host-meta at port 5281 (support for mod_http_altconnect) #146

Closed derspyy closed 4 weeks ago

derspyy commented 1 month ago

i have a server running at https://capivarinha.club/ and prosody on the same IP address.

when Prose tries fetching my host-meta on login, though, it checks https://capivarinha.club, even though the http server for prosody is hosted at https://capivarinha.club:5281/ (which is currently serving the correct host-meta).

now, i'm not super familiar with how prose finds this URL, but would it be possible to support for this, at least as a fallback?

i'm using this module: https://modules.prosody.im/mod_http_altconnect

valeriansaliou commented 4 weeks ago

Hello! Prose requires this host-meta file to be located on your domain over HTTPS port 443. You may create a .well-known/ folder at the root of your main Web server (not the XMPP HTTP server, your NGINX or Apache Web server), and place your host-meta file here so that Prose can fetch it at: https://capivarinha.club/.well-known/host-meta (if XML) or https://capivarinha.club/.well-known/host-meta.json (if JSON).

derspyy commented 4 weeks ago

yes. what i mean is that host-meta is already managed by another service and i'd prefer if it looked at the https server provided by prosody

ofc i could manually edit it, but i'm afraid of breaking something + this might be an issue for other prosody users!

valeriansaliou commented 4 weeks ago

Prose is implementing https://xmpp.org/extensions/xep-0156.html in a strict sense, which does not mention using any alternative port, so the standard is to use the default HTTPS port, that is 443. You could easily setup a reverse proxy from your primary HTTPS server to port 5281 to serve the host-meta file from there.

derspyy commented 4 weeks ago

if we're being strict, shouldn't host-meta only be used as a fallback in case prose doesn't find bosh and websocket in the default paths? (or am i misunderstanding???)

poVoq commented 4 weeks ago

Port 5280/5281 isn't really standardized for XMPP servers, Ejabberd for example defaults to 5433, and most servers do indeed reverse-proxy it onto the standard port 443.

Adding the XEP-0156 host-meta files seems to not interfere with my other stuff on the same domain, so you should be good to try. I reverse-proxy the XMPP entrypoint for websockets to the xmpp. subdomain, but it can be anything really.

derspyy commented 4 weeks ago

yeah, thanks :P

i just though it'd be a bit too risky to overwrite host-meta when it's managed by my service

derspyy commented 4 weeks ago

thx everyone! closing because i decided to do this on my nginx config.