IM开源项目OpenIM部署文档-从准备工作到nginx配置

OpenIM离线docker部署及应用 介绍OpenIM:由前微信技术专家打造的基于 Go 实现的即时通讯(IM)开源项目,包括IM服务端和客户端SDK。开发者私有化部署,基于SDK二次开发,可以轻松替代第三方IM云服务,打造具备聊天、社交功能的app。无论是开发同城交友、企业办公亦或是当今最热门的元宇宙,还是在应用中集成IM功能,都非常便捷。OpenIM代码100%开源,开源协议Apache-2.0 License任何企业和个人都可以免费使用(包括商用)。请各位看官多多支持,转发和宣传,助力OpenIM成为开源IM的No1。 阅读详情
AI摘要

本文档详细介绍了OpenIM的部署过程,包括Linux环境准备、组件安装、源码编译、配置修改、服务启动和nginx配置。涉及的组件有ETCD、MySQL、MongoDB、Redis、Kafka、MinIO等,同时提到了域名、SSL证书、推送服务、手机验证码服务的准备。完成部署后,需开放相应端口并进行访问路由设置。

IM开源项目OpenIM部署文档-从准备工作到nginx配置

2022-11-14 22:27·OpenIM

一、准备工作

运行环境

linux系统即可, Ubuntu 7.5.0-3ubuntu1~18.04最优

图片视频文件存储

支持cos/MinIO

https/wss协议

1. 需申请域名或者子域名(web im端登录注册及im 服务端使用)建议:web.xx.xx 2. 若使用MinIO作为对象存储,建议:storage.xx.xx 3. 管理后台子域名,建议:admin.xx.xx 4. 部署nginx,并配置证书。

离线推送(app被杀死或未启动时推送)

国内申请申请厂商通道以及个推,建议提前申请;海外申请firebase;

苹果开发者账号

如需打包、上架,请自行申请账号

手机验证码服务

请自行申请阿里云,建议提前申请

消息加密存储

需购买消息加密插件

组织架构

需购买组织架构模块

机器资源

如果用户量小于10万,可用单机部署,8C 16G 5Mb 1T普通磁盘即可

logo

1024 x 1024png

软著

如需上架国内市场,提前准备软著

管理后台

需购买

二、docker-compose一键部署

先准备
go/git/docker/docker-compose,具体参考:https://doc.rentsoft.cn/#/component/docker

单机环境下的组件部署,可以通过docker-compose一键部署,先选择某个大磁盘目录,然后依次输入如下命令:

git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive;

进入项目后

1.修改.env

USER=root #不用修改
PASSWORD=openIM123  #建议修改复杂密码 不能包括 @#之类特殊符号 且至少要8位
ENDPOINT=http://127.0.0.1:10005 #使用minio发图片视频文件需要填写 外网ip:port或者用域名
DATA_DIR=./  #指定大磁盘目录

2.初始化部署

chmod +x install_im_server.sh
./install_im_server.sh

具体组件包括:

  1. ETCD 2. MySQL 3. MongoDB 4. Redis 5. Kafka 6. Minio(注:如果使用三方云服务器存储媒体文件可不搭建)

3.修改配置

如果已经执行过install_im_server.sh,则config/usualConfig.yaml根据.env的配置已经修改完成了,且组件也安装完毕,则根据需求修改如下字段

tokenpolicy:
  accessSecret: "open_im_server" #token生成相关 建议修改
  accessExpire: 90 #token过期时间(天) 默认即可

messageverify:
  friendVerify: false #发送消息是否验证好友关系 false表示不验证好友关系

push:
  getui:
    pushUrl: "https://restapi.getui.com/v2/$appId"
    masterSecret: ""  #需添加
    appKey: ""  #需添加
    enable: false  #true启动个推推送

可能存在的问题:如果非首次安装,可能env密码不能生效,如果数据不重要,先docker-compose down ; rm components -rf再执行以上步骤,需要注意的是app需要重新安装。

4.重启

docker-compose down; docker-compose up -d;

三、开源版Open-IM-Server 源码编译

  1. 安装Go环境。确保Go版本至少为1.15。
  2. 下载源码到服务器
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive
cd cmd/Open-IM-SDK-Core
  1. 设置脚本权限
cd ../../script/
chmod +x *.sh
  1. 编译源码
