Init.
This commit is contained in:
86
README.md
86
README.md
@@ -1,2 +1,86 @@
|
||||
# prosody
|
||||
# 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`
|
||||
|
||||
Reference in New Issue
Block a user