🛠 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 ...
随机推荐
- web自动化-selenium携带cookie免密登录
在我们做web自动化的时候,经常会遇到含有登录的页面,我们必须登录之后才能够对我们想要操作的页面元素进行定位,也就是说所有的操作都在登录前提下,其实没必要每次请求都先登录,当我们登录成功了,会在coo ...
- 在Flutter中使用SetState无效?可能是忽略了这个!
这次是Flutter开发技术分享,解决的问题点来自本人实际的开发经历. 首先描述一下问题:在某个组件中调用setState()方法更新该组件状态,结果是无法做到更新效果,组件仍然维持原状. 下面我们用 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子【莫队算法裸题】
作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿. 终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命. 具体来说,小Z把这N只袜子从1到N编号,然后从 ...
- Codeforces Round #677 (Div. 3) (A - E题题)
1433A. Boring Apartments #include <bits/stdc++.h> using namespace std; int main() { int t; cin ...
- Codeforces Round #544 (Div. 3)简单题解
复健,时间有限题解比较简陋 A. Middle of the Contest 将小时转成分钟,得到起止时间在一天中的分钟数,取平均值即可,复杂度O(1).平均值转换会时间的时候注意前导0. void ...
- the server responded with a status of 413 (Request Entity Too Large) 解决
前端上传文件,本地测试好的,放到服务器上出现了这个错误:the server responded with a status of 413 (Request Entity Too Large) 问题原 ...
- <vue 组件 4、插槽的使用>
代码结构 一. 01-slot-插槽的基本使用 1. 效果 同样的一个插槽,父组件调用的时候不同展现的内容就不同 2.代码 01-slot-插槽的基本使用.html <!DOCTYPE ...
- 无向图求割点 UVA 315
***割点概念:去掉一个点后图不连通,该点就为割点 割点满足的条件: 一个顶点u是割点,当且仅当满足(1)或(2) (1) u为树根,且u有多于一个子树. (2) u不为树根,且满足存在(u,v)为树 ...
- 基于python+django的求职招聘网站-网上招聘管理系统设计与实现
该系统是基于python+django的求职招聘网站.网上招聘管理系统.网上人才招聘系统.毕业生求职招聘系统.大学生求职招聘系统.校园招聘系统.企业招聘系统.系统适合场景:大学生.课程作业.毕业设计. ...
- zookeeper源码(02)源码编译启动及idea导入
本文介绍一下zookeeper-3.9.0源码下载.编译及本地启动. 下载源码 git clone https://gitee.com/apache/zookeeper.git cd zookeepe ...