稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)

简介: OpenIM是一个即时通讯系统

背景
OpenIM包含多个关键组件,每个都是系统功能必不可少的一部分。具体来说,MongoDB 用于持久化存储;Redis 用作缓存;Kafka 用于消息队列;Zookeeper 用于服务发现;Minio 用于对象存储。这些组件的众多可能会增加部署的复杂性。此外,系统包含多个微服务模块,这要求有效管理进程的启动、停止和监控。为了简化这一过程,我们放弃了传统脚本,转而采用了 mage 这一跨平台方案,兼容所有主流平台和 CPU 架构。本文将详细介绍整个源码部署过程。

OpenIM整体架构
OpenIM主要分为OpenIM SDK和OpenIM Server两大核心部分。这两部分向开发者提供了全套工具和服务,使得即时通讯功能的集成变得简单便捷。功能涵盖了消息的发送与接收、用户管理、群组管理等关键方面。下面提供的OpenIM整体架构图清楚地展示了各组件在系统中的角色和位置,帮助开发者更好地理解和使用这一平台。

1.png

1环境要求
注意事项 详细说明
操作系统 全平台支持(Linux, Windows, Mac)
CPU 支持ARM和AMD架构
硬件资源 至少8GB可用内存
Golang v1.20 或更高
Docker 集成了Compose插件或者使用Docker-compose
Git v2.17.1 或更高

  1. 部署 OpenIM Server (IM)
    2.1 克隆仓库
    使用 main 分支或切换到 release-v3.7 及以后的发布分支:

git clone https://github.com/openimsdk/open-im-server && cd open-im-server
注意:

1.一般建议使用release分支,功能稳定;

2.如果是通过windows下载,再上传到linux,可能会有脚本权限或\r问题,建议 执行命令 find ./ -name "*.sh" | xargs chmod +x,以赋予脚本执行权限;

2.2 部署组件 (MongoDB/Redis/Zookeeper/Kafka/MinIO)
通过Docker Compose启动服务:

docker compose up -d
这一步主要是自动部署所依赖的组件,以及web/admin前端镜像,同时会把端口映射出来,以供openIM访问和外部使用,

如果要修改组件密码,则需要在此命令执行之前修改docker-compose.yml文件。

2.3 设置外网IP
修改配置文件,设置外部访问地址:

在 config/minio.yml 中修改 externalAddress 为 http://外网IP:port

这个是minio的访问地址,如不修改,则无法发送图片视频文件。

在 config/openim-api.yml 中将 grafanaURL: http://127.0.0.1:13000/ 修改为 http://外网IP:port

这个是grafana的访问地址,如不修改,则无法查看统计数据。

这里所谓的外网IP,仅表示用户能通过此IP访问,无所谓是否真正意义的外网IP

2.4 ?? 初始化
在第一次编译前执行初始化脚本:

Linux/Mac 平台:

bash bootstrap.sh
Windows 平台:

bootstrap.bat
这里主要是下载mage,前提是能本机访问github,同时已经安装了go

2.5 ?? 编译
适用于Linux/Windows/Mac平台:

mage
这里需要先下载依赖,所以第一次编译可能会比较慢,大概需要3-5分钟,建议设置go代理

99.png

2.6 ? 启动/停止/检测
适用于Linux/Windows/Mac平台:

启动:

mage start

3.png

后台启动并收集日志:

nohup mage start >> _output/logs/openim.log 2>&1 &
停止:

mage stop

4.png

检测:

mage check

5.png

  1. 部署 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
关于我们
得益于广泛的开发者支持,OpenIM在开源即时通讯(IM)领域保持领先地位,目前在GitHub上的星标已超过13k。在政府和企业领域,随着信息技术的快速发展和创新产业的广泛应用,对IM的需求正急速增长。此外,随着协同办公软件市场的持续扩展,“安全可控”已成为最关键的要求之一。
6.png

在后AIGC时代,IM作为人机交互的首要接口,其价值势必会越来越大。我们期待OpenIM在后AIGC时代能发挥更大的作用,使每一个应用都能集成OpenIM,提升整体效率和安全性。

github: https://github.com/openimsdk

developer: https://docs.openim.io/zh-Hans/
6.png

目录
相关文章
|
1天前
|
开发工具 Android开发 git
Windows下载android2.2完整源码(转)
Windows下载android2.2完整源码(转)
16 3
|
1天前
|
Java API 开发工具
开源即时通讯IM框架 MobileIMSDK v6.5 发布
本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes、Github Release Notes)。 MobileIMSDK 可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架。轻量级、高度提炼,历经10年、久经考验。客户端支持iOS、Android、Java、H5、微信小程序、Uniapp,服务端基于Netty。
38 2
|
1天前
|
前端开发 Java 应用服务中间件
在虚拟机的Windows操作系统中:通过Jar方式若依项目,以及在外部的访问!
在虚拟机的Windows操作系统中:通过Jar方式若依项目,以及在外部的访问!
|
1天前
|
安全 开发者 Docker
总结反思 持续进步-开源即时通讯(IM)项目OpenIM 新版本release-v3.7发布
背景 过去,我们团队对开源项目的认知较浅,过分追求进度,而忽视了代码的质量和规范。这导致了一些问题,例如部署流程设计不当:流程复杂、不规范,以及Mac与Windows部署的明显缺陷。这些问题不仅给开发者带来了困扰,也增加了社区维护的难度。 针对这些挑战,我们团队进行了深刻的反思并总结出了相关问题。目前,我们正在专注于提高代码质量和规范化工作,并在完善我们的开源贡献流程,以吸引更多贡献者参与。我们相信这是关键步骤,以扩大社区的影响力并将OpenIM发展成为一流的开源项目。 为此,我们已规划推出release-v3.7版本,该版本将全面改造部署、规范和流程等方面,并且与3.6版本数据完全兼容。
41 0
|
1天前
|
人工智能 Ubuntu 机器人
AI电销机器人系统源码部署之:freeswitch安装Linux
在Linux服务器上安装FreeSWITCH的简要步骤:更新软件包,安装依赖(如build-essential,libssl-dev等),下载v1.10.7源代码,解压并配置,编译,然后运行`./bootstrap.sh -j`,`./configure`,`make`,`make install`。启动FreeSWITCH服务,配置SIP用户和路由,测试连接与通话,并确保防火墙打开SIP(5060)和RTP端口。注意,实际部署可能需按需求调整。
|
1天前
|
人工智能 安全 机器人
AI电销机器人系统源码部署:freeswitch安装Windows
在Windows上安装FreeSWITCH:访问官网下载安装程序,运行并按提示安装;选择安装路径和组件;等待安装完成;配置FreeSWITCH,修改设置;启动服务;测试其功能;如遇问题,参考官方文档或进行调试故障排除。记得定期更新维护以保证稳定安全。
|
1天前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
190 2
|
1天前
|
Linux 程序员 计算机视觉
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
13 0
|
1天前
|
Linux
Linux的find命令使用
【5月更文挑战第11天】Linux的find命令使用
13 3
|
1天前
|
监控 Linux 数据处理
http://www.vxiaotou.com