Commit Graph
15 Commits
Author SHA1 Message Date
mguschinandClaude Opus 5 7d08ff13d7 Enable stream management and CSI for mobile clients.
Conversations re-authenticated every 5-10 minutes (138 full logins in
two days) because no XEP-0198 module was loaded. Each reconnect re-ran
its OMEMO bootstrap and republished the PEP device list built from a
partial fetch, which dropped the desktop client's device id from the
list. Senders then encrypted to nobody, and Gajim showed "could not be
decrypted" until it reconnected and re-added itself.

smacks lets the session resume across network blips, csi_simple keeps
backgrounded clients quiet. Both ship with Prosody 0.12.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 12:36:48 +03:00
mguschinandClaude Opus 5 3fc1ac3d12 Add TURN/STUN server for audio/video calls.
Jingle A/V (XEP-0166/0167/0176) needs a STUN/TURN server for NAT
traversal. Add coturn and advertise it to clients via XEP-0215.

- coturn container, host networking (a relay needs its full UDP port
  range reachable, and Docker NAT hides the peer addresses coturn needs).
- mod_turn_external in Prosody to advertise the service and mint
  time-limited credentials from a shared secret.
- Advertise UDP and TCP transports plus turns: on 5349, so clients on
  UDP-blocking networks can still connect.
- Deny relaying to private ranges, so this is not an open proxy into
  internal services.

TURN host is guschin.info rather than turn.guschin.info because only the
former is in the certificate SANs and turns: clients validate the name.

TURN_HOST/TURN_SECRET go in .env, which is gitignored and set per
deployment; TURN_SECRET must match static-auth-secret in turnserver.conf.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 22:17:44 +03:00
mguschinandClaude Opus 4.7 4236bd38e4 Use multi-SAN guschin.info cert for all hosts and components.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 13:07:40 +03:00
mguschinandClaude Opus 4.7 857ddc48b9 Allow guschin.info users to upload files.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 12:59:04 +03:00
mguschin 9673cd78a3 Fix prosody config. 2026-04-29 21:56:24 +03:00
mguschin 93f32ec3be Fix sligram config. 2026-04-29 21:53:14 +03:00
mguschin eddb4b3531 Fix prosody conf. 2026-04-29 21:45:21 +03:00
mguschin bb7596ffdd Fix prosody config. 2026-04-29 21:42:55 +03:00
mguschin 6feff1c7e6 Tg bridge. 2026-04-29 20:09:17 +03:00
mguschinandClaude Opus 4.6 173f3a9705 Add guschin.info VirtualHost alongside xmpp.guschin.info
Users can now register as name@guschin.info or name@xmpp.guschin.info.
Added Let's Encrypt cert mounting and install for guschin.info domain.
Refactored entrypoint cert install into reusable function.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 07:56:48 +03:00
mguschinandClaude Opus 4.6 eb8a2e3145 Enable mod_mam for persistent direct message archiving
Messages are stored indefinitely in MySQL.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 20:40:03 +03:00
mguschinandClaude Opus 4.6 c28f5e00bd Enable s2s_require_encryption to match s2s_secure_auth
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 19:47:55 +03:00
mguschinandClaude Opus 4.6 6015367332 Fix TLS cert domain mismatch: VirtualHost now matches cert domain
VirtualHost changed from "guschin.info" to "xmpp.guschin.info" to match
the Let's Encrypt certificate. Moved certificates directive before
VirtualHost block. Removed misplaced default_realm and global ssl block.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 19:31:03 +03:00
mguschin bdcb7e1709 Fixed tls config.. 2026-02-04 13:52:52 +03:00
mguschin 6b54303482 Init. 2026-02-02 20:12:50 +03:00