This guide provides step-by-step instructions for deploying OpenIM on a Mac, including both source code and Docker deployment methods.

## Preliminary Environment Setup

Ensure a clean working environment:

1. **Create a New Directory**: Start in a new directory to prevent conflicts.
2. **Check for Conflicting Processes**: Run these commands:
- `ps -ef | grep openim`
- `ps -ef | grep chat`
3. **Check Docker Containers**: Use `docker ps` to confirm no related containers are running.

## Source Code Deployment

### Deploying openim-server

Deploying from source requires adjusting Docker's network configurations for Mac.

1. **Clone and Prepare the Repository**:
```jsx
git clone https://github.com/openimsdk/open-im-server
cd open-im-server
export OPENIM_IP="[Your External/Internal IP]"
make init
```

2. **Configure Kafka in `docker-compose.yml`**:
- Replace:
```jsx
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://${DOCKER_BRIDGE_GATEWAY:-172.28.0.1}:${KAFKA_PORT:-19094}
```
- With:
```jsx
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://127.0.0.1:${KAFKA_PORT:-19094}
```

3. **Start the Service**:
```jsx
docker compose up -d
```

4. **Final Configurations**:
```jsx
vim config/config.yaml -c "%s/172\.28\.0\.1/127.0.0.1/g" -c "wq"
```

5. **Launch openim-server**:
```jsx
make start
```

6. **Verification**:
```jsx
make check
```
Wait five minutes before checking to ensure accuracy.

### Deploying openim-chat

Deploy openim-chat using source code or Docker.

1. **Return to Parent Directory**:
```jsx
cd ..
```

2. **Deploy from Source**:
```jsx
git clone https://github.com/openimsdk/chat
cd chat
make init
```

3. **Set Up MySQL** (if not already deployed):
```jsx
docker run -d \
--name mysql \
-p 13306:3306 \
-p 23306:33060 \
-v "$(pwd)/components/mysql/data:/var/lib/mysql" \
-v "/etc/localtime:/etc/localtime" \
-e MYSQL_ROOT_PASSWORD="openIM123" \
--restart always \
mariadb:10.6
```

4. **Configure openim-chat**:
Modify `config/config.yaml`, replacing `172.28.0.1` with `127.0.0.1`.

5. **Start openim-chat**:
```jsx
make start
```

6. **Verification**:
```jsx
make check
```

