2026-04-29 21:56:24 +03:00
2026-02-02 20:12:50 +03:00
2026-02-04 13:13:46 +03:00
2026-04-29 20:22:35 +03:00
2026-03-23 14:57:12 +03:00
2026-04-29 21:38:37 +03:00
2026-04-29 21:53:14 +03:00
2026-02-02 20:12:50 +03:00
2026-02-04 13:13:46 +03:00
2026-02-02 20:12:50 +03:00
2026-02-02 20:12:50 +03:00

Prosody XMPP Server

Dockerized Prosody XMPP server with MySQL backend.

Prerequisites

  • Docker and Docker Compose
  • External MySQL network: mysqlgit_mysql_network
  • Environment variables configuration (see Configuration section)

Configuration

This setup uses environment variables for configuration. Create a .env file in the project root with:

# XMPP Configuration
XMPP_DOMAIN=xmpp.guschin.info
XMPP_USER=mish
XMPP_PASSWORD=your_password

# MySQL Configuration
MYSQL_HOST=mysql
MYSQL_USER=prosody
MYSQL_PASSWORD=your_mysql_password
MYSQL_DATABASE=prosody

Starting the Server

Run from the project directory:

docker-compose up -d

This will:

  • Build and start the Prosody container
  • Connect to external MySQL network (mysqlgit_mysql_network)
  • Wait for MySQL to be ready
  • Generate self-signed SSL/TLS certificates (if not present)
  • Configure Prosody with MySQL backend

Access Points

Service Port Description
C2S (Client to Server) 5222 XMPP client connections
S2S (Server to Server) 5269 XMPP federation
Component Protocol 5347 External components
HTTP/BOSH/WebSocket 5280 Web-based connections
HTTPS 5281 Secure web connections

Features

  • Virtual Host: xmpp.guschin.info
  • Multi-User Chat (MUC): muc.xmpp.guschin.info
  • Storage: MySQL backend with SQL storage
  • Admin User: admin@guschin.info
  • Health Checks: Automatic container health monitoring
  • Memory Limit: 200M
  • Auto-restart: Container restarts unless stopped

Enabled Modules

Core modules: roster, saslauth, tls, dialback, disco, carbons, pep, private, blocking, vcard, version, uptime, time, ping, register, last_activity, admin_adhoc, muc_mam

Data Persistence

Volumes are mounted to persist data:

  • ./data/prosody/var/lib/prosody
  • ./logs/prosody/var/log/prosody
  • ./data/prosody/configuration/etc/prosody/conf.d

Connecting Clients

Use any XMPP client with:

  • Server: xmpp.guschin.info
  • Port: 5222
  • Username: your configured user
  • Domain: xmpp.guschin.info

Notes

  • TLS encryption is not required by default (configurable in prosody.cfg.lua)
  • Self-signed certificates are auto-generated on first run
  • The container depends on an external MySQL network named mysqlgit_mysql_network
Description
No description provided
Readme ISC 143 KiB
Languages
Shell 60%
Lua 31.1%
Dockerfile 8.9%