To optimize and add logic to your instructions, particularly regarding deploying on a Mac, you can modify them as follows:
`Devcontainers` provide a Docker-based isolated development environment.
1. **Fork the OpenIM Repository**: Fork the OpenIM repository on GitHub to your account.
Read [README.md](https://github.com/openimsdk/open-im-server/tree/main/.devcontainer) in the `.devcontainer` directory of the project to learn more about the devcontainer.
2. **Clone Your Fork to Your Local Machine**:
To set it up:
Open your terminal and execute the following commands:
```sh
1. Install Docker Desktop for Mac from [Docker Hub](https://docs.docker.com/desktop/install/mac-install/).
# Clone the repository
2. Install Visual Studio Code and the Remote - Containers extension.
4. VS Code will prompt to reopen the project in a container. Accept this to set up the environment automatically.
# Set Docker bridging network mode for Mac
### Installing Go and Dependencies
export DOCKER_BRIDGE_SUBNET=127.0.0.0/16
# Set OpenIM IP
Use Homebrew to install Go:
export OPENIM_IP=<your-ip>
# Initialize configuration
```sh
make init
brew install go
```
# Start components using Docker
Ensure the version of Go is compatible with the version required by OpenIM (refer to the main documentation for version requirements).
docker compose up -d
# Start OpenIM Server
### Additional Tools
make start
```
3. **Additional Steps for Mac Deployment**:
Install other required tools like Docker, Vagrant, and necessary GNU utils as described in the main documentation.
If you are deploying on a Mac and wish to use the chat feature, you need to modify the `docker-compose` file. Specifically, you'll need to uncomment the sections related to `openim-chat` and `mysql`.
Here's how to do it:
## Mac Deployment openim-chat and openim-server
- Open the `docker-compose.yml` file in a text editor.
To integrate the Chinese document into an English document for Linux deployment, we will first translate the content and then adapt it to suit the Linux environment. Here's how the translated and adapted content might look:
- Find the sections for `openim-chat` and `mysql`.
- Remove the comment marks (`#`) at the beginning of the lines in these sections to enable them.
- Save the file after making these changes.
4. **Update and Restart Services**:
### Ensure a Clean Environment
After modifying the `docker-compose` file, you need to update and restart the services to apply these changes. Run the following command in your terminal:
```sh
- It's recommended to execute in a new directory.
# Update and restart services
- Run `ps -ef | grep openim` to ensure no OpenIM processes are running.
docker compose up -d
- Run `ps -ef | grep chat` to check for absence of chat-related processes.
- Execute `docker ps` to verify there are no related containers running.
# Check openim-chat start
### Source Code Deployment
docker compose logs openim-chat
```
This command will re-read the `docker-compose.yml` file, apply the new configuration, and restart the necessary containers.
#### Deploying openim-server
Remember, replacing `<your-username>` and `<your-ip>` with your actual GitHub username and desired IP address for OpenIM is crucial. These steps should streamline the setup process, particularly for Mac users wishing to use the chat feature.
Source code deployment is slightly more complex because Docker's networking on Linux differs from Mac.
`Devcontainers` provide a Docker-based isolated development environment.
export OPENIM_IP="Your IP" # If it's a cloud server, setting might not be needed
make init # Generates configuration files
```
Read [README.md](https://github.com/openimsdk/open-im-server/tree/main/.devcontainer) in the `.devcontainer` directory of the project to learn more about the devcontainer.
Before deploying openim-server, modify the Kafka logic in the docker-compose.yml file. Replace:
Ensure the version of Go is compatible with the version required by OpenIM (refer to the main documentation for version requirements).
Before starting the openim-server source, set `config/config.yaml` by replacing all instances of `172.28.0.1` with `127.0.0.1`:
### Additional Tools
```bash
vim config/config.yaml -c "%s/172\.28\.0\.1/127.0.0.1/g" -c "wq"
```
Install other required tools like Docker, Vagrant, and necessary GNU utils as described in the main documentation.
Then start openim-server:
```bash
make start
```
To check the startup:
```bash
make check
```
<aside>
🚧 To avoid mishaps, it's best to wait five minutes before running `make check` again.
</aside>
#### Deploying openim-chat
There are several ways to deploy openim-chat, either by source code or using Docker.
Navigate back to the parent directory:
```bash
cd ..
```
First, let's look at deploying chat from source:
```bash
git clone https://github.com/openimsdk/chat
cd chat
make init # Generates configuration files
```
If openim-chat has not deployed MySQL, you will need to deploy it. Note that the official Docker Hub for MySQL does not support architectures like ARM, so you can use the newer version of the open-source edition: