Files
xmpp-server-prosody/references/xep-capability-matrix-prosody-011.md
T
2026-09-06 13:51:11 +00:00

2.7 KiB

Prosody 0.11 capability matrix (XEP audit) — verified 2026-08-29 on nixg.ru

Checked against config/prosody.cfg.lua + docker exec icq-prosody ls /usr/lib/prosody/modules/

  • logs. Use this to answer "is feature X supported?" for a Prosody 0.11.x deployment.
Capability XEP How it works in 0.11 Status
MUC (group chat) XEP-0045 Component "conference.<dom>" "muc" (module is a Component, NOT a host module — loading muc in modules_enabled errors) ✅
PubSub XEP-0060 mod_pubsub ships in stock BUT in a subdir (/usr/lib/prosody/modules/mod_pubsub/mod_pubsub.lua) and is not loaded by default — add "pubsub" to modules_enabled ✅ (enable explicitly)
HTTP Upload XEP-0363 community mod_http_upload (NOT stock); Component "upload.<dom>" "http_upload". Stock image has no mod_http_file_share either ✅ (install module)
MAM (history) XEP-0313 mod_mam (stock) + mod_muc_mam (stock, loads on MUC component) ✅
Carbons XEP-0280 mod_carbons (stock) ✅
PEP XEP-0163 mod_pep (stock) ✅
OMEMO XEP-0384 client-side only in 0.11: no server mod_omemo exists (neither stock nor prosody-modules — verified: mod_omemo 404s on hg). Server role = PEP for key bundles. Gajim/Dino/Conversations/Monal handle the crypto; Converse v14 bundles libomemo ⚠️ client-side
OTR XEP-0364 also client-side; nothing on the server ⚠️ client-side
WebRTC (calls) XEP-0166 (Jingle)/0343 Jingle is client-side; no server Jingle module; server just carries c2s/websocket signalling ⚠️ client-side
Bookmarks XEP-0402 / XEP-0048 via PEP node storage:bookmarks (mod_pep); no separate mod_bookmarks in 0.11 (prosody-modules has mod_default_bookmarks / mod_group_bookmarks if default bookmarks wanted) ✅ via PEP
Recent rosters / roster versioning XEP-0237 mod_roster versioning ✅
Privileged Entity (bridge roster sync) XEP-0356 community mod_privilege + privileged_entities on VirtualHost ✅ (install module)
External components (bridges) XEP-0114 component_ports = { 5347 } + Component stanza with per-stanza component_secret (global component_secrets table ignored in 0.11!) ✅

Key takeaways

  • No server-side OMEMO/WebRTC/Bookmarks modules exist for 0.11 — this is normal, not a misconfiguration. Those features are client-side over PEP. Do not hunt for mod_omemo.
  • mod_pubsub is stock but off by default — if PubSub/PEP-dependent features are missing, check modules_enabled first.
  • Community modules install path from RF: hg.prosody.im (see SKILL.md "Community modules").
  • Remember: PEP node for OMEMO bundles requires pep + pubsub both enabled.