mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 03:13:15 +08:00 
			
		
		
		
	* add aws upload, but not complete, leave some todos * Update config.yaml * Update environment.sh * Update aws.go * Update aws.go * Update aws.go --------- Co-authored-by: Xinwei Xiong <3293172751NSS@gmail.com>
		
			
				
	
	
		
			537 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			537 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# 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/config.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 for the MongoDB connection.
 | 
						|
# This is a complete MongoDB URI string.
 | 
						|
# Example: mongodb://user:password@host1:port1,host2:port2/dbname?options
 | 
						|
mongo:
 | 
						|
  uri: ''
 | 
						|
 | 
						|
# List of MongoDB server addresses.
 | 
						|
# Used for constructing the MongoDB URI if 'uri' above is empty.
 | 
						|
# For a standalone setup, specify the address of the single server.
 | 
						|
# For a sharded cluster, specify the addresses of the Mongos servers.
 | 
						|
# Example: [ '172.28.0.1:37017', '172.28.0.2:37017' ]
 | 
						|
# Default MongoDB database name
 | 
						|
# Maximum connection pool size
 | 
						|
  address: [ 172.28.0.1:37017 ]
 | 
						|
  database: openim_v3
 | 
						|
  username: openIM
 | 
						|
  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
 | 
						|
  aws:
 | 
						|
    endpoint: ""
 | 
						|
    region: ""
 | 
						|
    bucket: "demo-9999999"
 | 
						|
    accessKeyID: ''
 | 
						|
    accessKeySecret: ''
 | 
						|
    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: /workspaces/open-im-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
 | 
						|
  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" ]
 | 
						|
 | 
						|
# chatAdmin, use for send notification
 | 
						|
#
 | 
						|
# Built-in app system notification account ID
 | 
						|
# Built-in app system notification account nickname
 | 
						|
im-admin:
 | 
						|
  userID: [ "imAdmin" ]
 | 
						|
  nickname: [ "imAdmin" ]
 | 
						|
 | 
						|
# 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: "http://127.0.0.1:10008/callbackExample"
 | 
						|
  beforeSendSingleMsg:
 | 
						|
    enable: false
 | 
						|
    timeout: 5
 | 
						|
    failedContinue: true
 | 
						|
  beforeUpdateUserInfoEx:
 | 
						|
    enable:  false
 | 
						|
    timeout: 5
 | 
						|
    failedContinue: true
 | 
						|
  afterUpdateUserInfoEx:
 | 
						|
    enable:  false
 | 
						|
    timeout: 5
 | 
						|
    failedContinue: true
 | 
						|
  afterSendSingleMsg:
 | 
						|
    enable: true
 | 
						|
    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: true
 | 
						|
  grafanaUrl: http://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
 |