mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-02 16:15:59 +08:00
feat: add save scripts
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
USER="${USER}"
|
||||
PASSWORD="${PASSWORD}"
|
||||
MINIO_ENDPOINT="${MINIO_ENDPOINT}"
|
||||
API_URL="${API_URL}"
|
||||
DATA_DIR="${DATA_DIR}"
|
||||
@@ -1,384 +0,0 @@
|
||||
# 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.
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# This config file is the template file
|
||||
# -| source: scripts/template/config-tmpl/openim_config.yaml
|
||||
# -| env: scripts/install/environment.sh
|
||||
# -| target: config/config.yaml
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
###################### Zookeeper ######################
|
||||
# Zookeeper configuration
|
||||
# It's not recommended to modify the schema
|
||||
#
|
||||
# Zookeeper address
|
||||
# Zookeeper username
|
||||
# Zookeeper password
|
||||
zookeeper:
|
||||
schema: "${ZOOKEEPER_SCHEMA}"
|
||||
address: [ "${ZOOKEEPER_ADDRESS}" ]
|
||||
username: "${ZOOKEEPER_USERNAME}"
|
||||
password: "${ZOOKEEPER_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: [ "${MYSQL_ADDRESS}" ]
|
||||
username: "${MYSQL_USERNAME}"
|
||||
password: "${MYSQL_PASSWORD}"
|
||||
database: "${MYSQL_DATABASE}"
|
||||
maxOpenConn: "${MYSQL_MAX_OPEN_CONN}"
|
||||
maxIdleConn: "${MYSQL_MAX_IDLE_CONN}"
|
||||
maxLifeTime: "${MYSQL_MAX_LIFETIME}"
|
||||
logLevel: "${MYSQL_LOG_LEVEL}"
|
||||
slowThreshold: "${MYSQL_SLOW_THRESHOLD}"
|
||||
|
||||
###################### 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: "${MONGO_URI}"
|
||||
address: [ "${MONGO_ADDRESS}" ]
|
||||
database: "${MONGO_DATABASE}"
|
||||
username: "${MONGO_USERNAME}"
|
||||
password: "${MONGO_PASSWORD}"
|
||||
maxPoolSize: "${MONGO_MAX_POOL_SIZE}"
|
||||
|
||||
###################### Redis configuration information ######################
|
||||
# Redis configuration
|
||||
#
|
||||
# Username is required only for Redis version 6.0+
|
||||
redis:
|
||||
address: [ "${REDIS_ADDRESS}" ]
|
||||
username: "${REDIS_USERNAME}"
|
||||
password: "${REDIS_PASSWORD}"
|
||||
|
||||
###################### 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: "${KAFKA_USERNAME}"
|
||||
password: "${KAFKA_PASSWORD}"
|
||||
addr: [ "${KAFKA_ADDR}" ]
|
||||
latestMsgToRedis:
|
||||
topic: "${KAFKA_LATESTMSG_REDIS_TOPIC}"
|
||||
offlineMsgToMongo:
|
||||
topic: "${KAFKA_OFFLINEMSG_MONGO_TOPIC}"
|
||||
msgToPush:
|
||||
topic: "${KAFKA_MSG_PUSH_TOPIC}"
|
||||
consumerGroupID:
|
||||
msgToRedis: "${KAFKA_CONSUMERGROUPID_REDIS}"
|
||||
msgToMongo: "${KAFKA_CONSUMERGROUPID_MONGO}"
|
||||
msgToMySql: "${KAFKA_CONSUMERGROUPID_MYSQL}"
|
||||
msgToPush: "${KAFKA_CONSUMERGROUPID_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: "${RPC_REGISTER_IP}"
|
||||
listenIP: "${RPC_LISTEN_IP}"
|
||||
|
||||
###################### API configuration information ######################
|
||||
# API configuration
|
||||
#
|
||||
# API service port
|
||||
# Default listen IP is 0.0.0.0
|
||||
api:
|
||||
openImApiPort: [ "${API_OPENIM_PORT}" ]
|
||||
listenIP: "${API_LISTEN_IP}"
|
||||
|
||||
###################### 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
|
||||
# It can be set by an environment variable or by a script
|
||||
object:
|
||||
enable: "${OBJECT_ENABLE}"
|
||||
apiURL: "${OBJECT_APIURL}"
|
||||
minio:
|
||||
bucket: "${MINIO_BUCKET}"
|
||||
endpoint: "${MINIO_ENDPOINT}"
|
||||
accessKeyID: "${MINIO_ACCESS_KEY}"
|
||||
secretAccessKey: "${MINIO_SECRET_KEY}"
|
||||
sessionToken: "${MINIO_SESSION_TOKEN}"
|
||||
cos:
|
||||
bucketURL: "${COS_BUCKET_URL}"
|
||||
secretID: "${COS_SECRET_ID}"
|
||||
secretKey: "${COS_SECRET_KEY}"
|
||||
sessionToken: "${COS_SESSION_TOKEN}"
|
||||
oss:
|
||||
endpoint: "${OSS_ENDPOINT}"
|
||||
bucket: "${OSS_BUCKET}"
|
||||
bucketURL: "${OSS_BUCKET_URL}"
|
||||
accessKeyID: "${OSS_ACCESS_KEY_ID}"
|
||||
accessKeySecret: "${OSS_ACCESS_KEY_SECRET}"
|
||||
sessionToken: "${OSS_SESSION_TOKEN}"
|
||||
|
||||
|
||||
###################### 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: [ "${OPENIM_USER_PORT}" ]
|
||||
openImFriendPort: [ "${OPENIM_FRIEND_PORT}" ]
|
||||
openImMessagePort: [ "${OPENIM_MESSAGE_PORT}" ]
|
||||
openImMessageGatewayPort: [ "${OPENIM_MESSAGE_GATEWAY_PORT}" ]
|
||||
openImGroupPort: [ "${OPENIM_GROUP_PORT}" ]
|
||||
openImAuthPort: [ "${OPENIM_AUTH_PORT}" ]
|
||||
openImPushPort: [ "${OPENIM_PUSH_PORT}" ]
|
||||
openImConversationPort: [ "${OPENIM_CONVERSATION_PORT}" ]
|
||||
openImThirdPort: [ "${OPENIM_THIRD_PORT}" ]
|
||||
|
||||
###################### RPC Register Name Configuration ######################
|
||||
# RPC service names for registration, it's not recommended to modify these
|
||||
rpcRegisterName:
|
||||
openImUserName: "${OPENIM_USER_NAME}"
|
||||
openImFriendName: "${OPENIM_FRIEND_NAME}"
|
||||
openImMsgName: "${OPENIM_MSG_NAME}"
|
||||
openImPushName: "${OPENIM_PUSH_NAME}"
|
||||
openImMessageGatewayName: "${OPENIM_MESSAGE_GATEWAY_NAME}"
|
||||
openImGroupName: "${OPENIM_GROUP_NAME}"
|
||||
openImAuthName: "${OPENIM_AUTH_NAME}"
|
||||
openImConversationName: "${OPENIM_CONVERSATION_NAME}"
|
||||
openImThirdName: "${OPENIM_THIRD_NAME}"
|
||||
|
||||
###################### 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: "${LOG_STORAGE_LOCATION}"
|
||||
rotationTime: ${LOG_ROTATION_TIME}
|
||||
remainRotationCount: ${LOG_REMAIN_ROTATION_COUNT}
|
||||
remainLogLevel: ${LOG_REMAIN_LOG_LEVEL}
|
||||
isStdout: ${LOG_IS_STDOUT}
|
||||
isJson: ${LOG_IS_JSON}
|
||||
withStack: ${LOG_WITH_STACK}
|
||||
|
||||
###################### 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: [ "${OPENIM_WS_PORT}" ]
|
||||
websocketMaxConnNum: ${WEBSOCKET_MAX_CONN_NUM}
|
||||
websocketMaxMsgLen: ${WEBSOCKET_MAX_MSG_LEN}
|
||||
websocketTimeout: ${WEBSOCKET_TIMEOUT}
|
||||
|
||||
# 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: "${PUSH_ENABLE}"
|
||||
geTui:
|
||||
pushUrl: "${GETUI_PUSH_URL}"
|
||||
masterSecret: ""
|
||||
appKey: ""
|
||||
intent: ""
|
||||
channelID: ""
|
||||
channelName: ""
|
||||
fcm:
|
||||
serviceAccount: "${FCM_SERVICE_ACCOUNT}"
|
||||
jpns:
|
||||
appKey: "${JPNS_APP_KEY}"
|
||||
masterSecret: "${JPNS_MASTER_SECRET}"
|
||||
pushUrl: "${JPNS_PUSH_URL}"
|
||||
pushIntent: "${JPNS_PUSH_INTENT}"
|
||||
|
||||
# App manager configuration
|
||||
#
|
||||
# Built-in app manager user IDs
|
||||
# Built-in app manager nicknames
|
||||
manager:
|
||||
userID: [ "${MANAGER_USERID_1}", "${MANAGER_USERID_2}", "${MANAGER_USERID_3}" ]
|
||||
nickname: [ "${NICKNAME_1}", "${NICKNAME_2}", "${NICKNAME_3}" ]
|
||||
|
||||
# Multi-platform login policy
|
||||
# For each platform(Android, iOS, Windows, Mac, web), only one can be online at a time
|
||||
multiLoginPolicy: ${MULTILOGIN_POLICY}
|
||||
|
||||
# Whether to store messages in MySQL, messages in MySQL are only used for management background
|
||||
chatPersistenceMysql: ${CHAT_PERSISTENCE_MYSQL}
|
||||
|
||||
# Message cache timeout in seconds, it's not recommended to modify
|
||||
msgCacheTimeout: ${MSG_CACHE_TIMEOUT}
|
||||
|
||||
# Whether to enable read receipts for group chat
|
||||
groupMessageHasReadReceiptEnable: ${GROUP_MSG_READ_RECEIPT}
|
||||
|
||||
# Whether to enable read receipts for single chat
|
||||
singleMessageHasReadReceiptEnable: ${SINGLE_MSG_READ_RECEIPT}
|
||||
|
||||
# MongoDB offline message retention period in days
|
||||
retainChatRecords: ${RETAIN_CHAT_RECORDS}
|
||||
|
||||
# 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: "${CHAT_RECORDS_CLEAR_TIME}"
|
||||
|
||||
# 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: "${MSG_DESTRUCT_TIME}"
|
||||
|
||||
# Secret key
|
||||
secret: "${SECRET}"
|
||||
|
||||
# Token policy
|
||||
#
|
||||
# Token expiration period in days
|
||||
tokenPolicy:
|
||||
expire: ${TOKEN_EXPIRE}
|
||||
|
||||
# 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: "${PROMETHEUS_ENABLE}"
|
||||
userPrometheusPort: [ "${USER_PROM_PORT}" ]
|
||||
friendPrometheusPort: [ "${FRIEND_PROM_PORT}" ]
|
||||
messagePrometheusPort: [ "${MESSAGE_PROM_PORT}" ]
|
||||
messageGatewayPrometheusPort: [ "${MSG_GATEWAY_PROM_PORT}" ]
|
||||
groupPrometheusPort: [ "${GROUP_PROM_PORT}" ]
|
||||
authPrometheusPort: [ "${AUTH_PROM_PORT}" ]
|
||||
pushPrometheusPort: [ "${PUSH_PROM_PORT}" ]
|
||||
conversationPrometheusPort: [ "${CONVERSATION_PROM_PORT}" ]
|
||||
rtcPrometheusPort: [ "${RTC_PROM_PORT}" ]
|
||||
thirdPrometheusPort: [ "${THIRD_PROM_PORT}" ]
|
||||
messageTransferPrometheusPort: [ "${MSG_TRANSFER_PROM_PORTS}" ] # List of ports
|
||||
Reference in New Issue
Block a user