About this service
share.example.org is the HTTP File Upload endpoint for the
share.example.org XMPP service, implementing
XEP-0363 through the
mod_http_file_share Prosody plugin.
How uploads work
- Your XMPP client asks the server for a slot via an IQ request.
- The server replies with a one-time PUT URL on this host.
- The client PUTs the file ciphertext and shares the matching GET URL in chat.
Privacy
We log only request metadata (timestamp, requesting JID, file size) for quota enforcement. File contents are never inspected; we strongly recommend encrypting with OMEMO before upload.
Limits
| Max file size | 100 MiB |
|---|---|
| Per-user quota | 1 GiB |
| Retention | 30 days |
| Allowed types | any |
Supported file-transfer XEPs
HTTP Upload is the primary path because it works through NAT, but the gateway speaks the entire XMPP file-transfer family so any client — historical or modern — can interoperate.
| XEP | Title | Notes |
|---|---|---|
| XEP-0066 | Out of Band Data | Attaches a fetch URL as an <x xmlns="jabber:x:oob">
child of the message. Most modern clients still set this alongside
the body when they paste a 0363 upload URL. |
| XEP-0047 | In-Band Bytestreams (IBB) | Last-resort transport: base64 chunks tunnelled through the XMPP stream itself. Slow but works when both peers are firewalled. |
| XEP-0065 | SOCKS5 Bytestreams | Peer-to-peer (or proxy-mediated) bytestream over SOCKS5. The classic transport for direct file transfer. |
| XEP-0096 | SI File Transfer | The original Stream Initiation flow paired with 0065/0047. Deprecated in favour of Jingle FT but still supported for legacy clients. |
| XEP-0166 | Jingle | Session-negotiation framework. Doesn't move bytes itself, but every modern P2P transfer rides on it. |
| XEP-0234 | Jingle File Transfer | Replacement for XEP-0096. Negotiates a file with metadata and offers one-or-more transport candidates. |
| XEP-0260 | Jingle SOCKS5 Transport | Pairs Jingle FT (0234) with SOCKS5 bytestreams (0065). |
| XEP-0261 | Jingle IBB Transport | Pairs Jingle FT with In-Band Bytestreams (0047) as fallback when no direct transport works. |
| XEP-0264 | Jingle Content Thumbnails | Inline previewable thumbnails inside a Jingle FT offer. |
| XEP-0363 | HTTP File Upload | This service. Client asks for a slot, server returns a one-shot PUT URL + matching GET URL. |
| XEP-0385 | Stateless Inline Media Sharing (SIMS) | Inline-render media references (URL + hash + thumb) without requiring a session. Largely superseded by 0447. |
| XEP-0447 | Stateless File Sharing (SFS) | Modern descriptor format: file metadata, hashes, optional thumbnails, and a list of fetch sources (HTTP, Jingle, etc). |
| XEP-0448 | Encryption for Stateless File Sharing | OMEMO-style encryption of the file behind an SFS descriptor; the key travels with the descriptor, not in the URL. |
| XEP-0454 | OMEMO Media Sharing | Pragmatic predecessor of 0448: the AES-GCM key is appended
to the HTTP Upload URL as a #fragment. |