部署openIM
来源:🛠 即时通讯(IM)开源项目OpenIM docker comose部署指南 – 知乎 (zhihu.com)
🛠 即时通讯(IM)开源项目OpenIM docker comose部署指南

开源OpenIM作者 IM高级架构师 IM/WebRTC专家关注他
即时通讯(IM)开源项目OpenIM docker comose部署指南
1. 环境及组件要求
OpenIM的部署包括多个组件,并且支持包括源码、Docker和Kubernetes在内的多种方式。这就要求我们既要确保不同部署方法之间的相互兼容,又要有效管理不同版本之间的差异。这无疑是一个涉及技术深度和精确系统配置的复杂任务。我们致力于使部署过程更加简化,同时保证系统的灵活性和稳定性,以满足各种用户需求。目前,我们已经在3.5版本中实现了部署流程的简化,并且将对这个版本进行长期维护,期待大家的使用体验。
1. 环境及组件要求
环境要求
注意事项 | 详细说明 |
---|---|
操作系统 | Linux 系统 |
硬件资源 | 至少 4G 可用内存 |
Golang | v1.19 或更高 |
Docker | v24.0.5 或更高 |
Git | v2.17.1 或更高 |
存储组件要求
存储组件 | 建议版本 |
---|---|
MongoDB | v6.0.2 或更高 |
Redis | v7.0.0 或更高 |
Zookeeper | v3.8 |
Kafka | v3.5.1 |
MySQL | v5.7 或更高 |
MinIO | 最新版本 |
2. docker部署
2.1 克隆仓库并初始化
git clone https://github.com/openimsdk/openim-docker openim-docker && cd openim-docker && make init
2.2 设置OPENIM_IP
# 如果服务器有外网IP
export OPENIM_IP="外网IP"
# 如果仅提供内网服务
export OPENIM_IP="内网IP"
2.3 启动服务及查看日志
docker compose up -d
docker ps
docker compose logs -f openim-chat
docker compose logs -f openim-server
3. 快速验证
开放端口
IM 端口
TCP 端口 | 说明 | 操作 |
---|---|---|
TCP:10001 | ws 协议,消息端口,用于客户端 SDK | 端口放行 |
TCP:10002 | api 端口,如用户、好友、群组、消息等接口 | 端口放行 |
TCP:10005 | 选择 MinIO 存储时需要(OpenIM 默认使用 MinIO 存储) | 端口放行 |
Chat 端口
TCP 端口 | 说明 | 操作 |
---|---|---|
TCP:10008 | 业务系统,如注册、登录等 | 端口放行 |
TCP:10009 | 管理后台,如统计、封号等 | 端口放行 |
PC Web 及管理后台前端资源端口
TCP 端口 | 说明 | 操作 |
---|---|---|
TCP:11001 | PC Web 前端资源 | 端口放行 |
TCP:11002 | 管理后台前端资源 | 端口放行 |
Grafana 端口
TCP 端口 | 说明 | 操作 |
---|---|---|
TCP:13000 | grafana端口 | 端口放行 |
4. 验证
PC Web 验证
提示: 在浏览器中输入 http://ip:11001
来访问 PC Web。此 IP 应为服务端 OPENIM_IP
,确保浏览器能访问。首次使用请通过手机号注册,验证码默认为 666666
。

图:PC Web 接口示例
App 验证
扫描以下二维码或点击 这里 进行下载。
图:App 下载二维码
提示: 双击 OpenIM 后修改 IP 为服务端 OPENIM_IP
再重启 App。请确保开放相关端口,并在修改后重启 App。首次使用请先通过手机号注册,验证码默认为 666666
。

图:服务器地址修改 – 步骤 1

图:服务器地址修改 – 步骤 2
管理后台验证
在浏览器中输入 http://ip:11002
来访问管理后台。此 IP 应为服务端 OPENIM_IP
,确保您的浏览器能访问。默认账号和密码均为 chatAdmin
。

图:管理后台界面
5. 关于配置项的修改
此项目配置项较为复杂,主要是某些配置项涉及到.env
、openim-chat/config/config.yaml
和 openim-server/config/config.yaml
多个文件,配置项的修改说明分为两个部分,分别是共用配置项的修改和其他配置项的修改。
5.1 共用配置项
.env
、openim-chat/config/config.yaml
和 openim-server/config/config.yaml
共用的配置项:
- mysql/mongo/redis/kafka/zookeeper/minio 端口及密码;
- SECRET;
- API_OPENIM_PORT;
- OPENIM_IP;
- MINIO_PORT;
- GRAFANA_PORT
5.2 修改方法
对于5.1共用配置项的修改,以下两种方式二选一。
方式一:所有配置重新生成
如果需要全面更新配置,可以采用以下步骤:
- 删除现有配置文件:删除
openim-server/config/config.yaml
和openim-chat/config/config.yaml
文件。 - 修改
.env
文件:更新.env
文件中的相关配置项。 - 重新生成配置并重启服务:执行
docker compose down ; docker compose up -d
,这将基于.env
文件中的新设置重新生成配置文件,并重启服务。
方式二:分别修改多个配置文件
如果只需部分更新配置,可以按照以下步骤操作:
- 修改
.env
文件:更新.env
文件中的相关配置项。 - 手动更新配置文件:根据
.env
文件的修改,相应地更新openim-server/config/config.yaml
和openim-chat/config/config.yaml
文件中的配置项。 - 特殊变量的额外处理:如果修改了
OPENIM_IP
、API_OPENIM_PORT
、MINIO_PORT
、GRAFANA_PORT
,则需要在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 - 重启服务:执行
docker compose down ; docker compose up -d
以应用更改并重启服务。
5.3 其他配置项的修改
对于 .env
、openim-chat/config/config.yaml
和 openim-server/config/config.yaml
中的非共用变量,可以单独修改相应文件中的这些配置项。执行 docker compose down ; docker compose up -d
以应用更改并重启服务。
❓ 6. 常见问题
1. 关于 Docker 版本
新版 Docker 已经整合了 docker-compose. 老版本的 Docker 可能不支持 gateway 功能❌。我们建议您升级到较新的版本,例如 23.0.1
7. 关于OpenIM
得益于广泛的开发者支持,OpenIM在开源即时通讯(IM)领域保持着领先地位,在Github上的星标数量已经超过12,000。在当前对数据和隐私安全日益重视的背景下,IM私有部署的需求不断增长,这与中国软件产业的快速发展趋势相契合。特别是在政府和企业领域,随着信息技术的飞速发展和创新产业的广泛应用,对IM解决方案的需求急剧上升。进一步来看,协同办公软件市场的持续扩张使得“安全可控”成为了一个关键属性。
仓库地址:https://github.com/openimsdk
