
sarasmiseth/prosodyProsody是一个现代、轻量级且高度可扩展的XMPP(Extensible Messaging and Presence Protocol)服务器,也称为Jabber服务器。该Docker镜像提供了Prosody服务器的便捷部署方式,使开发者和系统管理员能够快速搭建安全、可靠的实时通信服务。
使用以下命令快速启动一个基本的Prosody服务器实例:
bashdocker run -d -p 5222:5222 -p 5269:5269 --name prosody saraesmise/prosody
创建docker-compose.yml文件:
yamlversion: '3' services: prosody: image: saraesmise/prosody ports: - "5222:5222" # 客户端连接端口 - "5269:5269" # 服务器间通信端口 - "5280:5280" # HTTP端口 (用于BOSH等) - "5281:5281" # HTTPS端口 volumes: - ./data:/var/lib/prosody - ./config:/etc/prosody - ./certs:/etc/prosody/certs environment: - PROSODY_DOMAIN=example.com - ADMIN_USER=*** - ADMIN_PASSWORD=securepassword restart: unless-stopped
启动服务:
bashdocker-compose up -d
| 环境变量 | 描述 | 默认值 |
|---|---|---|
PROSODY_DOMAIN | 服务器主要域名 | localhost |
ADMIN_USER | 管理员用户JID | admin@localhost |
ADMIN_PASSWORD | 管理员用户密码 | 随机生成 |
LOG_LEVEL | 日志级别 (debug, info, warn, error) | info |
TZ | 时区设置 | UTC |
为了确保数据持久化,建议挂载以下目录:
/var/lib/prosody: 存储用户数据和消息历史/etc/prosody: 配置文件目录/etc/prosody/certs: SSL/TLS证书目录mkdir -p ./configtouch ./config/prosody.cfg.luabashdocker run -d -p 5222:5222 -v $(pwd)/config:/etc/prosody saraesmise/prosody
bashdocker exec -it prosody prosodyctl register username example.com password
bashdocker exec -it prosody prosodyctl user list example.com
bashdocker exec -it prosody prosodyctl restart
bashdocker exec -it prosody prosodyctl status
docker logs prosody命令查看服务器日志以诊断问题docker exec -it prosody prosodyctl check验证配置文件语法编辑配置文件prosody.cfg.lua,在modules_enabled部分添加所需模块:
luamodules_enabled = { -- 基本模块 "roster"; "saslauth"; "tls"; "dialback"; "disco"; -- 额外功能模块 "private"; "vcard"; "version"; "uptime"; "time"; "ping"; -- 多用户聊天 "muc"; -- 文件传输 "proxy65"; -- HTTP服务 "bosh"; "websocket"; }
Prosody支持多种数据库后端,如SQLite、MySQL、PostgreSQL等。要配置MySQL后端:
luastorage = "sql" sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "password", host = "mysql-host", port = 3306 }
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务