./batch_build_all_service.sh

出现all services build success表示编译成功

四、Open-IM-Server修改配置&启动服务

  1. 修改配置

如果组件未自行安装,则先执行(二)的1-3步骤、如果要修改ip port等非常用信息,需要在config.yaml中修改。

  1. 启动服务
cd script
./start_all.sh 
  1. 检查服务
./check_all.sh
  1. 启动服务
./start_all.sh
  1. 检查服务
# 出现all services launch success表示服务启动成功 
./check_all.sh

(二)和(四)操作完成后,实际上完成了混合部署模式,即docker部署组件,IM源码部署。

五、nginx配置参考

用业务申请的
web.xx.xx/storage.xx.xx/admin.xx.xx分别替换open-im-ng-example.conf中web.rentsoft.cn /storage.rentsoft.cn/admin.rentsoft.cn三个域名及对应的证书

upstream im_msg_gateway{
            server 127.0.0.1:10001;        #IM消息服务器地址 根据部署情况可指定多台
            }
upstream im_api{
            server 127.0.0.1:10002;        #IM群组用户api服务器地址 根据部署情况可指定多台
            }
upstream im_jssdk_gateway{
            server 127.0.0.1:10003;        #IM jssdk服务器地址 根据部署情况可指定多台
            }
upstream im_demo{
            server 127.0.0.1:10004;        #IM demo登录注册服务器地址 根据部署情况可指定多台
            }
upstream storage {
            server 127.0.0.1:10005;                #MinIO服务器地址 暂时支持1台
            }
upstream im_admin{
            server 127.0.0.1:10006;        #IM admin服务器地址 根据部署情况可指定多台
            }
upstream im_grafana{
            server 127.0.0.1:10007;        #IM 统计服务器地址 docker-compose启动所在机器
            }
upstream im_chat{
            server 127.0.0.1:10008;        #IM 商业版登录注册服务器地址 根据部署情况可指定多台
            }
upstream im_complete_admin{
            server 127.0.0.1:10009;         #IM 商业版admin地址 根据部署情况可指定多台
            }
upstream im_organization{
            server 127.0.0.1:10010;        #IM 商业版组织架构服务器地址 根据部署情况可指定多台
            }
upstream im_open_rtc{
            server 127.0.0.1:7880;        #rtc 音视频通话 服务器地址 根据部署情况可指定多台
            }

server {
        listen 443;
        server_name web.rentsoft.cn;   #1 web im 端 域名

        ssl on;
        ssl_certificate /etc/nginx/conf.d/ssl/web.rentsoft.cn.crt; #2 证书
        ssl_certificate_key /etc/nginx/conf.d/ssl/web.rentsoft.cn.key; #3 证书
        ssl_session_timeout 5m;
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 16k;
        gzip_comp_level 2;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/wasm;
        gzip_vary off;
        gzip_disable "MSIE [1-6]\.";
        error_page 405 =200 $uri;

    default_type application/wasm;
        location /{ #web demo
                proxy_set_header Host $host;
                proxy_set_header X-Real-Ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-NginX-Proxy true;
                root /data1/online/Pc-Web-Demo/build/; # web im静态资源存放路径
                index index.html;
                try_files $uri $uri/ /index.html;
        }
        location /msg_gateway { #10001 ws
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_msg_gateway/;
        }
        location ^~/api/ { #10002 api
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_api/;
               }
        location /jssdk_gateway { #10003 jssdk
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_jssdk_gateway/;
               }
        location ^~/demo/ { # 10004 demo
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_demo/;
               }
        location ^~/admin/ { #10006 admin
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_admin/;
               }
        location ^~/grafana/ { #10007  prometheus
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_grafana/;
               }
        location ^~/chat/ { #10008 chat login
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_chat/;
               }
        location ^~/complete_admin/ { #10009  admin
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_complete_admin/;
               }
        location ^~/organization/ { #10010 organization
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_organization/;
               }
        location ^~/open_rtc/ {  #7880 rtc
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://im_open_rtc/;
              }
}

server {
        listen 80;
        server_name web.rentsoft.cn ; #1 web im 端 域名
        rewrite ^(.*)$ https://${server_name}$1 permanent;
}

