🛠 源码部署
1. 环境及组件要求
对于服务器环境、系统、以及所依赖组件的说明可以参考此文档
2. 部署 OpenIM Server (IM)
2.1 clone 仓库 建议切换到 release-v3.8 分支
git clone https://github.com/openimsdk/open-im-server && cd open-im-server
2.2 部署组件 (mongodb/redis/zookeeper/kafka/MinIO 等)
docker compose up -d
2.3 设置外网 IP 或域名参考 Nginx 配置
修改 config/minio.yml 中的 externalAddress 为 http://外网IP:port 或 域名
修改 config/openim-api.yml 中的 grafanaURL: http://127.0.0.1:13000/ 为 http://外网IP:port 或 域名
2.4 🛠️ 初始化
第一次编译前,linux/mac 平台下执行:
bash bootstrap.sh
windows 执行
bootstrap.bat
2.5 🛠️ 编译(linux/windows/mac 平台均可用)
mage
2.6 🚀 启动/停止/检测(linux/windows/mac 平台均可用)
# 启动
mage start
# 或 后台启动 收集日志
nohup mage start >> _output/logs/openim.log 2>&1 &
# 停止
mage stop
# 检测
mage check
2.7 其他配置项修改
3. 部署 App Server (Chat)
3.1 clone 仓库 建议切换到 release-v1.8 分支
git clone https://github.com/openimsdk/chat&& cd chat
3.2 🛠️ 初始化
第一次编译前,linux/mac 平台下执行:
bash bootstrap.sh
windows 执行
bootstrap.bat
3.3 🛠️ 编译(linux/windows/mac 平台均可用)
mage
3.4 🚀 启动/停止/检测(linux/windows/mac 平台均可用)
# 启动
mage start
# 或 后台启动 收集日志
nohup mage start >> _output/logs/chat.log 2>&1 &
# 停止
mage stop
# 检测
mage check
3.5 其他配置项修改
以下是 release-v3.6 及之前的版本部署流程
2. 部署 OpenIM Server (IM)
2.1 📡 设置 OPENIM_IP
🔔 必须要设置 OPENIM_IP,且不能是 127.0.0.1
# 如果服务器有外网IP
export OPENIM_IP="外网IP"
# 如果仅提供内网服务
export OPENIM_IP="内网IP"
2.2 🏗️ 部署组件 (mongodb/redis/zookeeper/kafka/MinIO 等)
git clone https://github.com/openimsdk/open-im-server && cd open-im-server
# 建议切换到release-v3.6及以后的release分支
make init && docker compose up -d
2.3 🛠️ 编译
make build
2.4 🚀 启动/停止/检测
# 启动
make start
# 停止
make stop
# 检测
make check
3. 部署 App Server (Chat)
3.1 🏗️ clone chat 仓库
#返回上一级目录
cd ..
# clone仓库 建议切换到release-v1.6及以后的release分支
git clone https://github.com/openimsdk/chat chat && cd chat
3.2 🛠️ 编译
make init
make build
3.3 🚀 启动/停止/检测
# 启动
make start
# 停止
make stop
# 检测
make check
4. 快速验证
请参考快速验证文档
5. 管理后台和监控系统
请参考 管理后台和监控系统 文档。
6. 关于配置项的修改
6.1 🛠️ 共用配置项的修改
配置项 | 需要修改的文件 | 操作 |
---|---|---|
mongo/kafka/minio 相关 | .env, openim-server/config/config.yaml | 需重启组件和 IM |
redis/zookeeper 相关 | .env, openim-server/config/config.yaml, chat/config/config.yaml | 需重启组件、IM 和 Chat |
SECRET | openim-server/config/config.yaml, chat/config/config.yaml | 需重启 IM 和 Chat |
6.2 🔄 共用配置项中特殊配置项的修改
特殊配置项:API_OPENIM_PORT/MINIO_PORT/OPENIM_IP/GRAFANA_PORT
- 修改
.env
文件中的特殊配置项 - 在
openim-server/config/config.yaml
中按照规则修改配置
object:
apiURL: "http://$OPENIM_IP:$API_OPENIM_PORT"
minio:
endpoint: "http://$DOCKER_BRIDGE_GATEWAY:$MINIO_PORT"
signEndpoint: "http://$OPENIM_IP:$MINIO_PORT"
grafanaUrl: http://$OPENIM_IP:$GRAFANA_PORT
- 在
chat/config/config.yaml
中按照规则修改配置
如果IM在Chat不在同一台机器上,则需将127.0.0.1替换成IM所在机器的IP
openIMUrl: "http://127.0.0.1:$API_OPENIM_PORT"
- 重启 IM 和 Chat
6.3 🛠️ 其他配置项的修改
对于 .env
、chat/config/config.yaml
和 openim-server/config/config.yaml
中的其他配置项,可以单独修改相应文件中的这些配置项。
6.4 端口的修改
特别注意的是,对于 IM 相关任何端口的修改,都需要同步修改 open-im-server/scripts/install/environment.sh 中的端口
7. 常见问题
7.1 📜 日志查看
日志位置:
- 运行时日志,启动成功后定位问题时查看:
_output/logs/openim-all*
- 启动时日志,启动有错误时查看:
_output/logs/openim-*.log
7.2 🚀 启动顺序
启动顺序如下:
- IM 依赖的组件:mongo/redis/kafka/zookeeper/minio 等
- IM
- Chat
7.3 🐳 Docker 版本
新版 Docker 已经整合了 docker-compose. 老版本的 Docker 可能不支持 gateway 功能 ❌。我们建议您升级到较新的版本,例如 23.0.1
🔝