Hasty Briefsbeta

Bilingual

Running My Own XMPP Server

9 days ago
  • #Prosody
  • #Docker
  • #XMPP
  • Moved personal messaging to Signal for digital ownership, but still dependent on one service.
  • XMPP is federated, allowing server-to-server communication without being locked into a single provider.
  • Set up Prosody in Docker for XMPP server with features like file sharing, voice calls, and end-to-end encryption.
  • Required DNS records include SRV records for client and server connections, and A or CNAME records for file uploads and group chats.
  • Used Let's Encrypt with Cloudflare DNS challenge for TLS certificates, with monthly renewal via cron.
  • Docker setup includes Prosody with exposed ports for client and federation connections, and mounted volumes for data and configuration.
  • Prosody configuration includes modules for security, multi-device support, message archiving, and HTTP file uploads.
  • Enabled OMEMO encryption for end-to-end security, supported by clients like Monal, Conversations, and Gajim.
  • Set up a TURN/STUN server (coturn) for voice and video calls, sharing a secret with Prosody for temporary credentials.
  • Clients recommended: Monal for iOS, Conversations for Android, and Gajim for desktop, all supporting modern XMPP features.
  • Final setup includes Prosody, file uploads, message archive, push notifications, group chats, and voice calls in Docker containers.