openimsdk / open-im-server

IM Chat ChatGPT
https://openim.io
Apache License 2.0
14.14k stars 2.5k forks source link

Bug: Config Minio for nginx and public url #1722

Closed eugene710899989 closed 10 months ago

eugene710899989 commented 10 months ago

What happened?

How to config .env / config/config.yaml for minio. By the way, the url is https schema .

the server is depend on nginx

I am using Source Code Deployment .

What did you expect to happen?

config minio and work efficient in url binding.

How can we reproduce it (as minimally and precisely as possible)?

Ubuntu Source Code Deployment A public url Binding in the ip

Anything else we need to know?

No response

version

```console $ V3 # paste output here "make bucket error: \r\n405 Not Allowed\r\n\r\n

405 Not Allowed

\r\n
nginx/1.18.0 (Ubuntu)
\r\n\r\n" ```

Cloud provider

Ali Cloud

OS version

Linux armor 5.4.0-152-generic #169-Ubuntu SMP Tue Jun 6 22:23:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux ```console # On Linux: $ cat /etc/os-release # paste output here $ uname -a # paste output here # On Windows: C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture # paste output here ```

Install tools

kubbot commented 10 months ago

Hello! Thank you for filing an issue.

If this is a bug report, please include relevant logs to help us debug the problem.

Join slack 🤖 to connect and communicate with our developers.

skiffer-git commented 10 months ago
  1. Nginx Configuration:

    upstream minio_s3_2 {
       least_conn;
       server 127.0.0.1:10005;
    }
    
    location ^~/im-minio-api/ {
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_connect_timeout 300;
       # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
       proxy_http_version 1.1;
       proxy_set_header Connection "";
       chunked_transfer_encoding off;
       proxy_pass http://minio_s3_2/; # This uses the upstream directive definition to load balance
    }
  2. open-im-server/config/config.yaml Configuration:

    object:
    enable: "minio"
    apiURL: "https://lin.blooming.cool/api" //10002
    minio:
    bucket: "openim"
    endpoint: "http://172.28.0.1:10005"
    accessKeyID: "root"
    secretAccessKey: "openIM123"
    sessionToken: ''
    signEndpoint: "https://lin.blooming.cool/im-minio-api" //10005
eugene710899989 commented 10 months ago

My config:

nginx :

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/wasm;
    sendfile        on;
    keepalive_timeout  65;

#gzip  on;
#gzip_min_length 1k;
#gzip_comp_level 2;
#gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
#gzip_vary on;
#gzip_disable "MSIE [1-6]\.";
   proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=one:100m inactive=1d max_size=10g;
   # proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=one:100m inactive=60m;
   # proxy_cache_valid 200 60m;
   # proxy_cache_key "$scheme$request_method$host$request_uri";
   # proxy_cache_bypass $http_pragma;
   # proxy_cache_bypass $http_authorization;
   # proxy_cache_methods GET HEAD;

    server {
        listen       80;
        server_name  localhost;
        location / {
        # proxy_cache one;
            root   /home/armor/nginx/html/dist;
        # proxy_cache_key "$scheme$request_method$host$request_uri";
        # add_header Nginx-Cache $upstream_cache_status;
            index  index.html index.htm;
        }

        #location ~* ^.+\.(jpg|jpeg|png|gif|ico|css|js|wasm)$ {
        #    expires 30d;
        #    add_header Cache-Control "public, max-age=2592000";
    #    proxy_pass http://localhost:80;
        #    proxy_cache one;
        #}

    location /news {
        # proxy_cache one;
            alias /home/armor/nginx/manager/html/dist/;
            # proxy_cache_key "$scheme$request_method$host$request_uri";
            # add_header Nginx-Cache $upstream_cache_status;
            index  index.html;
            try_files $uri $uri/ index.html;
    }

       # error_page   500 502 503 504  /50x.html;
       # location = /50x.html {
       #     root   html;
       # }
    }
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''   close;
}
upstream minio_s3_2 {
    least_conn;
    server 0.0.0.0:10005;
}
  server {
        listen       8000;
        server_name  localhost;
        #location / {
        #    root   /home/armor/nginx/html/dist/;
        #    index  index.html index.htm;
        #}
        location / {
        #proxy_cache one;
            root /home/armor/nginx/manager/html/dist/;
            #proxy_cache_key "$scheme$request_method$host$request_uri";
            #add_header Nginx-Cache $upstream_cache_status;
            index  index.html;
            try_files $uri $uri/ index.html;
        }

        #location ~* \.(jpg|jpeg|png|gif|ico|css|js|wasm)$ {
        #    expires 30d;
        #    add_header Cache-Control "public, max-age=2592000";
        #    proxy_cache one;
        #}

        location /v1/api/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:10002/;
        }
        location /v1/chat/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:10008/;
        }
        location /v1/admin/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:10009/;
        }
        location /v1/websocket{

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;

            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       # proxy_read_timeout 86400;
            proxy_pass http://127.0.0.1:10001/;
        }
    location /v1/file{
    if ($request_method ~* "(GET|POST|PUT|DELETE|OPTIONS)") {
                #add_header "Access-Control-Allow-Origin" "*" always;
                add_header "Access-Control-Allow-Methods" "GET, POST, PUT, DELETE, OPTIONS" always;
                #add_header 'Access-Control-Allow-Headers' 'DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
                add_header "Access-Control-Allow-Headers" "Origin, X-Requested-With, Content-Type, Accept" always;
        }

        # 处理 OPTIONS 请求
          if ($request_method = OPTIONS) {
add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, PUT, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Origin, Referer, X-Requested-With, Content-Type, Accept, Sec-Ch-Ua-Platform, Sec-Ch-Ua-Mobile, Sec-Ch-Ua';
        add_header 'Access-Control-Max-Age' 86400;
        add_header 'Content-Length' 0;
        return 204;
        }
     proxy_set_header Host $http_host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_connect_timeout 300;
         # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
         proxy_http_version 1.1;
         proxy_set_header Connection "";
         chunked_transfer_encoding off;
         proxy_pass http://minio_s3_2/; # This uses the upstream directive definition to load balance
        }

        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #    root   html;
        #}
    }
}

