OpenIM （Open-Source Instant Messaging） Mac Deployment Guide
Tags: opensource, chatgpt, im
Published: 2024-01-26 06:11:29

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


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j92w8ifcetqm158066us.jpg)