🛠 Open Source Instant Messaging (IM) Project OpenIM Source Code
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
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)
# 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
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
makeinitmakebuild
3.3 Starting/Stopping/Checking
# Startmakestart# Stopmakestop# Checkmakecheck
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
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
TCP PortDescriptionAction
TCP:13000Grafana portAllow port
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
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.
Note that for any modification of IM-related ports, it’s necessary to synchronize the changes in open-im-server/scripts/install/environment.sh.
Runtime logs: logs/OpenIM.log.all.*
Startup logs: _output/logs/openim_*.log
The startup order is as follows:
Components IM depends on: mongo/redis/kafka/zookeeper/minio, etc.
IM
Components Chat depends on: mysql
Cha
t
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.
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的更多相关文章
- 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 ...
- The source attachment does not contain the source for the file ActionSupport.class 错误
报错 Syntax error, insert ";" to complete FieldDeclaration 报错 The source attachment does ...
- debug网页时小问题The source attachment does not contain the source for the file
第一次debug总是出现下图问题,提示我没加源码... The source attachment does not contain the source for the file ... 解决方法: ...
- 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 ...
- Instant Messaging for OpenERP v7
This module is based on the socket.io real time implementation. It inherit Of the modules web_longpo ...
- Android Project from Existing Code 生成 R 文件错误、失败等问题解决办法 - 持续更新
Android Project from Existing Code 生成 R 文件错误.失败等问题解决办法 - 持续更新 git 上的项目,pull下来之后用Android Project fro ...
- Source Insight 基本使用(1)-使用Source Insight查看Android Framework 源码
一.下载framework源码: google已经把framework源码托管在了gitHub上: https://github.com/android/platform_frameworks_bas ...
- Source Insight 基本使用(2)-修改Source Insight 快捷键
1. 首先,打开source insight主界面. 2. 选择"options->key assignments",进入快捷键设置界面. 3. 此时,可以看到快捷键设置对话 ...
- The source attachment does not contain the source for the file SignatureParser.class错误
在myeclipse整合tomcat的完毕后,再启动tomcat的时候会出现这样的错误,呵呵,错误的大致意思是什么相关联错误,其实是myeclipse新加入的tomcat的模式出现错误了,myecli ...
- 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 ...
随机推荐
- 我教你解决 Ubuntu 常见的三个问题:Window和Ubuntu无法复制,有另一个软件包管理程序正在运行、无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)
第一个问题:当自己遇到这个问题的时候,查阅很多资料,发现很多需要安装一大推东西,又是安装,又是重启,最后还是没有搞定.最后还是通过这三行命令搞定了.sudo apt-get autoremove op ...
- Cypress系列(1)-Window下安装Cypress并打开
Cypress系列(1)-Window下安装Cypress并打开 系统要求 Cypress是一个被安装在你电脑上的桌面应用,你的操作系统需要满足如下条件才能正常安装 Mac OS 10.9+(仅提供6 ...
- 使用JSEncrypt加密解密
最近项目中使用非对称加密JSEncrypt. uni-app中先安装第三方npm包jsencrypt util文件夹下新建一个jsencrypt.js文件 1 import JSEncrypt fro ...
- C# 排序算法2:选择排序
选择排序法 ,是在要排序的一组数中,选出最小(或最大)的一个数与第一个位置的数交换:在剩下的数当中找最小的与第二个位置的数交换,即顺序放在已排好序的数列的最后,如此循环,直到全部数据元素排完为止. 原 ...
- java进阶(16)--System常用方法总结
一.Systen.out静态变量 静态变量,用的最多的是调用print方法 二.System.out.println() println()其实是printStream类的方法 三.Sytem ...
- STM32CubeMX教程19 I2C - MPU6050驱动
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) 野火DAP仿真器 keil µVision5 IDE(MDK-Arm) ST- ...
- java基础-IO流-day13
目录 1. IO的概念 2. 一个一个字符 完成文件的复制 3. 字节流 4. 转换字节流 5. System.in 7.基本数据类型的数据 8. object的处理 1. IO的概念 计算机内存中的 ...
- 基于Tensorflow技术开发的计算机毕业设计辅助生成器(使用AI大模型技术)
这是一个辅助生成计算机毕业设计的工具,可以自动完成毕业设计的源码.它基于几百个github上面开源的java和python项目,运用tensorflow技术,训练出了AI大模型.基本实现了计算机毕业设 ...
- 例2.6 设计一个高效的算法,从顺序表L中删除所有值为x的元素,要求时间复杂度为0(n)空间复杂度为0(1)。
1.题目 例2.6 设计一个高效的算法,从顺序表L中删除所有值为x的元素,要求时间复杂度为0(n)空间复杂度为0(1). 2.算法思想 3.代码 void DeleteX(SeqList LA, Se ...
- 【TouchGFX】使用CubeMX创建touchgfx项目 -- 初始篇
1.系统构成,黑色块表示组件非必须 2.环境准备 CubeMX:6.0.1 touchgfx:4.15.0 rt-thread:2020-8-14 commit Keil:5.30 board:stm ...