You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
507 lines
13 KiB
507 lines
13 KiB
12 months ago
|
# 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.
|
||
|
|
||
|
# -----------------------------------------------------------------
|
||
|
# TODO: This config file is the template file
|
||
|
# --| source: deployments/templates/openim.yaml
|
||
|
# --| env: scripts/install/environment
|
||
|
# --| target: config/config.yaml
|
||
|
# -----------------------------------------------------------------
|
||
|
|
||
|
envs:
|
||
|
discovery: zookeeper
|
||
|
|
||
|
###################### Zookeeper ######################
|
||
|
# Zookeeper configuration
|
||
|
# It's not recommended to modify the schema
|
||
|
#
|
||
|
# Zookeeper address
|
||
|
# Zookeeper username
|
||
|
# Zookeeper password
|
||
|
zookeeper:
|
||
|
schema: openim
|
||
|
address: [ 172.28.0.1:12181 ]
|
||
|
username: ''
|
||
|
password: ''
|
||
|
|
||
|
###################### 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: [ 172.28.0.1:37017 ]
|
||
|
database: openIM_v3
|
||
|
username: root
|
||
|
password: openIM123
|
||
|
maxPoolSize: 100
|
||
|
|
||
|
###################### Redis configuration information ######################
|
||
|
# Redis configuration
|
||
|
#
|
||
|
# Username is required only for Redis version 6.0+
|
||
|
redis:
|
||
|
address: [ 172.28.0.1:16379 ]
|
||
|
username: ''
|
||
|
password: openIM123
|
||
|
|
||
|
###################### Kafka configuration information ######################
|
||
|
# 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: [ 172.28.0.1:19094 ]
|
||
|
latestMsgToRedis:
|
||
|
topic: "latestMsgToRedis"
|
||
|
offlineMsgToMongo:
|
||
|
topic: "offlineMsgToMongoMysql"
|
||
|
msgToPush:
|
||
|
topic: "msgToPush"
|
||
|
consumerGroupID:
|
||
|
msgToRedis: redis
|
||
|
msgToMongo: mongo
|
||
|
msgToMySql: mysql
|
||
|
msgToPush: push
|
||
|
|
||
|
###################### RPC configuration information ######################
|
||
|
# 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 configuration information ######################
|
||
|
# API configuration
|
||
|
#
|
||
|
# API service port
|
||
|
# Default listen IP is 0.0.0.0
|
||
|
api:
|
||
|
openImApiPort: [ 10002 ]
|
||
|
listenIP: 0.0.0.0
|
||
|
|
||
|
###################### Object configuration information ######################
|
||
|
# 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://172.28.0.1:10002"
|
||
|
minio:
|
||
|
bucket: "openim"
|
||
|
endpoint: "http://172.28.0.1:10005"
|
||
|
accessKeyID: "root"
|
||
|
secretAccessKey: "openIM123"
|
||
|
sessionToken: ''
|
||
|
signEndpoint: "http://172.28.0.1:10005"
|
||
|
publicRead: false
|
||
|
cos:
|
||
|
bucketURL: https://temp-1252357374.cos.ap-chengdu.myqcloud.com
|
||
|
secretID: ''
|
||
|
secretKey: ''
|
||
|
sessionToken: ''
|
||
|
publicRead: false
|
||
|
oss:
|
||
|
endpoint: "https://oss-cn-chengdu.aliyuncs.com"
|
||
|
bucket: "demo-9999999"
|
||
|
bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com"
|
||
|
accessKeyID: ''
|
||
|
accessKeySecret: ''
|
||
|
sessionToken: ''
|
||
|
publicRead: false
|
||
|
kodo:
|
||
|
endpoint: "http://s3.cn-east-1.qiniucs.com"
|
||
|
bucket: "demo-9999999"
|
||
|
bucketURL: "http://your.domain.com"
|
||
|
accessKeyID: ''
|
||
|
accessKeySecret: ''
|
||
|
sessionToken: ''
|
||
|
publicRead: false
|
||
|
|
||
|
###################### RPC Port Configuration ######################
|
||
|
# 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 ]
|
||
|
openImGroupPort: [ 10150 ]
|
||
|
openImAuthPort: [ 10160 ]
|
||
|
openImPushPort: [ 10170 ]
|
||
|
openImConversationPort: [ 10180 ]
|
||
|
openImThirdPort: [ 10190 ]
|
||
|
|
||
|
###################### RPC Register Name Configuration ######################
|
||
|
# RPC service names for registration, it's not recommended to modify these
|
||
|
rpcRegisterName:
|
||
|
openImUserName: User
|
||
|
openImFriendName: Friend
|
||
|
openImMsgName: Msg
|
||
|
openImPushName: Push
|
||
|
openImMessageGatewayName: MessageGateway
|
||
|
openImGroupName: Group
|
||
|
openImAuthName: Auth
|
||
|
openImConversationName: Conversation
|
||
|
openImThirdName: Third
|
||
|
|
||
|
###################### Log Configuration ######################
|
||
|
# Log configuration
|
||
|
#
|
||
|
# Storage directory
|
||
|
# Log rotation time
|
||
|
# Maximum number of logs to retain
|
||
|
# Log level, 6 means all levels
|
||
|
# Whether to output to stdout
|
||
|
# Whether to output in json format
|
||
|
# Whether to include stack trace in logs
|
||
|
log:
|
||
|
storageLocation: ../logs/
|
||
|
rotationTime: 24
|
||
|
remainRotationCount: 2
|
||
|
remainLogLevel: 6
|
||
|
isStdout: false
|
||
|
isJson: false
|
||
|
withStack: false
|
||
|
|
||
|
###################### Variables definition ######################
|
||
|
# Long connection server configuration
|
||
|
#
|
||
|
# Websocket port for msg_gateway
|
||
|
# Maximum number of websocket connections
|
||
|
# Maximum length of websocket request package
|
||
|
# Websocket connection handshake timeout
|
||
|
longConnSvr:
|
||
|
openImWsPort: [ 10001 ]
|
||
|
websocketMaxConnNum: 100000
|
||
|
openImMessageGatewayPort: [ 10140 ]
|
||
|
websocketMaxMsgLen: 4096
|
||
|
websocketTimeout: 10
|
||
|
|
||
|
# Push notification service configuration
|
||
|
#
|
||
|
# Use GeTui for push notifications
|
||
|
# GeTui offline push configuration
|
||
|
# FCM offline push configuration
|
||
|
# Account file, place it in the config directory
|
||
|
# JPush configuration, modify these after applying in JPush backend
|
||
|
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: ''
|
||
|
|
||
|
# App manager configuration
|
||
|
#
|
||
|
# Built-in app manager user IDs
|
||
|
# Built-in app manager nicknames
|
||
|
manager:
|
||
|
userID: [ "openIM123456", "openIM654321", "openIMAdmin" ]
|
||
|
nickname: [ "system1", "system2", "system3" ]
|
||
|
|
||
|
# Multi-platform login policy
|
||
|
# For each platform(Android, iOS, Windows, Mac, web), only one can be online at a time
|
||
|
multiLoginPolicy: 1
|
||
|
|
||
|
# Whether to store messages in MySQL, messages in MySQL are only used for management background
|
||
|
chatPersistenceMysql: true
|
||
|
|
||
|
# Message cache timeout in seconds, it's not recommended to modify
|
||
|
msgCacheTimeout: 86400
|
||
|
|
||
|
# Whether to enable read receipts for group chat
|
||
|
groupMessageHasReadReceiptEnable: true
|
||
|
|
||
|
# Whether to enable read receipts for single chat
|
||
|
singleMessageHasReadReceiptEnable: true
|
||
|
|
||
|
# MongoDB offline message retention period in days
|
||
|
retainChatRecords: 365
|
||
|
|
||
|
# Schedule to clear expired messages(older than retainChatRecords days) in MongoDB every Wednesday at 2am
|
||
|
# This deletion is just for cleaning up disk usage according to previous configuration retainChatRecords, no notification will be sent
|
||
|
chatRecordsClearTime: "0 2 * * 3"
|
||
|
|
||
|
# Schedule to auto delete messages every day at 2am
|
||
|
# This deletion is for messages that have been retained for more than msg_destruct_time (seconds) in the conversation field
|
||
|
msgDestructTime: "0 2 * * *"
|
||
|
|
||
|
# Secret key
|
||
|
secret: openIM123
|
||
|
|
||
|
# Token policy
|
||
|
#
|
||
|
# Token expiration period in days
|
||
|
tokenPolicy:
|
||
|
expire: 90
|
||
|
|
||
|
# Message verification policy
|
||
|
#
|
||
|
# Whether to verify friendship when sending messages
|
||
|
messageVerify:
|
||
|
friendVerify: false
|
||
|
|
||
|
# iOS push notification configuration
|
||
|
#
|
||
|
# iOS push notification sound
|
||
|
# Whether to count badge
|
||
|
# 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
|
||
|
failedContinue: true
|
||
|
beforeSendGroupMsg:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterSendGroupMsg:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
msgModify:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
userOnline:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
userOffline:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
userKickOff:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
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
|
||
|
beforeUpdateUserInfo:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
beforeCreateGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterCreateGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
beforeMemberJoinGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
beforeSetGroupMemberInfo:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterSetGroupMemberInfo:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
setMessageReactionExtensions:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
quitGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
killGroupMember:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
dismissGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
joinGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
groupMsgRead:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
singleMsgRead:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
updateUserInfo:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
beforeUserRegister:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterUserRegister:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
transferGroupOwner:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
beforeSetFriendRemark:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterSetFriendRemark:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterGroupMsgRead:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterGroupMsgRevoke:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
afterJoinGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
beforeInviteUserToGroup:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
joinGroupAfter:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
setGroupInfoAfter:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
setGroupInfoBefore:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
revokeMsgAfter:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
addBlackBefore:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
addFriendAfter:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
addFriendAgreeBefore:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
deleteFriendAfter:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
importFriendsBefore:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
importFriendsAfter:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
removeBlackAfter:
|
||
|
enable: false
|
||
|
timeout: 5
|
||
|
failedContinue: true
|
||
|
###################### Prometheus ######################
|
||
|
# Prometheus configuration for various services
|
||
|
# 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
|
||
|
prometheusUrl: 172.28.0.1:13000
|
||
|
apiPrometheusPort: [20100]
|
||
|
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 ] # List of ports
|