.env

# 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.

# ======================================
# ========= Basic Configuration ========
# ======================================

# The user for authentication or system operations.
# Default: OPENIM_USER=root
USER=root

# Password associated with the specified user for authentication.
# Default: PASSWORD=openIM123
PASSWORD=openIM123

# Endpoint for the MinIO object storage service.
# Default: MINIO_ENDPOINT=http://172.28.0.1:10005
MINIO_ENDPOINT=http://172.28.0.1:10005

# Base URL for the application programming interface (API).
# Default: API_URL=http://172.28.0.1:10002
API_URL=http://111.0.73.203:10002

# Directory path for storing data files or related information.
# Default: DATA_DIR=./
DATA_DIR=/home/armor/im-server/im-server/server

# Choose the appropriate image address, the default is GITHUB image,
# you can choose docker hub, for Chinese users can choose Ali Cloud
# export IMAGE_REGISTRY="ghcr.io/openimsdk"
# export IMAGE_REGISTRY="openim"
# export IMAGE_REGISTRY="registry.cn-hangzhou.aliyuncs.com/openimsdk"
IMAGE_REGISTRY=ghcr.io/openimsdk

# ======================================
# ========= Network Configuration ======
# ======================================

# Subnet for the Docker network.
# Default: DOCKER_BRIDGE_SUBNET=172.28.0.0/16
DOCKER_BRIDGE_SUBNET=172.28.0.0/16

# Gateway for the Docker network.
# Default: DOCKER_BRIDGE_GATEWAY=172.28.0.1
DOCKER_BRIDGE_GATEWAY=172.28.0.1

# Address or hostname for the MySQL network.
# Default: MYSQL_NETWORK_ADDRESS=172.28.0.2
MYSQL_NETWORK_ADDRESS=172.28.0.2
MONGO_NETWORK_ADDRESS=172.28.0.3
REDIS_NETWORK_ADDRESS=172.28.0.4
KAFKA_NETWORK_ADDRESS=172.28.0.5
ZOOKEEPER_NETWORK_ADDRESS=172.28.0.6
MINIO_NETWORK_ADDRESS=172.28.0.7
OPENIM_WEB_NETWORK_ADDRESS=172.28.0.8
OPENIM_SERVER_NETWORK_ADDRESS=172.28.0.9
OPENIM_CHAT_NETWORK_ADDRESS=172.28.0.10
PROMETHEUS_NETWORK_ADDRESS=172.28.0.11
GRAFANA_NETWORK_ADDRESS=172.28.0.12
NODE_EXPORTER_NETWORK_ADDRESS=172.28.0.13
OPENIM_ADMIN_FRONT_NETWORK_ADDRESS=172.28.0.14
ALERT_MANAGER_NETWORK_ADDRESS=172.28.0.15

