一、项目概述
OpenIM是一个开源的即时通讯解决方案,不同于Telegram、Signal等独立聊天应用,它主要为开发者提供可集成的即时通讯功能。该项目包含OpenIMSDK和OpenIMServer两大组件,支持消息收发、用户管理、群组管理等核心功能,具有高度可定制化的特点。
二、环境准备
- 操作系统:支持Linux/Windows/Mac
- 基础环境:
- Git
- Go 1.15+版本
- Docker及Docker Compose
- 磁盘空间:建议准备大容量存储目录
三、源码获取与初始化
```bash
git clone https://github.com/openimsdk/open-im-server
cd open-im-server
建议使用release分支
git checkout release-v3.7
```
如果是Windows环境下载后上传到Linux,需执行权限赋予命令:
```bash
find ./ -name "*.sh" | xargs chmod +x
```
四、组件部署
通过Docker Compose一键部署依赖组件:
```bash
docker-compose up -d
```
该命令将自动部署:
- MongoDB
- Redis
- Zookeeper
- Kafka
- MinIO
- Web/Admin前端镜像
五、关键配置修改
- 修改`.env`文件:
```env
USER=root
PASSWORD=your_strong_password # 建议8位以上不含特殊符号
ENDPOINT=http://your_external_ip:10005 # 使用MinIO必需
DATA_DIR=/your/storage/path
``` - 修改配置文件:
- `config/minio.yml`: 设置externalAddress为`http://外网IP:port`
- `config/openim-api.yml`: 修改grafanaURL为`http://外网IP:port`
- `config/usualConfig.yaml`: 调整token策略和消息验证设置
六、服务启动与验证
```bash
./install_im_server.sh # 初始化部署
docker-compose down && docker-compose up -d # 重启服务
```
七、编译源码(可选)
如需自定义编译:
```bash
cd cmd/Open-IM-SDK-Core
chmod +x ../../script/*.sh
../../script/batch_build_all_service.sh
出现"all services build success"即编译成功
```
八、常见问题处理
- 非首次安装时.env密码可能失效,建议执行:
```bash
docker-compose down
rm components -rf
``` - 文件权限问题可通过`chmod +x`解决
- Windows-Linux文件传输注意换行符问题
九、功能扩展建议
- 集成对象存储服务替代MinIO
- 配置HTTPS安全访问
- 根据业务需求调整token有效期等安全参数
通过以上步骤,您即可完成OpenIM的完整部署。该解决方案支持二次开发,开发者可根据实际需求进行深度定制,构建专属的即时通讯系统。