Files
prosody/README.md
mguschin 6b54303482 Init.
2026-02-02 20:12:50 +03:00

87 lines
2.4 KiB
Markdown

# 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:
```env
# 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:
```bash
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](data/prosody/configuration/prosody.cfg.lua))
- Self-signed certificates are auto-generated on first run
- The container depends on an external MySQL network named `mysqlgit_mysql_network`