chat
chat copied to clipboard
A business server that includes user registration and login, deployed together with Open-IM-Server, can be used to set up a chat product.
openim-chat
๐ License Options for OpenIM Source Code
You may use the OpenIM source code to create compiled versions not originally produced by OpenIM under one of the following two licensing options:
1. GNU General Public License v3.0 (GPLv3) ๐
- This option is governed by the Free Software Foundation's GPL v3.0.
- Usage is subject to certain exceptions as outlined in this policy.
2. Commercial License ๐ผ
- Obtain a commercial license by contacting OpenIM.
- For more details and licensing inquiries, please email ๐ง [email protected].
๐งฉ Awesome features
- This repository implement a business system, which consists of two parts: User related function and background management function
- The business system depends on the api of the im system (open-im-server repository) and implement various functions by calling the api of the im system
- User related part includes some regular functions like user login, user register, user info update, etc.
- Background management provides api for admin to manage the im system containing functions like user management, message mangement,group management,etc.
:busts_in_silhouette: Community
- ๐ฌ Follow our Twitter account
- ๐ซ Join our Reddit
- ๐ Join our Slack community
- :eyes: Join our wechat (ๅพฎไฟก็พค)
- ๐ OpenIM Community
- ๐ OpenIM Interest Group
๐ซ Quick start
Note: You can get started quickly with OpenIM Chat.
๐ฆ Installation
git clone https://github.com/openimsdk/chat openim-chat && export openim-chat=$(pwd)/openim-chat && cd $openim-chat && make
Developing chat
You can deploy OpenIM Chat in two ways, either from source (which requires openIM-server to be installed) or with docker compose
Here's how to deploy from source code:
If you wish to deploy chat, then you should first install and deploy OpenIM, this open-im-server repository
First, install openim-server in a new directory or location repository
git clone -b release-v3.5 https://github.com/OpenIMSDK/Open-IM-Server.git openim && export openim=$(pwd)/openim && cd $openim
sudo docker compose up -d
Setting configuration items:
make init
Then modify the configuration file
config/config.yaml
according to your needs Note: If you want to use the mysql database, you need to modify the mysql configuration item in the configuration file. If you want to use the mongo database, you need to modify the mongo configuration item in the configuration file
Then go back to the chat directory, Installing Chat
Starting MySQL:
Recent OpenIM versions have discontinued the MySQL component, necessitating a separate MySQL installation for chat deployment.
docker run -d \
--name mysql \
-p 13306:3306 \
-p 3306:33060 \
-v "$(pwd)/components/mysql/data:/var/lib/mysql" \
-v "/etc/localtime:/etc/localtime" \
-e MYSQL_ROOT_PASSWORD="openIM123" \
--restart always \
mysql:5.7
MySQL Compatibility Note:
The MySQL version 5.7 primarily supports the linux/amd64 architecture. Users operating on Mac or other architectures, or those with specific version requirements for MySQL, can opt for the latest version of the open-source MariaDB. MariaDB is compatible with MySQL and can be a suitable alternative.
docker run -d \
--name mysql \
-p 13306:3306 \
-p 3306:33060 \
-v "$(pwd)/components/mysql/data:/var/lib/mysql" \
-v "/etc/localtime:/etc/localtime" \
-e MYSQL_ROOT_PASSWORD="openIM123" \
--restart always \
mariadb:10.6
If you want to use a local or remote database, edit the config/config.yaml
section after the initial configuration
Install Chat:
$ make build
$ make start
$ make check
๐ซ Quick start
Note: You can get started quickly with chat.
๐ Run
Note: We need to run the backend server first
$ make build
# OR build Specifying binary
$ make build BINS=admin-api
# OR build multiarch
$ make build-multiarch
$ make build-multiarch BINS="admin-api"
# OR use scripts build source code
$ ./scripts/build_all.sh
๐ Contributors get up to speed
Be good at using Makefile, it can ensure the quality of your project.
Usage: make <TARGETS> ...
Targets:
all Build all the necessary targets. ๐๏ธ
build Build binaries by default. ๐ ๏ธ
go.build Build the binary file of the specified platform. ๐จโ๐ป
build-multiarch Build binaries for multiple platforms. ๐
tidy tidy go.mod ๐ฆ
style Code style -> fmt,vet,lint ๐จ
fmt Run go fmt against code. โจ
vet Run go vet against code. ๐
generate Run go generate against code and docs. โ
lint Run go lint against code. ๐
test Run unit test โ๏ธ
cover Run unit test with coverage. ๐งช
docker-build Build docker image with the manager. ๐ณ
docker-push Push docker image with the manager. ๐
docker-buildx-push Push docker image with the manager using buildx. ๐ข
copyright-verify Validate boilerplate headers for assign files. ๐
copyright-add Add the boilerplate headers for all files. ๐
swagger Generate swagger document. ๐
serve-swagger Serve swagger spec and docs. ๐
clean Clean all builds. ๐งน
help Show this help info. โน๏ธ
Note: It's highly recommended that you run
make all
before committing your code. ๐
$ make all
Chat Start
$ make start_all
# OR use scripts start
$ ./scripts/start-all.sh
Chat Detection
$ make check
# OR use scripts check
$ ./scripts/check-all.sh --print-screen
Chat Stop
$ make stop
# OR use scripts stop
$ ./scripts/stop-all.sh
Add REST RPC API
Please refer to "How to add REST RPC API for OpenIM Chat".
Setup LiveKit if you want to enable Audio and Video chat
Please refer to "How to setup LiveKit server".
Contributing
Contributions to this project are welcome! Please see CONTRIBUTING.md for details.
Community Meetings
We want anyone to get involved in our community, we offer gifts and rewards, and we welcome you to join us every Thursday night.
We take notes of each biweekly meeting in GitHub discussions, and our minutes are written in Google Docs.
Who are using open-im-server
The user case studies page includes the user list of the project. You can leave a ๐comment to let us know your use case.
๐จ License
chat is licensed under the Apache 2.0 license. See LICENSE for the full license text.