跳到主要内容

🛠 源码部署

1. 环境及组件要求

对于服务器环境、系统、以及所依赖组件的说明可以参考此文档

2. 部署 OpenIM Server (IM)

2.1 clone仓库 使用main分支或切换到release-v3.7及以后的release分支

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

修改config/minio.yml中的externalIP为外网IP

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仓库 使用main分支或切换到release-v1.7或以后的release分支

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
SECRETopenim-server/config/config.yaml, chat/config/config.yaml需重启 IM 和 Chat

6.2 🔄 共用配置项中特殊配置项的修改

特殊配置项:API_OPENIM_PORT/MINIO_PORT/OPENIM_IP/GRAFANA_PORT

  1. 修改 .env 文件中的特殊配置项
  2. 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
  1. chat/config/config.yaml 中按照规则修改配置
如果IM在Chat不在同一台机器上,则需将127.0.0.1替换成IM所在机器的IP
openIMUrl: "http://127.0.0.1:$API_OPENIM_PORT"
  1. 重启 IM 和 Chat

6.3 🛠️ 其他配置项的修改

对于 .envchat/config/config.yamlopenim-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🔝