Deploying OpenIM involves multiple components and supports various methods, including source code, Docker, and Kubernetes. This requires ensuring compatibility between different deployment methods while effectively managing differences between versions. Indeed, these are complex issues involving in-depth technical details and precise system configurations. Our goal is to simplify the deployment process while maintaining the system’s flexibility and stability to suit different users’ needs. Currently, version 3.5 has simplified the deployment process, and this version will be maintained for a long time. We welcome everyone to use it.

1. Environment and Component Requirements

Environmental Requirements

NoteDetailed Description

OSLinux system

HardwareAt least 4GB of RAM

Golangv1.19 or higher

Dockerv24.0.5 or higher

Gitv2.17.1 or higher

Storage Component Requirements

Storage ComponentRecommended Version

MongoDBv6.0.2 or higher

Redisv7.0.0 or higher

Zookeeperv3.8

Kafkav3.5.1

MySQLv5.7 or higher

MinIOLatest version

2. Deploying OpenIM Server (IM)

2.1 Setting OPENIM_IP

# If the server has an external IPexportOPENIM_IP="external IP"# If only providing internal network servicesexportOPENIM_IP="internal IP"

2.2 ️ Deploying Components (mongodb/redis/zookeeper/kafka/MinIO, etc.)

gitclone https://github.com/OpenIMSDK/open-im-server&&cdopen-im-server# It's recommended to switch to release-v3.5 or later release branchesmakeinit&&docker compose up -d

2.3 ️ Compilation

makebuild

2.4 Starting/Stopping/Checking

# Startmakestart# Stopmakestop# Checkmakecheck

3. Deploying App Server (Chat)

3.1 ️ Deploying Components (mysql)

# Go back to the previous directorycd..# Clone the repository, recommended to switch to release-v1.5 or later release branchesgitclone https://github.com/OpenIMSDK/chat chat&&cdchat# Deploy mysqldocker run -d --name mysql2 -p13306:3306 -p33306:33060 -v"$(pwd)/components/mysql/data:/var/lib/mysql"-v"/etc/localtime:/etc/localtime"-eMYSQL_ROOT_PASSWORD="openIM123"--restart always mysql:5.7

3.2 ️ Compilation

makeinitmakebuild

3.3 Starting/Stopping/Checking

# Startmakestart# Stopmakestop# Checkmakecheck

4. Quick Validation

Open Ports

IM Ports

TCP PortDescriptionAction

TCP:10001ws protocol, messaging port, for client SDKAllow port

TCP:10002API port, like user, friend, group, message interfacesAllow port

TCP:10005Required when choosing MinIO storage (OpenIM defaults to MinIO storage)Allow port

Chat Ports

TCP PortDescriptionAction

TCP:10008Business system, like registration, login, etc.Allow port

TCP:10009Management backend, like statistics, account banning, etc.Allow port

PC Web and Management Backend Frontend Resource Ports

TCP PortDescriptionAction

TCP:11001PC Web frontend resourcesAllow port

TCP:11002Management backend frontend resourcesAllow port

Grafana Port

TCP PortDescriptionAction

TCP:13000Grafana portAllow port

Verification

PC Web Verification

Note: Enter http://ip:11001 in your browser to access the PC Web. This IP should be the server’s OPENIM_IP to ensure browser accessibility. For first-time use, please register using your mobile phone number, with the default verification code being 666666.

 

Image: PC Web Interface Example

App Verification

Scan the following QR code or click here to download.

Image: App Download QR Code

Note: Double-click on OpenIM and change the IP to the server’s OPENIM_IP then restart the App. Please ensure related ports are open, and restart the App after making changes. For first-time use, please register first through your mobile phone number, with the default verification code being 666666.

 

Image: Server Address Modification - Step 1

 

Image: Server Address Modification - Step 2

5. Modifying Configuration Items

5.1 ️ Modifying Shared Configuration Items

Configuration ItemFiles to be ModifiedAction

mongo/kafka/minio related.env, openim-server/config/config.yamlRestart components and IM

redis/zookeeper related.env, openim-server/config/config.yaml, chat/config/config.yamlRestart components, IM, and Chat

SECRETopenim-server/config/config.yaml, chat/config/config.yamlRestart IM and Chat

5.2 Modifying Special Configuration Items

Special configuration items: API_OPENIM_PORT/MINIO_PORT/OPENIM_IP/GRAFANA_PORT

Modify the special configuration items in the .env file

Modify the configuration in openim-server/config/config.yaml according to the rules

Modify the configuration in chat/config/config.yaml according to the rules

Restart IM and Chat

5.3 ️ Modifying Other Configuration Items

For other configuration items in .env, chat/config/config.yaml, and openim-server/config/config.yaml, you can modify these items directly in the respective files.

5.4 Modifying Ports

Note that for any modification of IM-related ports, it’s necessary to synchronize the changes in open-im-server/scripts/install/environment.sh.

6. Frequently Asked Questions

6.1 Viewing Logs

Runtime logs: logs/OpenIM.log.all.*

Startup logs: _output/logs/openim_*.log

6.2 Startup Order

The startup order is as follows:

Components IM depends on: mongo/redis/kafka/zookeeper/minio, etc.

IM

Components Chat depends on: mysql

Cha

t

6.3 Docker Version

The new version of Docker has integrated docker-compose.

Older versions of Docker might not support the gateway feature. It’s recommended to upgrade to a newer version, such as 23.0.1.

7. About OpenIM