7. **Web Interface Access**:
Visit [http://127.0.0.1:11001](http://127.0.0.1:11001). For validation, see [this guide](https://docs.openim.io/guides/gettingStarted/quickTestServer).

## Docker Deployment

For Docker deployment on Mac, refer to [OpenIM Docker Documentation](https://docs.openim.io/zh-Hans/guides/gettingStarted/dockerCompose).

## About OpenIM

OpenIM is an open-source instant messaging component and solution that specializes in in-app communication. It is one of the most popular open-source IM projects currently. Developers can integrate the OpenIM component and deploy the server privately, quickly incorporating instant and real-time communication capabilities into their applications, ensuring the security and confidentiality of business data.

Repository address: https://github.com/openimsdk

Developer Documentation: https://docs.openim.io/guides/introduction

OpenIM (Open-Source Instant Messaging) Mac Deployment Guide的更多相关文章

  1. [ETL] Flume 理论与demo(Taildir Source & Hdfs Sink)

    一.Flume简介 1. Flume概述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据: ...

  2. 我的常用笔记(GetAndroid,ADBDemo,GetSJ,GetTB)

    一.授权相关格式(GetAndroid,ADBDemo,GetTB,GetSJ) [Mac]ID=0,     Mac=9918D2A363,    EndTime=2018-12-30 15:45: ...

  3. 在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  4. 一个映射到mac风格按键的AHK脚本(替换虚拟机键盘映射)

    Mac键位映射(部分) win+q 退出程序 win+w 关闭当前页面 win+h 隐藏当前窗口 win+shift+h 隐藏其他窗口 win+s 保存 win+o 打开 win+z 撤销 win+s ...

  5. 开源网络准入系统(open source Network Access Control system)

    开源网络准入系统(open source Network Access Control system) http://blog.csdn.net/achejq/article/details/5108 ...

  6. (转)Mac OS X中配置Apache

    我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境. 启动Apache 设置虚拟主机 启动Apache 打开“终端(terminal)”,输入 sudo apachectl -v ...

  7. 使用GCM服务(Google Cloud Messaging)实现Android消息推送

    最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...

  8. iOS、mac开源项目及库(感谢原作者的分享)

    目录 模糊效果 富文本 表相关 HUD与Toast 其他UI 其他动画 网络测试 网络聊天 Model 数据库 PDF 摄像照相视频音频处理 消息相关 消息推送服务器端 版本新API的Demo 测试及 ...

  9. 与众不同 windows phone (33) - Communication(通信)之源特定组播 SSM(Source Specific Multicast)

    原文:与众不同 windows phone (33) - Communication(通信)之源特定组播 SSM(Source Specific Multicast) [索引页][源码下载] 与众不同 ...

  10. 与众不同 windows phone (32) - Communication(通信)之任意源组播 ASM(Any Source Multicast)

    原文:与众不同 windows phone (32) - Communication(通信)之任意源组播 ASM(Any Source Multicast) [索引页][源码下载] 与众不同 wind ...

随机推荐

  1. Windows线程开发

    Windows线程开发 1.线程基础 Windows线程是可以执行的代码实例.系统十一线程为单位调度程序.一个程序当中可以有多个线程,实现多个任务的处理. Windows线程的特点: 线程都具有1个I ...

  2. 【C++库函数】stringstream-类型转换&&字符分割

    继续填坑٩(•̤̀ᵕ•̤́๑),这次是 stringstream的内容,最初是看到它可以把字符串直接输出成int类型,惊了,但是一直不是很懂.在网上查了很多资料,才终于差不多理解.stringstre ...

  3. 云原生体系下 Serverless 弹性探索与实践

    Serverless 时代的来临 Serverless 顾名思义,是一种"无服务器"架构,因为屏蔽了服务器的各种运维复杂度,让开发人员可以将更多精力用于业务逻辑设计与实现.在 Se ...

  4. 接口自动化复习第四天利用正则和faker提取替换变量值

    在做接口自动化测试的时候,我们经常会遇到,有些字段利用随机生成数据就行了,不需要自己去构造测试数据.今天我就是要python中的第三方库faker来构造随机数,其次使用正则表达式来提取变量. 首先在接 ...

  5. @JsonIgnore 失效没起作用及 @JSONField(serialize = false)

    项目中需要对接口返回的某一个字段进行屏蔽,返回给前端响应的时候,不显示某个字段. 第一时间想到在实体类屏蔽的属性字段上添加@JsonIgnore注解,但添加之后并没有起作用. 在网上搜索了下,使用 @ ...

  6. 一个轻量快速的C++日志库

    limlog 作一篇文章记录实现,驱动优化迭代. 代码仓库 用法 实现 后端实现 前端实现 日期时间的处理 线程id的获取 日志行的其他项处理 优化 整形字符串格式化优化 测试 benchmark 性 ...

  7. [转帖]在Linux中切换cmake版本

    在Linux中切换cmake版本https://blog.whsir.com/post-6804.html   在Linux系统中,有时需要使用cmake进行程序编译,由于不同的Linux系统导致安装 ...

  8. [转帖]【我和CloudQuery 的故事】安装部署CloudQuery 初体验—-前篇

    https://www.modb.pro/db/1694256553947910144 一.前言 在日常数据库运维中,为连接多种数据库,经常要安装不同的客户端,非常繁琐,且占用大量存储空间.如果能有一 ...

  9. [转帖]prometheus和node_exporter中的磁盘监控

    https://www.ipcpu.com/2021/04/prometheus-node_exporter/ prometheus和node_exporter中的磁盘监控.md 对于磁盘问题,我们主 ...

  10. 关于decimal非常浅显的学习与整理

    关于decimal非常浅显的学习与整理 背景知识 整数,小数,浮点,定点 整数(Integer)是没有小数部分的数值,可以是正数.负数或零.在计算机中,整数通常以二进制形式存储. 小数(Decimal ...