?? 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

?? 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

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容