Thanks to widespread developer support, OpenIM maintains a leading position in the open-source instant messaging (IM) field, with the number of stars on Github exceeding 12,000. In the current context of increasing attention to data and privacy security, the demand for IM private deployment is growing, which aligns with the rapid development trend of China’s software industry. Especially in government and enterprise sectors, with the rapid development of information technology and the widespread application of innovative

industries, the demand for IM solutions has surged. Further, the continuous expansion of the collaborative office software market has made “secure and controllable” a key attribute.

Repository address: https://github.com/openimsdk

 

🛠 Open Source Instant Messaging (IM) Project OpenIM Source Code的更多相关文章

  1. Instant Messaging for Business: Your 10 Best Options

    Instant Messaging for Business: Your 10 Best Options By Iaroslav Kudritskiy It's probably not a surp ...

  2. The source attachment does not contain the source for the file  ActionSupport.class 错误

    报错  Syntax error, insert ";" to complete FieldDeclaration 报错   The source attachment does ...

  3. debug网页时小问题The source attachment does not contain the source for the file

    第一次debug总是出现下图问题,提示我没加源码... The source attachment does not contain the source for the file ... 解决方法: ...

  4. ubuntu server激活即时通讯IM服务 Instant Messaging is not activated on this server

    转自:http://shine-it.net/index.php/topic,16469.msg28364.html ubuntu server 下 odoo激活及时通讯功能im OpenERP IM ...

  5. Instant Messaging for OpenERP v7

    This module is based on the socket.io real time implementation. It inherit Of the modules web_longpo ...

  6. Android Project from Existing Code 生成 R 文件错误、失败等问题解决办法 - 持续更新

    Android Project from Existing Code 生成 R 文件错误.失败等问题解决办法 - 持续更新 git  上的项目,pull下来之后用Android Project fro ...

  7. Source Insight 基本使用(1)-使用Source Insight查看Android Framework 源码

    一.下载framework源码: google已经把framework源码托管在了gitHub上: https://github.com/android/platform_frameworks_bas ...

  8. Source Insight 基本使用(2)-修改Source Insight 快捷键

    1. 首先,打开source insight主界面. 2. 选择"options->key assignments",进入快捷键设置界面. 3. 此时,可以看到快捷键设置对话 ...

  9. The source attachment does not contain the source for the file SignatureParser.class错误

    在myeclipse整合tomcat的完毕后,再启动tomcat的时候会出现这样的错误,呵呵,错误的大致意思是什么相关联错误,其实是myeclipse新加入的tomcat的模式出现错误了,myecli ...

  10. A tutorial that will show you how to build an instant messaging app with Sinch.

    http://stackoverflow.com/questions/26247986/unsatisfiedlinkerror-couldnt-load-sinch-android-rtc-from ...

随机推荐

  1. Solon 的多配置文件切换

    比如有配置文件: app.yml app-dev.yml app-pro.yml 可以通过启动参数:-env java -jar demoapp.jar -env=dev

  2. 协同导航定位技术:为GPS定位盲区而生

    导航技术和我们的生活息息相关.行人导航系统是一种为行人提供导航服务的便携式设备,可以适应地下.矿洞等卫星信号拒止的地区,以及大商场等拓扑结构复杂的地区,通常基于MIMU实现,本质上是惯性导航系统的一种 ...

  3. RPC 框架性能测试,注意这 8 点就够了

    某天,二狗子写了一个 RPC 框架后,简单测了一下性能,发现超出 grpc 一大截.二狗子一高兴,忍不住找同事吹了一波.结果,同事亲测后对二狗子说框架性能也就这样.二狗子表示不服,跟同事一番唇枪舌剑后 ...

  4. Safari 14.0 的功臣 Webp?

    俗话说:一图胜千言.在网上,图片虽然可以让用户更加简单明了地看到更多信息,但是图片体积也可以抵过上千字节甚至更多.研究表明,打开一个 HTTP 网页,其中图片平均占比为 64%.在图片占比如此高的情况 ...

  5. KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)(AB水题,C思维,D搜索,E DP)

    补题链接:Here A - Century 整除 \(200\) 并且判断能否整除完全 B - 200th ABC-200 按题意即可 C - Ringo's Favorite Numbers 2 求 ...

  6. mysql和redis库存扣减和优化

    前言 大流量情况下的库存是老生常谈的问题了,在这里我整理一下mysql和redis应对扣除库存的方案,采用jmeter进行压测. JMETER设置 库存初始值50,线程数量1000个,1秒以内启动全部 ...

  7. 图扑 HT for Web 风格属性手册教程

    图扑软件明星产品 HT for Web 是一套纯国产化独立自主研发的 2D 和 3D 图形界面可视化引擎.HT for Web(以下简称 HT)图元的样式由其 Style 属性控制,并且不同类型图元的 ...

  8. vue学习笔记 十四、页面跳转

    系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...

  9. 问题--flask无法发邮件,无法登录

    1.问题 早上测试项目的时候,一直无法正确发送邮件,无法接收,但是查不出原因是什么 2.解决 改变了一下思路,去登录了不需要邮件验证码的用户,发现错误 这个错误提示是一个数据库连接错误,表明应用程序无 ...

  10. Java - 输出空心菱形

    1. 思路:发现菱形的规律 ,定义三个变量,左边距和右边距,中间的边距 .   具体规律观察上图  . 2.上代码: //输出空心菱形 public class ForToLingXing { pub ...