diff --git a/.env b/.env index 3e2fa93f3..97106f1e0 100644 --- a/.env +++ b/.env @@ -1,5 +1,19 @@ -USER="root" -PASSWORD="openIM123" -MINIO_ENDPOINT="http://127.0.0.1:10005" -API_URL="http://127.0.0.1:10002/object/" -DATA_DIR="/root/workspaces/openim/Open-IM-Server" +# 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. + +USER=root +PASSWORD=openIM123 +MINIO_ENDPOINT=http://http://127.0.0.1:10005 +API_URL=http://http://127.0.0.1:10002/object/ +DATA_DIR=/root/workspaces/openim/openim-server diff --git a/config/config.yaml b/config/config.yaml index 6c4647a0f..27f01fb8b 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -114,7 +114,7 @@ api: openImApiPort: [ 10002 ] listenIP: 0.0.0.0 -###################### Object ###################### +###################### Gateway ###################### # Object storage configuration # # Use minio for object storage @@ -165,6 +165,7 @@ rpcPort: openImConversationPort: [ 10180 ] openImThirdPort: [ 10190 ] +# RPC service names for registration, it's not recommended to modify these rpcRegisterName: openImUserName: User openImFriendName: Friend @@ -176,6 +177,15 @@ rpcRegisterName: openImConversationName: Conversation openImThirdName: Third +# 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 @@ -185,12 +195,25 @@ log: isJson: false withStack: false +# 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: @@ -208,41 +231,66 @@ push: 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 @@ -327,4 +375,4 @@ prometheus: conversationPrometheusPort: [ 20230 ] rtcPrometheusPort: [ 21300 ] thirdPrometheusPort: [ 21301 ] - messageTransferPrometheusPort: [ 21400, 21401, 21402, 21403 ] + messageTransferPrometheusPort: [ 21400, 21401, 21402, 21403 ] \ No newline at end of file diff --git a/config/openim_config.yaml b/config/openim_config.yaml new file mode 100644 index 000000000..581d811ed --- /dev/null +++ b/config/openim_config.yaml @@ -0,0 +1,387 @@ +# 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: 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: 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 configuration information ###################### +# Redis configuration +# +# Username is required only for Redis version 6.0+ +redis: + address: [ 127.0.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: [ 127.0.0.1:9092 ] + 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://127.0.0.1:10002/object/" + minio: + bucket: "openim" + endpoint: "http://http://127.0.0.1:10005" + accessKeyID: "root" + secretAccessKey: "openIM123" + sessionToken: '' + signEndpoint: "http://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: root + 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 diff --git a/deployments/templates/env_template.yaml b/deployments/templates/env_template.yaml index c72b4492d..687c04453 100644 --- a/deployments/templates/env_template.yaml +++ b/deployments/templates/env_template.yaml @@ -12,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -USER="${USER}" -PASSWORD="${PASSWORD}" -MINIO_ENDPOINT="${MINIO_ENDPOINT}" -API_URL="${API_URL}" -DATA_DIR="${DATA_DIR}" \ No newline at end of file +USER=${USER} +PASSWORD=${PASSWORD} +MINIO_ENDPOINT=${MINIO_ENDPOINT} +API_URL=${API_URL} +DATA_DIR=${DATA_DIR} \ No newline at end of file diff --git a/deployments/templates/openim.yaml b/deployments/templates/openim.yaml index b71207ebf..cc793e0eb 100644 --- a/deployments/templates/openim.yaml +++ b/deployments/templates/openim.yaml @@ -88,11 +88,11 @@ kafka: password: ${KAFKA_PASSWORD} addr: [ ${KAFKA_ADDR}:${KAFKA_PORT} ] latestMsgToRedis: - topic: ${KAFKA_LATESTMSG_REDIS_TOPIC} + topic: "${KAFKA_LATESTMSG_REDIS_TOPIC}" offlineMsgToMongo: - topic: ${KAFKA_OFFLINEMSG_MONGO_TOPIC} + topic: "${KAFKA_OFFLINEMSG_MONGO_TOPIC}" msgToPush: - topic: ${KAFKA_MSG_PUSH_TOPIC} + topic: "${KAFKA_MSG_PUSH_TOPIC}" consumerGroupID: msgToRedis: ${KAFKA_CONSUMERGROUPID_REDIS} msgToMongo: ${KAFKA_CONSUMERGROUPID_MONGO} @@ -127,25 +127,28 @@ api: # Session token # Configuration for Tencent COS # Configuration for Aliyun OSS -# It can be set by an environment variable or by a script +# 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: ${OBJECT_ENABLE} - apiURL: ${OBJECT_APIURL} + enable: "${OBJECT_ENABLE}" + apiURL: "${OBJECT_APIURL}" minio: - bucket: ${MINIO_BUCKET} - endpoint: ${MINIO_ENDPOINT} - accessKeyID: ${MINIO_ACCESS_KEY} - secretAccessKey: ${MINIO_SECRET_KEY} + bucket: "${MINIO_BUCKET}" + endpoint: "${MINIO_ENDPOINT}" + accessKeyID: "${MINIO_ACCESS_KEY}" + secretAccessKey: "${MINIO_SECRET_KEY}" sessionToken: ${MINIO_SESSION_TOKEN} + signEndpoint: "${MINIO_SIGN_ENDPOINT}" 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} + endpoint: "${OSS_ENDPOINT}" + bucket: "${OSS_BUCKET}" + bucketURL: "${OSS_BUCKET_URL}" accessKeyID: ${OSS_ACCESS_KEY_ID} accessKeySecret: ${OSS_ACCESS_KEY_SECRET} sessionToken: ${OSS_SESSION_TOKEN} @@ -191,7 +194,7 @@ rpcRegisterName: # Whether to output in json format # Whether to include stack trace in logs log: - storageLocation: "${LOG_STORAGE_LOCATION}" + storageLocation: ${LOG_STORAGE_LOCATION} rotationTime: ${LOG_ROTATION_TIME} remainRotationCount: ${LOG_REMAIN_ROTATION_COUNT} remainLogLevel: ${LOG_REMAIN_LOG_LEVEL} @@ -223,18 +226,18 @@ push: enable: ${PUSH_ENABLE} geTui: pushUrl: "${GETUI_PUSH_URL}" - masterSecret: - appKey: - intent: - channelID: - channelName: + 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} + appKey: + masterSecret: + pushUrl: + pushIntent: # App manager configuration # @@ -242,7 +245,7 @@ push: # Built-in app manager nicknames manager: userID: [ "${MANAGER_USERID_1}", "${MANAGER_USERID_2}", "${MANAGER_USERID_3}" ] - nickname: [ ${NICKNAME_1}, ${NICKNAME_2}, ${NICKNAME_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 diff --git a/docker-compose.yaml b/docker-compose.yaml index afb77d657..ed22568e8 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -98,82 +98,82 @@ services: restart: always command: minio server /data --console-address ':9090' - openim-server: - # image: ghcr.io/openimsdk/openim-server:latest - image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:v3.2.1-beta.4 - # image: openim/openim-server:latest - # build: . - container_name: openim-server - volumes: - - ./logs:/openim/openim-server/logs - - ./config:/openim/openim-server/config - - ./scripts:/openim/openim-server/scripts - restart: always - depends_on: - - zookeeper - - kafka - - mysql - - mongodb - - redis - - minio - network_mode: "host" - logging: - driver: json-file - options: - max-size: "1g" - max-file: "2" + # openim-server: + # # image: ghcr.io/openimsdk/openim-server:latest + # image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:v3.2.1-beta.4 + # # image: openim/openim-server:latest + # # build: . + # container_name: openim-server + # volumes: + # - ./logs:/openim/openim-server/logs + # - ./config:/openim/openim-server/config + # - ./scripts:/openim/openim-server/scripts + # restart: always + # depends_on: + # - zookeeper + # - kafka + # - mysql + # - mongodb + # - redis + # - minio + # network_mode: "host" + # logging: + # driver: json-file + # options: + # max-size: "1g" + # max-file: "2" - openim-chat: - # image: ghcr.io/openimsdk/openim-chat:latest - image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat:latest - # image: openim/openim-chat:latest - container_name: openim-chat - healthcheck: - test: ["CMD-SHELL", "./scripts/check_all.sh"] - interval: 30s - timeout: 10s - retries: 5 - volumes: - - ${DATA_DIR}/_output/openim/openim-chat/logs:/openim/openim-chat/logs - - ${DATA_DIR}/_output/openim/openim-chat/config:/openim/openim-chat/config - - ${DATA_DIR}/_output/openim/openim-chat/scripts:/openim/openim-chat/scripts - restart: always - user: root:root - depends_on: - - mysql - - mongodb - - redis - - minio - - openim-server - network_mode: "host" - logging: - driver: json-file - options: - max-size: "1g" - max-file: "2" + # openim-chat: + # # image: ghcr.io/openimsdk/openim-chat:latest + # image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat:latest + # # image: openim/openim-chat:latest + # container_name: openim-chat + # healthcheck: + # test: ["CMD-SHELL", "./scripts/check_all.sh"] + # interval: 30s + # timeout: 10s + # retries: 5 + # volumes: + # - ${DATA_DIR}/_output/openim/openim-chat/logs:/openim/openim-chat/logs + # - ${DATA_DIR}/_output/openim/openim-chat/config:/openim/openim-chat/config + # - ${DATA_DIR}/_output/openim/openim-chat/scripts:/openim/openim-chat/scripts + # restart: always + # user: root:root + # depends_on: + # - mysql + # - mongodb + # - redis + # - minio + # - openim-server + # network_mode: "host" + # logging: + # driver: json-file + # options: + # max-size: "1g" + # max-file: "2" - prometheus: - image: prom/prometheus - volumes: - - ./.docker-compose_cfg/prometheus-compose.yml:/etc/prometheus/prometheus.yml - container_name: prometheus - # ports: - # - 9091:9091 - depends_on: - - openim-server - command: --web.listen-address=:9091 --config.file="/etc/prometheus/prometheus.yml" - network_mode: "host" + # prometheus: + # image: prom/prometheus + # volumes: + # - ./.docker-compose_cfg/prometheus-compose.yml:/etc/prometheus/prometheus.yml + # container_name: prometheus + # # ports: + # # - 9091:9091 + # depends_on: + # - openim-server + # command: --web.listen-address=:9091 --config.file="/etc/prometheus/prometheus.yml" + # network_mode: "host" - grafana: - image: grafana/grafana - volumes: - - ./.docker-compose_cfg/datasource-compose.yaml:/etc/grafana/provisioning/datasources/datasource.yaml - - ./.docker-compose_cfg/grafana.ini:/etc/grafana/grafana.ini - - ./.docker-compose_cfg/node-exporter-full_rev1.json:/var/lib/grafana/dashboards/node-exporter-full_rev1.json - container_name: grafana - depends_on: - - prometheus - network_mode: "host" + # grafana: + # image: grafana/grafana + # volumes: + # - ./.docker-compose_cfg/datasource-compose.yaml:/etc/grafana/provisioning/datasources/datasource.yaml + # - ./.docker-compose_cfg/grafana.ini:/etc/grafana/grafana.ini + # - ./.docker-compose_cfg/node-exporter-full_rev1.json:/var/lib/grafana/dashboards/node-exporter-full_rev1.json + # container_name: grafana + # depends_on: + # - prometheus + # network_mode: "host" # node-exporter: # image: quay.io/prometheus/node-exporter diff --git a/scripts/init-config.sh b/scripts/init-config.sh index d5bdda317..a1018b131 100755 --- a/scripts/init-config.sh +++ b/scripts/init-config.sh @@ -30,7 +30,7 @@ readonly ENV_FILE=${ENV_FILE:-${OPENIM_ROOT}/scripts/install/environment.sh} # 定义关联数组,其中键是模板文件,值是对应的输出文件 (en: Defines an associative array where the keys are the template files and the values are the corresponding output files.) declare -A TEMPLATES=( ["${OPENIM_ROOT}/deployments/templates/env_template.yaml"]="${OPENIM_ROOT}/.env" - ["${OPENIM_ROOT}/deployments/templates/openim.yaml"]="${OPENIM_ROOT}/openim_config.yaml" + ["${OPENIM_ROOT}/deployments/templates/openim.yaml"]="${OPENIM_ROOT}/config/openim_config.yaml" ) for template in "${!TEMPLATES[@]}"; do diff --git a/scripts/install/common.sh b/scripts/install/common.sh index 7aeff653c..aa0d97eba 100755 --- a/scripts/install/common.sh +++ b/scripts/install/common.sh @@ -87,7 +87,7 @@ openim::common::dependency_port() { ${MYSQL_PORT} # MySQL port ${REDIS_PORT} # Redis port ${ZOOKEEPER_PORT} # Zookeeper port - ${KAFKA_PORT} # Kafka port + # ${KAFKA_PORT} # Kafka port ${MongoDB_PORT} # MongoDB port ${MINIO_PORT} # MinIO port ) diff --git a/scripts/install/environment.sh b/scripts/install/environment.sh index a4bdd8e40..afcce8aa1 100755 --- a/scripts/install/environment.sh +++ b/scripts/install/environment.sh @@ -26,6 +26,9 @@ source "${OPENIM_ROOT}/scripts/lib/init.sh" IP=$(openim::util::get_server_ip) +#TODO +IP=http://127.0.0.1 + function def() { local var_name="$1" local default_value="${2:-}" @@ -106,6 +109,7 @@ readonly MINIO_ENDPOINT=${MINIO_ENDPOINT:-"http://${IP}:${MINIO_PORT}"} def "MINIO_ACCESS_KEY" "${USER}" # MinIO的访问密钥ID def "MINIO_SECRET_KEY" "${PASSWORD}" # MinIO的密钥 def "MINIO_SESSION_TOKEN" # MinIO的会话令牌 +readonly MINIO_SIGN_ENDPOINT=${MINIO_SIGN_ENDPOINT:-"http://${IP}:${MINIO_PORT}"} # signEndpoint为minio公网地址 # MinIO的会话令牌 def "COS_BUCKET_URL" "https://temp-1252357374.cos.ap-chengdu.myqcloud.com" # 腾讯云COS的存储桶URL def "COS_SECRET_ID" # 腾讯云COS的密钥ID def "COS_SECRET_KEY" # 腾讯云COS的密钥 @@ -215,7 +219,7 @@ def "GROUP_MSG_READ_RECEIPT" "true" # 群消息已读回执启用 def "SINGLE_MSG_READ_RECEIPT" "true" # 单一消息已读回执启用 def "RETAIN_CHAT_RECORDS" "365" # 保留聊天记录 # 聊天记录清理时间 -readonly CHAT_RECORDS_CLEAR_TIME=${CHAT_RECORDS_CLEAR_TIME:-'0 2 * * *'} +readonly CHAT_RECORDS_CLEAR_TIME=${CHAT_RECORDS_CLEAR_TIME:-'0 2 * * 3'} # 消息销毁时间 readonly MSG_DESTRUCT_TIME=${MSG_DESTRUCT_TIME:-'0 2 * * *'} def "SECRET" "${PASSWORD}" # 密钥 diff --git a/scripts/start-all.sh b/scripts/start-all.sh index 4f6446ff6..cd36aa90e 100755 --- a/scripts/start-all.sh +++ b/scripts/start-all.sh @@ -52,6 +52,7 @@ function execute_scripts() { else openim::log::errexit "Script ${script_path##*/} is missing or not executable." fi + sleep 1 done }