# ===============================================
# = Component Extension Configuration =
# ===============================================

# ============ Component Extension Configuration ==========
# ----- ZooKeeper Configuration -----
# Address or hostname for the ZooKeeper service.
# Default: ZOOKEEPER_ADDRESS=172.28.0.1
ZOOKEEPER_ADDRESS=172.28.0.6

# Port for ZooKeeper service.
# Default: ZOOKEEPER_PORT=12181
ZOOKEEPER_PORT=12181

# ----- MySQL Configuration -----

# Address or hostname for the MySQL service.
# Default: MYSQL_ADDRESS=172.28.0.1
MYSQL_ADDRESS=172.28.0.2

# Port on which MySQL database service is running.
# Default: MYSQL_PORT=13306
MYSQL_PORT=13306

# Password to authenticate with the MySQL database service.
# Default: MYSQL_PASSWORD=openIM123
MYSQL_PASSWORD=openIM123

# ----- MongoDB Configuration -----
# Address or hostname for the MongoDB service.
# Default: MONGO_ADDRESS=172.28.0.1
MONGO_ADDRESS=172.28.0.3

# Port on which MongoDB service is running.
# Default: MONGO_PORT=37017
MONGO_PORT=37017

# Username to authenticate with the MongoDB service.
# Default: MONGO_USERNAME=root
MONGO_USERNAME=root

# Password to authenticate with the MongoDB service.
# Default: MONGO_PASSWORD=openIM123
MONGO_PASSWORD=openIM123

# Name of the database in MongoDB to be used.
# Default: MONGO_DATABASE=openIM_v3
MONGO_DATABASE=openIM_v3

# ----- Redis Configuration -----
# Address or hostname for the Redis service.
# Default: REDIS_ADDRESS=172.28.0.1
REDIS_ADDRESS=172.28.0.4

# Port on which Redis in-memory data structure store is running.
# Default: REDIS_PORT=16379
REDIS_PORT=16379

# Password to authenticate with the Redis service.
# Default: REDIS_PASSWORD=openIM123
REDIS_PASSWORD=openIM123

# ----- Kafka Configuration -----
# Address or hostname for the Kafka service.
# Default: KAFKA_ADDRESS=172.28.0.1
KAFKA_ADDRESS=172.28.0.5

# Port on which Kafka distributed streaming platform is running.
# Default: KAFKA_PORT=19092
KAFKA_PORT=19094

# Topic in Kafka for storing the latest messages in Redis.
# Default: KAFKA_LATESTMSG_REDIS_TOPIC=latestMsgToRedis
KAFKA_LATESTMSG_REDIS_TOPIC=latestMsgToRedis

# Topic in Kafka for pushing messages (e.g. notifications or updates).
# Default: KAFKA_MSG_PUSH_TOPIC=msgToPush
KAFKA_MSG_PUSH_TOPIC=msgToPush

# Topic in Kafka for storing offline messages in MongoDB.
# Default: KAFKA_OFFLINEMSG_MONGO_TOPIC=offlineMsgToMongoMysql
KAFKA_OFFLINEMSG_MONGO_TOPIC=offlineMsgToMongoMysql

# ----- MinIO Configuration ----
# Address or hostname for the MinIO object storage service.
# Default: MINIO_ADDRESS=172.28.0.1
MINIO_ADDRESS=172.28.0.7

# Port on which MinIO object storage service is running.
# Default: MINIO_PORT=10005
MINIO_PORT=10005

# Access key to authenticate with the MinIO service.
# Default: MINIO_ACCESS_KEY=root
MINIO_ACCESS_KEY=root

# Secret key corresponding to the access key for MinIO authentication.
# Default: MINIO_SECRET_KEY=openIM123
MINIO_SECRET_KEY=openIM123

# ----- Prometheus Configuration -----
# Address or hostname for the Prometheus service.
# Default: PROMETHEUS_ADDRESS=172.28.0.1
PROMETHEUS_ADDRESS=172.28.0.11

