开源地址
https://github.com/OpenIMSDK/Open-IM-Server
官网
软件安装
Zookeeper
docker pull zookeeper
# docker run -d --name zookeeper --privileged=true -p 2181:2181 zookeeper
docker run -d --name zookeeper -p 2181:2181 zookeeper
MySQL(version:5.7)
docker pull mysql:5.7
docker run -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=wujialiang -d mysql:5.7
MongoDB(version:4.0.28)
docker pull mongo
docker run -itd --name mongodb -p 27017:27017 mongo
docker exec -it mongodb mongo admin
db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
db.auth("admin","admin123456");
exit
Redis(version:redis_version:7.0.0)
docker pull redis:7.0
docker run -itd -p 6379:6379 --name redis -d redis:7.0
Kafka(version:kafka_2.13-2.8.1)
# docker pull bitnami/kafka:2.8.1
# docker run -itd -p 9092:9092 --name kafka-server -e ALLOW_PLAINTEXT_LISTENER=yes bitnami/kafka:2.8.1
docker pull wurstmeister/kafka:2.13-2.8.1
docker run -d --name kafka -p 9092:9092 \
--link zookeeper \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=localhost \
--env KAFKA_ADVERTISED_PORT=9092 \
--env KAFKA_LOG_DIRS=/kafka/logs \
wurstmeister/kafka:2.13-2.8.1
Minio(version:minio version RELEASE.2022-05-26T05-48-41Z)
# docker pull minio/minio
docker pull minio/minio:RELEASE.2022-05-26T05-48-41Z
# docker run -p 9000:9000 -p 9090:9090 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=minioadmin" -e "MINIO_SECRET_KEY=minioadmin" minio/minio:RELEASE.2022-05-26T05-48-41Z server --console-address ":9090" -address ":9000"
docker run --name minio -d -e "MINIO_ACCESS_KEY=minioadmin" -e "MINIO_SECRET_KEY=minioadmin" -p 9000:9000 -p 9001:9001 minio/minio:RELEASE.2022-05-26T05-48-41Z server /data --console-address ":9001"
访问9001
查看最终的效果
ubuntu安装go
参考
开启代理
go env -w GOPROXY=https://goproxy.cn
部署openim-server
拉取源代码
git clone https://github.com/OpenIMSDK/Open-IM-Server.git
修改配置文件
修改config/config.yaml
zookeeper:
schema: openim #不建议修改
address: [ 127.0.0.1:2181 ] #
username: #用户名
password: #密码
mysql:
address: [ 127.0.0.1:3306 ] #目前仅支持单机
username: root #用户名
password: wujialiang #密码
database: openIM_v3 #不建议修改
maxOpenConn: 1000 #最大连接数
maxIdleConn: 100 #最大空闲连接数
maxLifeTime: 60 #连接可以重复使用的最长时间(秒)
logLevel: 4 #日志级别 1=slient 2=error 3=warn 4=info
slowThreshold: 500 #慢语句阈值 (毫秒)
mongo:
uri: #不为空则直接使用该值
address: [ 127.0.0.1:27017 ] #单机时为mongo地址,使用分片集群时,为mongos地址
database: openIM_v3 #mongo db 默认即可
username: admin #用户名
password: admin123456 #密码
maxPoolSize: 100
redis:
address: [ 127.0.0.1:6379 ] #
username: #only redis version 6.0+ need username
password: #密码
kafka:
username: #用户名
password: #密码
addr: [ 127.0.0.1:9092 ] #
latestMsgToRedis:
topic: "latestMsgToRedis" #不建议修改
offlineMsgToMongo:
topic: "offlineMsgToMongoMysql" #不建议修改
msgToPush:
topic: "msgToPush" #不建议修改
consumerGroupID: #消费者组,不建议修改
msgToRedis: redis #
msgToMongo: mongo #
msgToMySql: mysql #
msgToPush: push #
object:
enable: "minio" #使用minio
apiURL: "http://127.0.0.1:10002/object/"
minio:
bucket: "openim" #不建议修改
endpoint: "http://127.0.0.1:9000" #minio对外服务的ip和端口,app要能访问此ip和端口
accessKeyID: "minioadmin" #ID
secretAccessKey: "minioadmin" #秘钥
sessionToken: "" #token
cos: #tencent cos
bucketURL: "https://temp-1252357374.cos.ap-chengdu.myqcloud.com"
secretID: ""
secretKey: ""
sessionToken: ""
oss: #ali oss
endpoint: "https://oss-cn-chengdu.aliyuncs.com"
bucket: "demo-9999999"
bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com"
accessKeyID: ""
accessKeySecret: ""
sessionToken: ""
修改.evn
USER=root
PASSWORD=openIM123
MINIO_ENDPOINT=http://127.0.0.1:9000
API_URL=http://127.0.0.1:10002/object/
DATA_DIR=./
修改build_all_service.sh、function.sh、path_info.sh为unix格式
安装所需要的包
sudo apt-get update
sudo apt-get install libncurses-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
# sudo apt-get install ncurses-devel
sudo apt install libncurses-dev
sudo apt-get install libncurses5-dev
sudo apt-get install gcc automake autoconf libtool make
执行编译
cd Open-IM-server/scripts
chmod +x *.sh
./build_all_service.sh
启动服务
start_all.sh、start_rpc_service.sh、push_start.sh、msg_transfer_start.sh、msg_gateway_start.sh、start_cron.sh修改为unix格式
./start_all.sh
检查所有服务
check_all.sh修改为unix格式
./check_all.sh
停止服务
stop_all.sh修改为unix格式
./stop_all.sh
安装chat服务
拉取项目
git clone https://github.com/OpenIMSDK/chat.git
压缩为tar上传到服务器并解压
修改配置文件 chat/config/config.yaml
如果已申请阿里云短信服务,修改 chat/config/config.yaml 配置项,如果未申请先略过,默认验证码为 666666
verifyCode:
validTime: 300 # 验证码有效时间
validCount: 5 # 验证码有效次数
uintTime: 86400 # 单位时间间隔
maxCount: 10 # 单位时间内最大获取次数
superCode: 666666 # 默认手机验证码(只有use为空时生效)
len: 6 # 验证码长度
use: # 如申请了阿里短信服务,设置为ali使其生效
ali:
endpoint: "dysmsapi.aliyuncs.com"
accessKeyId: ""
accessKeySecret: ""
signName: ""
verificationCodeTemplateCode: ""
这里没有申请所以不做修改
编译代码
将scripts文件下的所有sh修改为unix格式
cd chat/scripts
chmod +x *.sh
./build_all_service.sh
启动服务
./start_all.sh
检查服务
./check_all.sh
停止服务
./stop_all.sh