# Copyright © 2023 OpenIM. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ----------------------------------------------------------------- # Infrastructural configurations, please modify based on your setup # ----------------------------------------------------------------- ###################### Zookeeper ###################### # Zookeeper configuration # It's not recommended to modify the schema # # Zookeeper address # Zookeeper username # Zookeeper password zookeeper: schema: openim address: [ 127.0.0.1:2181 ] username: password: ###################### Mysql ###################### # MySQL configuration # Currently, only single machine setup is supported # # Maximum number of open connections # Maximum number of idle connections # Maximum lifetime in seconds a connection can be reused # Log level: 1=slient, 2=error, 3=warn, 4=info # Slow query threshold in milliseconds mysql: address: [ 127.0.0.1:13306 ] username: root password: openIM123 database: openIM_v3 maxOpenConn: 1000 maxIdleConn: 100 maxLifeTime: 60 logLevel: 4 slowThreshold: 500 ###################### Mongo ###################### # MongoDB configuration # If uri is not empty, it will be used directly # # MongoDB address for standalone setup, Mongos address for sharded cluster setup # Default MongoDB database name # Maximum connection pool size mongo: uri: address: [ 127.0.0.1:37017 ] database: openIM_v3 username: root password: openIM123 maxPoolSize: 100 ###################### Redis ###################### # Redis configuration # # Username is required only for Redis version 6.0+ redis: address: [ 127.0.0.1:16379 ] username: password: openIM123 ###################### Kafka ###################### # Kafka configuration # # Kafka username # Kafka password # It's not recommended to modify this topic name # Consumer group ID, it's not recommended to modify 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 ###################### RPC ###################### # RPC configuration # # IP address to register with zookeeper when starting RPC, the IP and corresponding rpcPort should be accessible by api/gateway # Default listen IP is 0.0.0.0 rpc: registerIP: listenIP: 0.0.0.0 ###################### API ###################### # API configuration # # API service port # Default listen IP is 0.0.0.0 api: openImApiPort: [ 10002 ] listenIP: 0.0.0.0 ###################### Object ###################### # Object storage configuration # # Use minio for object storage # API URL should be accessible by the app # It's not recommended to modify the bucket name # Endpoint should be accessible by the app # Session token # Configuration for Tencent COS # Configuration for Aliyun OSS # apiURL is the address of the api, the access address of the app, use s3 must be configured # minio.endpoint can be configured as an intranet address, # minio.signEndpoint is minio public network address object: enable: "minio" apiURL: "http://127.0.0.1:10002" minio: bucket: "openim" endpoint: "http://127.0.0.1:10005" accessKeyID: "root" secretAccessKey: "openIM123" sessionToken: "" signEndpoint: "http://127.0.0.1:10005" cos: bucketURL: "https://temp-1252357374.cos.ap-chengdu.myqcloud.com" secretID: "" secretKey: "" sessionToken: "" oss: endpoint: "https://oss-cn-chengdu.aliyuncs.com" bucket: "demo-9999999" bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com" accessKeyID: "" accessKeySecret: "" sessionToken: "" # RPC service ports # These ports are passed into the program by the script and are not recommended to modify # For launching multiple programs, just fill in multiple ports separated by commas # For example, [10110, 10111] rpcPort: openImUserPort: [ 10110 ] openImFriendPort: [ 10120 ] openImMessagePort: [ 10130 ] openImMessageGatewayPort: [ 10140 ] openImGroupPort: [ 10150 ] openImAuthPort: [ 10160 ] openImPushPort: [ 10170 ] openImConversationPort: [ 10180 ] openImThirdPort: [ 10190 ] rpcRegisterName: openImUserName: User openImFriendName: Friend openImMsgName: Msg openImPushName: Push openImMessageGatewayName: MessageGateway openImGroupName: Group openImAuthName: Auth openImConversationName: Conversation openImThirdName: Third log: storageLocation: ../../../../../logs/ rotationTime: 24 remainRotationCount: 2 remainLogLevel: 6 isStdout: false isJson: false withStack: false longConnSvr: openImWsPort: [ 10001 ] websocketMaxConnNum: 100000 websocketMaxMsgLen: 4096 websocketTimeout: 10 push: enable: getui geTui: pushUrl: "https://restapi.getui.com/v2/$appId" masterSecret: "" appKey: "" intent: "" channelID: "" channelName: "" fcm: serviceAccount: "x.json" jpns: appKey: masterSecret: pushUrl: pushIntent: manager: userID: [ "openIM123456","openIM654321","openIMAdmin" ] nickname: [ "system1","system2", "system3" ] multiLoginPolicy: 1 chatPersistenceMysql: true msgCacheTimeout: 86400 groupMessageHasReadReceiptEnable: true singleMessageHasReadReceiptEnable: true retainChatRecords: 365 chatRecordsClearTime: "0 2 * * 3" msgDestructTime: "0 2 * * *" secret: openIM123 tokenPolicy: expire: 90 messageVerify: friendVerify: false # Whether it's production environment iosPush: pushSound: "xxx" badgeCount: true production: false ###################### Third-party service configuration ###################### # Callback configuration # # Callback URL # Whether to enable this callback event # Timeout in seconds # Whether to continue execution if callback fails callback: url: beforeSendSingleMsg: enable: false timeout: 5 failedContinue: true afterSendSingleMsg: enable: false timeout: 5 beforeSendGroupMsg: enable: false timeout: 5 failedContinue: true afterSendGroupMsg: enable: false timeout: 5 msgModify: enable: false timeout: 5 failedContinue: true userOnline: enable: false timeout: 5 userOffline: enable: false timeout: 5 userKickOff: enable: false timeout: 5 offlinePush: enable: false timeout: 5 failedContinue: true onlinePush: enable: false timeout: 5 failedContinue: true superGroupOnlinePush: enable: false timeout: 5 failedContinue: true beforeAddFriend: enable: false timeout: 5 failedContinue: true beforeCreateGroup: enable: false timeout: 5 failedContinue: true beforeMemberJoinGroup: enable: false timeout: 5 failedContinue: true beforeSetGroupMemberInfo: enable: false timeout: 5 failedContinue: true setMessageReactionExtensions: enable: false timeout: 5 failedContinue: true ###################### Prometheus ###################### # Prometheus configuration # The number of Prometheus ports per service needs to correspond to rpcPort # The number of ports needs to be consistent with msg_transfer_service_num in script/path_info.sh prometheus: enable: false userPrometheusPort: [ 20110 ] friendPrometheusPort: [ 20120 ] messagePrometheusPort: [ 20130 ] messageGatewayPrometheusPort: [ 20140 ] groupPrometheusPort: [ 20150 ] authPrometheusPort: [ 20160 ] pushPrometheusPort: [ 20170 ] conversationPrometheusPort: [ 20230 ] rtcPrometheusPort: [ 21300 ] thirdPrometheusPort: [ 21301 ] messageTransferPrometheusPort: [ 21400, 21401, 21402, 21403 ]