# Port on which Prometheus service is running.
# Default: PROMETHEUS_PORT=19090
PROMETHEUS_PORT=19090

# ----- Grafana Configuration -----
# Address or hostname for the Grafana service.
# Default: GRAFANA_ADDRESS=172.28.0.1
GRAFANA_ADDRESS=172.28.0.12

# Port on which Grafana service is running.
# Default: GRAFANA_PORT=13000
GRAFANA_PORT=13000

# ======================================
# ============ OpenIM Web ===============
# ======================================

# Path to the OpenIM web distribution.
# Default: OPENIM_WEB_DIST_PATH=/app/dist
OPENIM_WEB_DIST_PATH=/app/dist

# Port on which OpenIM web service is running.
# Default: OPENIM_WEB_PORT=11001
OPENIM_WEB_PORT=11001

# Address or hostname for the OpenIM web service.
# Default: OPENIM_WEB_ADDRESS=172.28.0.1
OPENIM_WEB_ADDRESS=172.28.0.8

# ======================================
# ========= OpenIM Server ==============
# ======================================

# Address or hostname for the OpenIM server.
# Default: OPENIM_SERVER_ADDRESS=172.28.0.1
OPENIM_SERVER_ADDRESS=172.28.0.9

# Port for the OpenIM WebSockets.
# Default: OPENIM_WS_PORT=10001
OPENIM_WS_PORT=10001

# Port for the OpenIM API.
# Default: API_OPENIM_PORT=10002
API_OPENIM_PORT=10002

# ======================================
# ========== OpenIM Chat ===============
# ======================================

# Branch name for OpenIM chat.
# Default: CHAT_BRANCH=main
CHAT_BRANCH=main

# Address or hostname for the OpenIM chat service.
# Default: OPENIM_CHAT_ADDRESS=172.28.0.1
OPENIM_CHAT_ADDRESS=172.28.0.10

# Port for the OpenIM chat API.
# Default: OPENIM_CHAT_API_PORT=10008
OPENIM_CHAT_API_PORT=10008

# Directory path for storing data files or related information for OpenIM chat.
# Default: OPENIM_CHAT_DATA_DIR=./openim-chat/main
OPENIM_CHAT_DATA_DIR=./openim-chat/main

# ======================================
# ========== OpenIM Admin ==============
# ======================================

# Branch name for OpenIM server.
# Default: SERVER_BRANCH=main
SERVER_BRANCH=main

# Port for the OpenIM admin API.
# Default: OPENIM_ADMIN_API_PORT=10009
OPENIM_ADMIN_API_PORT=10009

# Port for the node exporter.
# Default: NODE_EXPORTER_PORT=19100
NODE_EXPORTER_PORT=19100

# Port for the prometheus.
# Default: PROMETHEUS_PORT=19090
PROMETHEUS_PORT=19090

# Port for the grafana.
# Default: GRAFANA_PORT=13000
GRAFANA_PORT=13000

# Port for the admin front.
# Default: OPENIM_ADMIN_FRONT_PORT=11002
OPENIM_ADMIN_FRONT_PORT=11002

# Port for the alertmanager.
# Default: ALERT_MANAGER_PORT=19093
ALERT_MANAGER_PORT=19093

config/config.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
# -----------------------------------------------------------------

envs:
  discovery: zookeeper

###################### Zookeeper ######################
# Zookeeper configuration
# It's not recommended to modify the schema
#
# Zookeeper address
# Zookeeper username
# Zookeeper password
zookeeper:
  schema: openim
  address: [ 0.0.0.0: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: [ 0.0.0.0: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: [ 0.0.0.0: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: [ 0.0.0.0: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: [ 0.0.0.0: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: "https://chatadmin.test.jsfw666.com/v1/api"
  minio:
    bucket: "openim"
    endpoint: "http://172.28.0.1:10005"
    accessKeyID: "root"
    secretAccessKey: "openIM123"
    sessionToken: ''
    signEndpoint: "https://chatadmin.test.jsfw666.com/v1/file"
    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:
    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
eugene710899989 commented 10 months ago

h5 url

https://chath5.test.jsfw666.com/#/chat

api url

https://chatadmin.test.jsfw666.com/v1/api

skiffer-git commented 10 months ago

Refer to our configuration and try again

skiffer-git commented 10 months ago

https://docs.openim.io/guides/gettingStarted/nginxDomainConfig