mirror of
https://gitverse.ru/kpa39l/xmpp-server-prosody.git
synced 2026-09-29 09:45:02 +00:00
3.7 KiB
3.7 KiB
Prosody 0.12 upgrade path — docker images, what it fixes, risks (2026-08-29)
Status: 0.12.6 is the current stable Prosody release, but there is NO official
docker image tag for it. Upgrading from 0.11.9 fixes two standing problems on
nixg.ru at once: XEP-0356 privileged-entity for the bridge, and UnifiedPush
(util.jwt only exists in 0.12+).
Docker image situation (verified via registry API + pulls)
| Source | Tag | Version | Verdict |
|---|---|---|---|
prosody/prosody (official) |
latest |
0.11.9 (stale) | official tags stop at 0.11.x; no 0.12 tag exists |
prosody/prosody (official) |
trunk |
unreleased trunk | unstable, not for prod |
prosodyim/prosody (3rd party) |
0.12 |
nightly build 236 (2026-04-29) | nightly — NOT a stable release |
prosodyim/prosody (3rd party) |
13.0 |
nightly build 98 (2026-06-07) | nightly of next major — no |
| build-your-own | from https://prosody.im/downloads/source/prosody-0.12.6.tar.gz (HTTP 200) |
0.12.6 stable | the correct path |
So docker pull prosody/prosody:0.12 → not found, prosodyim/prosody:0.12.6
→ not found, prosodyim/prosody:0.12 exists but is a nightly — do not run
nightlies in prod. Only route to a stable 0.12: build a custom image on top of
prosody/prosody:0.11.9 compiling/installing the 0.12.6 tarball, and re-test.
What the 0.11 → 0.12 upgrade FIXES (motivation)
- XEP-0356 privileged entity (bridge roster/bookmarks).
mod_privilegeis built into 0.12 (modulemanager hasmodule:send_iq()). On 0.11 the communitymod_privilege.luafrom prosody-modules is written for 0.12 API and crashes on 0.11 (attempt to call method 'send_iq' (a nil value)), which breaks privileged IQ → slidge cannot write bookmarks → falls back to sending a gateway invite for EVERY group → client shows "миллион запросов на подключение к чату" (seeslidge-flood-invites-and-roster.md). - UnifiedPush.
mod_unified_pushneedsutil.jwt, which only exists in 0.12+. On 0.11 it fails to load (module 'util.jwt' not found). 0.12 opens the UnifiedPush route (or stay on XEP-0357mod_pushwhich works on 0.11). - Bookmarks/OMEMO/PEP handling improvements.
Data compatibility & migration
- Prosody's internal storage (data dir) is compatible 0.11 → 0.12; users, rosters, MUC config survive. No data migration tool needed for this hop.
- Config format is the same Lua; 0.12 adds options but accepts 0.11 configs
(validate with
prosodyctl check configafter the switch). component_secretper-Component stanza (0.11 behaviour) still works.
Upgrade procedure (when approved)
- Build custom image
prosody-012FROMprosody/prosody:0.11.9(keeps Lua, dirs, entrypoint) + downloadprosody-0.12.6.tar.gz,./configure --prefix=/usr --sysconfdir=/etc/prosody --datadir=/var/lib/prosody,make && make install. - Remove the community
mod_privilege.luafrom./modules(built-in in 0.12) — but keepprivileged_entitiesconfig, it is used the same way. prosodyctl check config→ restart → grep logs forError initializing.- Verify slidge: bookmarks now written via XEP-0356 (no more invite flood),
docker logs icq-slidgramshows noPermissionError/privilege errors. - Optional: add
mod_unified_push(apt prosody-modules now fine) for UnifiedPush, or keep XEP-0357mod_push. - Rollback: pin image back to
prosody/prosody:0.11.9(data dir untouched).
Related
xep-capability-matrix-prosody-011.md— the XEP-0356 row there is 0.11-specific; on 0.12 use the built-in module instead of the community one.push-notifications.md— the util.jwt/0.12 dependency chain for UnifiedPush.