server {
        ssl_session_timeout 5m;
    listen 443;
        server_name storage.rentsoft.cn; #1 MinIO存储域名
        ssl on;
        ssl_certificate /etc/nginx/conf.d/ssl/storage.rentsoft.cn.crt; #证书
        ssl_certificate_key /etc/nginx/conf.d/ssl/storage.rentsoft.cn.key;    #证书
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 16k;
        gzip_comp_level 2;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        gzip_vary off;
        gzip_disable "MSIE [1-6]\.";
    location / {
            proxy_pass http://storage;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $http_host;
            proxy_http_version 1.1;
            client_max_body_size 8000M;
    }
}


server {
        listen 443;
        server_name admin.rentsoft.cn; #后台管理域名
        ssl on;
        ssl_certificate /etc/nginx/conf.d/ssl/admin.rentsoft.cn.crt; # 证书
        ssl_certificate_key /etc/nginx/conf.d/ssl/admin.rentsoft.cn.key; #证书
        ssl_session_timeout 5m;
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 16k;
        gzip_comp_level 2;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        gzip_vary off;
        gzip_disable "MSIE [1-6]\.";
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-Ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-NginX-Proxy true;
                root /data1/online/Open-IM-Admin/dist/; #管理后台web静态资源存放路径
                index index.html;
                try_files $uri $uri/ /index.html;
        }
}

server {
        listen 80;
        server_name admin.rentsoft.cn; #管理后台 域名
        rewrite ^(.*)$ https://${server_name}$1 permanent;
}

六、端口开放及访问路由

IM

如果按照(七)做了nginx配置,仅开放443和80端口即可。

IM端口

说明

访问说明

对应关系

TCP:10001

IM ws消息

在域名和路由之间增加msg_gateway

wss://test.xx.xx/msg_gateway->ws://ip:10001

TCP:10002

IM api

在域名和路由之间增加api

https://test.xx.xx/api->http://ip:10002

TCP:10003

ws端口 jssdk的专用

在域名和路由之间增加jssdk_gateway

wss://test.xx.xx/jssdk_gateway->ws://ip:10003

TCP:10004

demo注册登录

在域名和路由之间增加demo

https://test.xx.xx/demo->http://ip:10004

TCP:10005

minio存储时

TCP:10006

IM 后台管理

在域名和路由之间增加admin

https://test.xx.xx/admin->http://ip:10006

TCP:10007

数据统计

TCP:10008

商业版业务

在域名和路由之间增加chat

https://test.xx.xx/chat->http://ip:10008

TCP:10009

商业版管理后台

在域名和路由之间增加complete_admin

https://test.xx.xx/complete_admin->http://ip:10009

TCP:10010

商业版组织架构

在域名和路由之间增加organization

https://test.xx.xx/organization->http://ip:10006

音视频通话

RTC端口

说明

操作

TCP: 7881

音视频通话

直接开通端口,不走nginx反向代理

UDP: 7882

音视频通话

直接开通端口,不走nginx反向代理

关于OpenIM

OpenIM是由IM技术专家打造开源即时通讯组件,也是目前最受欢迎的开源IM项目之一,开发者通过集成OpenIM组件,并私有化部署服务端,可以将即时通讯、实时通讯能力快速集成到自身应用中,并确保业务数据的安全性和私密性。github社区活跃,star近万,排名遥遥领先,开发者万人,OpenM力争开源IM项目No1,打造开源IM第一社区。OpenIM是也是目前非常受欢迎的开源IM项目,广泛用于政企协同办公场景。

 

github地址:
https://github.com/OpenIMSDK/Open-IM-Server

开发者中心:https://doc.rentsoft.cn/#/

平台支持:Android iOS Uniapp Flutter Electron Web reactNative等几乎所有平台

web端基于wasm的sdk即将发布

pc支持信创环境:银河麒麟 UOS等;

群组支持:十万群成员的超级大群

安卓基于自启动-保活机制,确保消息实时触达;

Open-IM源码部署 阅读详情

相关推荐

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

由于OpenIM依赖的组件较多,开发者需求不一,导致OpenIM部署一直被人诟病,经过几次迭代优化,包括依赖的组件compose的一键部署,环境变量设置一次,全局生效,以及脚本重构,目前OpenIM部署比较丝滑,特写文章分享给大家。OpenIM是什么OpenIM不是一个独立的聊天产品,它不像telegram、Signal、rocket.chat那样是一个完全独立、可以直接安装使用的聊天应用程序。而是一个开源的即时通讯解决方案,为开发者提供了一系列的工具和服务,以便于他们在自己的应用程序中集成即时通讯功能。

