开源即时通讯(IM)项目OpenIM源码部署流程

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 开源即时通讯(IM)项目OpenIM源码部署流程

由于OpenIM依赖的组件较多,开发者需求不一,导致OpenIM部署一直被人诟病,经过几次迭代优化,包括依赖的组件compose的一键部署,环境变量设置一次,全局生效,以及脚本重构,目前OpenIM部署比较丝滑,特写文章分享给大家。OpenIM是什么OpenIM不是一个独立的聊天产品,它不像telegram、Signal、rocket.chat那样是一个完全独立、可以直接安装使用的聊天应用程序。而是一个开源的即时通讯解决方案,为开发者提供了一系列的工具和服务,以便于他们在自己的应用程序中集成即时通讯功能。Telegram、Signal、rocket.chat等是一些完全独立的聊天应用,用户可以直接下载安装使用,这些应用通常包含了完整的前端界面和后端服务。OpenIM是一个开源的即时通讯解决方案,包括OpenIMSDK和OpenIMServer两个主要部分。开发者可以使用这些工具和服务在自己的应用程序中实现消息的发送、接收、用户管理、群组管理等功能。OpenIMSDK: 这是一个软件开发工具包,开发者可以使用这个工具包在自己的应用程序中集成即时通讯功能。OpenIMSDK提供了一系列的API接口,使开发者能够方便地实现消息发送、接收、用户管理、群组管理等功能。该SDK通常包含不同的版本,以适应不同的平台和编程语言,例如iOS、Android、Web、Windows等。OpenIMServer: 这是即时通讯的服务器端组件。它负责管理用户的连接、消息的转发、消息的存储等功能。OpenIMServer通常部署在云端或者自有的服务器上。该组件通常包括了用户管理、消息存储、消息转发、消息推送、文件传输等模块。OpenIM的主要优势是它是开源的,这意味着开发者可以根据自身的需求对其进行定制和扩展。同时,OpenIM也提供了一系列的文档和示例代码,帮助开发者更快地理解和使用这个解决方案。此外,OpenIM通常提供了一套完整的即时通讯解决方案,包括了客户端和服务器端,这使得开发者能够更加集中精力在自己的应用程序的开发上,而不需要花费太多时间在即时通讯功能的实现上。开发者在app client中集成OpenIMSDK,同时编写带有自身业务逻辑的app Server代码,通过REST API和callback和OpenIMServer源码部署环境及系统要求注意事项详细说明操作系统linux系统即可, Ubuntu 7.5.0-3ubuntu1~18.04最优,root用户硬件资源可用内存2G以上,用户量小于10万,可用单机部署,8C 16G 10Mb 1T普通磁盘即可golang1.18及以上dockerDocker version 24.0.5, build ced0996及以上git2.17.1及以上存储组件存储组件建议版本mongodb6.0.2及以上redis7.0.0及以上zookeeperlatestkafkalatestmysql5.7及以上miniolatestOpenIM不是一个完整的聊天软件,而是开源的即时通讯组件,包括open-im-sdk和open-im-server ,本身不包含账号的注册和登录服务。 为方便大家测试,我们开源了包括登录注册功能的 chat 仓库,同时部署chat和open-im-server,即可搭建一个完整的聊天产品。一、先部署组件clone仓库并切换发布分支(release-v3.3及之后的版本)git clone https://github.com/openimsdk/open-im-server && cd open-im-server 设置环境变量# 一般情况下只需要设置mysql/mongodb/redis/minio组件密码PASSWORD,如未设置,则为默认密码openIM123

export PASSWORD="openIM123" # 设置mysql/mongodb/redis/minio组件密码,至少8位,不能包含特殊字符,默认是openIM123

export USER="root" # 设置mysql/mongodb/redis/minio用户名,目前只支持root

export API_URL="http://127.0.0.1:10002" # 内网环境下,需设置 OpenIM Server API 提供服务的地址,外网环境下会自动获取

export DATA_DIR="./" #设置组件挂载的数据卷目录,默认为./部署组件make init && docker compose up -d查看组件状态docker ps二、编译/启动/检测/停止open-im-server编译./scripts/build-all-service.sh 2.启动./scripts/start-all.sh检测./scripts/check-all.sh停止./scripts/stop-all.sh其它问题如想使用某些外部组件,该如何修改举例说明,如想使用外部的mysql,操作步骤如下:

