mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-26 21:22:16 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			388 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			388 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # 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
 | |
| # -----------------------------------------------------------------
 | |
| 
 | |
| ###################### 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: ''
 | |
| 
 | |
| ###################### 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: [ 172.28.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: [ 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:10002"
 | |
|   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 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 ]
 | |
|   openImMessageGatewayPort: [ 10140 ]
 | |
|   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: /root/workspaces/openim/openim-server/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
 | |
|   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
 | |
|   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 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
 | |
|   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
 |