OpenIM的博客 5375

时不我待,拥抱趋势,开源IM项目OpenIM技术简介

同时,它还提供了完整的管理后台,帮助管理员监控和管理用户、群组、消息、通知等内容。OpenIM支持iOS和Android原生开发,并且也提供了Flutter、uniapp、React Native等跨平台开发框架的SDK,开发者可以根据自己的需求选择不同的开发方式。作为一款开源的IM项目,OpenIM提供了丰富的功能和完善的技术支持,吸引了众多开发者的关注和使用。对于iOS和Android原生开发,OpenIM提供了针对各个平台的SDK和相应的开发文档,开发者可以根据文档指引完成相应的集成和开发工作。

OpenIM的博客 6371

【原创】开源OpenIM:轻量、高效、实时、可靠、低成本的消息模型

【原创】开源OpenIM:轻量、高效、实时、可靠、低成本的消息模型 1、内容概述 一套完整IM系统中,除开基本的业务设计,消息模型的设计是其中最为关键的一环,它关系到整个IM系统的可靠性、高效性、稳定性,因此需要设计一套合理的消息传递收发机制以承载IM的各种需求,OpenIM结合具体的业务场景,提炼出IM后端的重要接口,并经过反复推敲,验证,设计出了自己的一套通信协议OMTP,协议中每个字段尽量的减少冗余,使其精简高效、最大限度的满足现有的业务需求并能够支持业务的水平拓展,同时为了达到消息的实时可靠与高效,

programor_guo的博客 1986

windows10部署OpenIM,及踩坑记录

windows10部署运行OpenIM

running17的博客 8193

【项目实战】开源的即时通讯组件OpenIM入门介绍

IM,是即时通讯(Instant Messaging,简称 IM)OpenIM,是一个开源的、强大的即时通讯组件。OpenIM,提供了完整的即时通讯服务功能。OpenIM,被设计为高并发、高可用、易于扩展的架构。OpenIM,适合构建企业级的即时通讯平台。OpenIM,由一群热爱开源技术的开发者创建。OpenIM,旨在提供一个高性能、稳定、易用的即时通讯解决方案。OpenIM,是由IM技术专家打造的开源的即时通讯组件。

奶爸的编程之路,也就一周冷个三天 3484

【数据分析生命周期全揭秘】从零开始打造你的数据科学项目 | 最全指南

在当今数据驱动的世界中,数据科学正在颠覆传统行业,成为企业决策和价值创造的重要引擎。然而,如何科学、系统地开展一个数据分析项目?这是很多人关心的核心问题。本篇文章基于经典数据分析课程内容,深入解读数据分析生命周期的每个阶段,让你快速掌握从“发现问题”到“落地应用”的完整流程。如果你正在学习或准备从事数据分析领域,这篇文章一定会对你大有帮助!数据分析生命周期的六大阶段数据分析生命周期的六个阶段相辅相成,每个阶段都至关重要:发现问题:明确需求,提出假设。数据准备:清洗、转换和可视化数据。

AI手套的博客 1739

OpenIM 端到端(E2E)测试套件实战指南:基于 Ginkgo 的全链路质量保障体系