1.编辑 docker-compose.yml 在此文件中注释掉mysql相关配置项
2.编辑scripts/install/environment.sh 修改mysql的ip port及密码等配置项
3.make init使配置生效
4.docker compose up -d启动组件启动顺序组件->open-im-server->chat 需按照这个顺序启动docker版本 新版docker已经整合docker dompose作为其核心功能的一部分,不需单独安装docker-compose
如果您的docker版本过低,建议升级到新版本,官方使用的是23.0.1版本升级问题如组件账号密码不做修改,则可以直接升级,升级前确保进程都被停止了如组件启动后再修改组件密码1. 需先停掉组件docker

  1. 删除整个components目录(如数据不重要)
  2. export PASSWORD=newpassword
  3. 启动组件docker使密码生效更多配置项不要直接修改config/config.yaml文件,建议编辑scripts/install/environment.sh后 make init 使配置生效日志查看 logs/OpenIM.log.all.:记录运行时日志
    _output/logs/openim_20230909.log:记录启动日志三、编译/启动/检测/停止chatclone仓库并切换发布分支(release-v1.3及之后的版本)#先回到上一级目录
    cd ..
    git clone https://github.com/openimsdk/chat.git && cd chat2.编译./scripts/build_all_service.sh3.启动./scripts/start_all.sh4.检测./scripts/check_all.sh --print-screen5.停止./scripts/stop_all.sh其它问题如果zk连接失败 确认zookeeper的ip端口是否正确。如果组件部署时修改过zookeeper相关配置,则需要修改config/config.yaml文件中的zookeeper配置项如果用户注册失败 确认openIMUrl的ip端口是否正确,如果组件部署时修改过open-im-server的ip和端口,则需要修改config/config.yaml文件中的openIMUrl配置项,确保chat能访问open-im-server的api端口日志查看 logs目录下
    openIM.log:记录启动日志
    chat.log.
    :记录运行时日志四、开放端口开放 IM 端口TCP 端口说明操作TCP:10001ws 协议,消息端口,如消息发送、推送等,用于客户端 SDK端口放行或 nginx 反向代理,并关闭防火墙TCP:10002api 端口,如用户、好友、群组、消息等接口。端口放行或 nginx 反向代理,并关闭防火墙TCP:10005选择 minio 存储时需要(openIM 默认使用 minio 存储)端口放行或 nginx 反向代理,并关闭防火墙开放 Chat 端口TCP 端口说明操作TCP:10008业务系统,如注册、登录等端口放行或 nginx 反向代理,并关闭防火墙TCP:10009管理后台,如统计、封号等端口放行或 nginx 反向代理,并关闭防火墙开放 pc web 端口TCP 端口说明操作TCP:11001http://ip:11001 访问pc web端口放行或 nginx 反向代理,并关闭防火墙体验pc web浏览器输入 http://ip:11001 访问pc web,注意此ip为服务器ip,确保pc端能访问 先通过手机号注册,验证码默认为 666666 关于OpenIM得益于广大开发者的支持,OpenIM在开源IM领域中保持着领先地位,目前在Github上的星标数量已超过12k。在当前数据和隐私安全受到重视的背景下,IM的私有部署需求逐渐增长,这与国内软件产业的崛起趋势相吻合。特别是在政企领域,随着信息技术的快速发展和创新产业的应用,对IM的需求迅速增长。更进一步,协同办公软件市场持续扩大,其中“安全可控”已经被视为最关键的属性。github: https://github.com/OpenIMSDK/ website: https://www.openim.online/zh developer: https://doc.rentsoft.cn/sdks/quickstart
目录
相关文章
|
8月前
|
数据安全/隐私保护 容器 Go
开源IM即时通讯系统调研
Lumen IM 是一款企业级开源即时通讯工具,前端采用 Vue3 + Naive UI,后端基于 Go 语言,使用 WebSocket 协议。支持 Docker + Nginx 快速部署,适合私有化环境。功能包括文本、图片、文件消息,内置笔记、群聊及消息历史记录。界面美观、功能完善,适用于企业沟通、团队协作及开发者学习。提供前后端源码,便于快速搭建 IM 系统。
开源IM即时通讯系统调研
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
RainbowChat是一套基于开源IM即时通讯聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题。RainbowChat可能是市面上提供im即时通讯聊天源码的,唯一一款同时支持TCP、UDP两种通信协议的IM产品。与姊妹产品RainbowTalk和RainbowChat-Web 技术同源,历经考验。
624 0
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
|
9月前
|
存储 前端开发 数据可视化
ThinkPHP在线客服系统源码_可视化开源在线网页客服聊天系统源码uniapp
本文详解在线客服系统源码构建,涵盖系统架构、技术选型、代码实现与功能特性,为开发者和企业提供参考。
|
9月前
|
JSON 安全 数据挖掘
全开源在线客服系统源码搭建指南|uniapp网页在线客服系统源码PHP
随着互联网发展,在线客服系统成为企业提升服务效率、优化用户体验的重要工具。通过开源客服系统源码,企业可节省开发成本,快速部署高效客服平台。本文介绍其功能、优势及开发应用,助力企业智能化转型。
|
10月前
|
前端开发 搜索推荐 NoSQL
错过就亏大了!这款开源 IM 项目,功能强大、部署简单,适合私有化部署,开发者必收藏!
Lumen IM 是一个基于 Vue3 + Naive UI 前端与 Go 后端的开源即时通讯系统,支持私聊、群聊、文件传输、消息撤回等功能,适用于企业内部沟通及开发者学习。项目采用 WebSocket 实现即时消息推送,技术栈包括 MySQL、Redis 和 Minio 等,确保高效稳定运行。界面简约美观,操作便捷,并支持笔记功能和个性化设置。无论是企业使用还是二次开发,Lumen IM 都是一个优质选择
745 0
|
7月前
|
网络协议 NoSQL API
转转客服IM系统的WebSocket集群架构设计和部署方案
客服IM系统是转转自研的在线客服系统,是用户和转转客服沟通的重要工具,主要包括机器人客服、人工客服、会话分配、技能组管理等功能。在这套系统中,我们使用了很多开源框架和中间件,今天讲一下客服IM系统中WebSocket集群的的实践和应用。
579 141
|
9月前
|
前端开发 JavaScript Java
智能客服系统的技术栈解析-唯一客服系统技术架构优势
“唯一客服系统”采用 Vue.js 2.x + ElementUI 构建前端,实现响应式界面,支持多端适配;后端基于 Golang + Gin + GORM,具备高性能与高并发处理能力。系统支持私有化部署,提供灵活定制、AI 扩展能力,技术栈简洁易维护,兼顾开发者友好与企业级应用需求。
373 1
|
9月前
|
测试技术 Go
客服系统程序入口文件解析-唯一客服系统源码开发
该代码为 Go 语言编写的客服系统命令行程序入口,结构清晰,使用 cmd 包启动业务逻辑,可能基于 cobra 框架实现,具备良好可扩展性与可维护性,适用于服务启动与管理。
308 69