OpenIM 作为一套完整的即时通讯(IM)平台,其质量保障离不开端到端(End-to-End, E2E)测试:在真实部署环境中模拟用户行为,验证 API、聊天服务、Web 前端、RPC 组件以及不同负载下的性能与扩展性。本指南以仓库 [test/e2e/README.md](https://link.gitcode.com/i/9479ae5c8ab3fdd79b58525ab242d152)

gitblog_01163的博客 368

emir分析RC corner如何选择

power analysis阶段 RC corner的选择

weixin_61954252的博客 3592

Mailu Docker Compose 部署前置要求:硬件、网络、系统与 Docker 环境准备完整指南

Mailu 是一套以 Docker 镜像形式交付的"insular"邮件分发系统,其 Compose flavor 将 nginx(前端)、dovecot(IMAP)、postfix(SMTP)、rspamd(反垃圾)、clamav(反病毒)、admin(管理面板)等组件编排为多个容器。本文基于 [docs/compose/requirements.rst](https://link.gitcod

gitblog_00107的博客 691

开源网格划分软件-Gmsh二次开发教程 (4)网格生成与控制​

​本章将深入讲解Gmsh的网格生成技术,包括全局/局部网格控制、边界层生成、自适应细化等,并提供完整的代码示例。

ZQGG的博客 1473

.NET适配HarmonyOS进展 1. 前言

目前国产化系统浪潮下,适配鸿蒙是中国软件大势所趋,.NET作为最适合开发客户端语言之一,适配鸿蒙系统(HarmonyOS Next)是目前.NET开发者最关心的事情。我目前业余时间正在移植Avalonia到HarmonyOS,去年在.NET Conf CN上分享过,目前又取得一点进展,所以本文把所有问题进行整合与大家进行分享。

2301_76476890的博客 1461

AI Short(ChatGPT-Shortcut)自部署完整指南:标准部署、离线内网版与 Docker 落地实践

本篇基于仓库中的部署总纲 [deploy.md](https://link.gitcode.com/i/4a158e3fbaad9edfd6c7f403220f0df9) 及其引用的四篇子文档([标准部署](https://link.gitcode.com/i/51911bca5d21f281fe54e8e7b4b34a15)、[离线部署](https://link.gitcode.com/i/9

gitblog_00991的博客 496

山东大学软件学院计算机组成原理课程设计实验三

文章目录一、实验时间二、实验内容1. 实验目的2. 设计要求3. 实验基本思路三、电路图1. 可预置初值的模256异步计数器2. 8位ALU电路3. 总图四、补充 一、实验时间 第三次实验:2021年4月8日星期四,第六周 第一次部件级实验,开始算分 二、实验内容 微程序控制的运算器设计 1. 实验目的 (1)熟悉简单运算器的结构 (2)熟悉微命令的产生和时序 (3)熟悉运算器功能测试。 2. 设计要求 利用之前设计的具有超前进位功能的8位ALU,实现简单算术或逻辑运算 两操作数由八位寄存器R0、R1提供,

叶卡捷琳堡的博客 1万+

聊天、会议、多媒体一体化:多平台支持的即时通讯系统 | 开源日报 No.44

用 Docker Compose 拉起 Open-IM-Server 开源即时通讯服务,配好 config.toml 即可验证多端登录、会议房间与文件传输。鉴权统一走 TaoToken 网关,官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 提供 Key 管理与请求转发,省去多服务切换凭证。

Ceshi01的博客 11

避开爬虫坑:手把手教你合法获取百度地图POI边界数据(以学校为例)

本文详细介绍了如何合规获取百度地图POI边界数据的方法论,特别以学校为例。通过解析POI数据结构、合法使用百度地图API接口、优化请求策略以及数据处理技巧,帮助开发者和研究者在遵守平台规则的前提下高效获取地理信息。适用于学术研究、商业分析等多种场景,确保数据采集的合法性与准确性。

weixin_28683065的博客 394

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

OpenClaw实战:为OpenIMSDK构建消息可靠投递与全链路追踪系统

在即时通讯(IM)系统中,消息的可靠投递是保障通信质量的核心基础。其原理在于通过一套端到端的确认机制,确保消息从发送方到接收方的完整传递,并精确记录每个环节的状态。这项技术的核心价值在于将“尽力而为”的网络通信提升为“状态可知、过程可溯”的可靠服务,对于金融交易确认、物流状态推送、法律通知等对消息送达有严格要求的应用场景至关重要。本文聚焦于如何为广泛使用的开源IM组件OpenIMSDK增强这一能力,通过集成其官方插件OpenClaw,实现消息的智能拦截、状态上报与全链路追踪。OpenClaw作为一个可观测性

weixin_34292402的博客 392

10、利用智能合约实现公平的私有集合交集

本文探讨了利用智能合约实现公平的私有集合交集(PSI)的多种协议,重点分析了协议 Π 和 Π∗ 的气体成本与性能特点。同时对比了包括 Justitia 和 Anesidora 在内的现有方案,突出了仅使用智能合约实现硬币补偿公平性的优势。文中还介绍了相关密码学基础、安全模型及隐私保障机制,为在不同应用场景下选择高效、安全的 PSI 协议提供了理论支持和实践指导。

linux的博客 95

紧跟潮流,抓住趋势,跟上全民AI的节奏,开源IM项目OpenIM产品介绍,为AIGC贡献力量

高度自主、安全可控、开放自由,私有化部署,一切皆可控透明度和可信度:开源软件的源代码是公开的,任何人都可以查看和检查代码,从而增强了软件的透明度和可信度。用户可以了解软件的内部结构和运作方式,发现和修复潜在的安全漏洞和错误。自由度和可定制性:开源软件允许用户自由地使用、复制、分发和修改软件代码。用户可以根据自己的需求和要求对软件进行自定义和定制,满足不同的业务需求。开放创新和协作:开源软件的源代码公开,鼓励开发者和用户之间的交流、合作和创新。

OpenIM的博客 2184

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)

背景OpenIM包含多个关键组件,每个都是系统功能必不可少的一部分。具体来说,MongoDB 用于持久化存储;Redis 用作缓存;Kafka 用于消息队列;Zookeeper 用于服务发现;Minio 用于对象存储。这些组件的众多可能会增加部署的复杂性。此外,系统包含多个微服务模块,这要求有效管理进程的启动、停止和监控。为了简化这一过程,我们放弃了传统脚本,转而采用了 mage 这一跨平台方案,兼容所有主流平台和 CPU 架构。本文将详细介绍整个源码部署过程。OpenIM整体架构。

OpenIM的博客 3558

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

openIM本地搭建遇到的问题

官方文档里有快速部署和源码部署,快速部署就是使用docker-compose一键部署,当然这个需要了解一些这方面的知识,源码部署就需要自己手动安装需要的组件,kafka,mysql,MongoDB,etcd,redis。在日志里一直在报这个错误,可以看出来是kafka的问题,我没有用过kafka,所以不是很熟悉,第一时间肯定想到去百度,相关的博客有很多,跟着弄了,但是都不能解决,最后还是在官方的技术交流群里一位大佬的提示下,想到了单独启动kafka看看有什么报错信息。

Liuxw666666的博客 2563

一款牛逼的开源IM系统部署指南 来自官方

TS_ADMINPWD: 唐僧叨叨后台管理系统的管理员密码,用户名为 superAdmin,可随机填写(至少8位)MINIO_ROOT_PASSWORD: minio 文件服务的密码,可随机填写(至少8位)MYSQL_ROOT_PASSWORD: mysql数据库的root用户密码,可随机填写。WK_JWT_SECRET:JWT的密钥,随机填写即可,为了安全建议修改。EXTERNAL_IP:服务器的对外IP地址。所有配置都支持转换成环境变量,然后配置在。首先,添加用户,添加后才可以聊天。

好好学电脑 2870

基于Docker安装OpenIM

下载安装包 https://dl.google.com/go/go1.21.4.linux-amd64.tar.gz。docker compose up -d 表示以后台运行的方式启动docker。这样安装的版本有点低,但是能用。

驰骋天下 1596

# 靠谱:开源IM项目OpenIM压测程序介绍-自己动手压测性能和稳定性

# 靠谱:开源IM项目OpenIM压测程序介绍-自己动手压测性能和稳定性

OpenIM的博客 2466

收藏-即时通讯(IM)开源项目OpenIM-功能手册

收藏-即时通讯(IM)开源项目OpenIM-功能手册

OpenIM的博客 7472

「IM开源推荐」前微信技术专家打造,golang实现,一键部署,客户端SDK全平台支持,轻松替代IM云服务

背景 OpenIM成立之初就将“开源”作为核心战略来推进,开源充分体现了自由、平等、分享的互联网精神。 全球范围频繁发生的数据泄露、勒索病毒、隐私滥用等安全事件一次次给企业敲响警钟,企业管理者对数据资产的价值、数据安全的重要性有了更清晰的认识,数据安全成就企业核心价值。 IM作为核心业务数据,安全的重要性毋庸置疑,OpenIM开源以及私有化部署让企业能更放心使用。 如今IM云服务商收费高企,如何让企业低成本、安全、可靠接入IM服务,是OpenIM的历史使命,也是我们前进的方向。 优势 OpenIM:由前微信

OpenIM的博客 2450
上一篇: OpenIM集群(非k8s)部署文档
下一篇: 【无标题】好消息 突破:IM开源项目OpenIM采用wasm技术实现jssdk
OpenIM
博客等级 码龄5年 295粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值