# Copyright © 2024 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. # ----------------------------------------------------------------------------- # General Configuration # This section contains general configuration options for the entire environment. # These options can be set via environment variables. If both environment variables # and settings in this .env file exist, the environment variables take precedence. # ----------------------------------------------------------------------------- # ========================== # General Configuration # ========================== # These settings apply to the overall environment. # Data storage directory for persistent data. # Example: DATA_DIR=/path/to/data DATA_DIR=${DATA_DIR} # Docker image registry. Uncomment the preferred one. # Options: ghcr.io/openimsdk, openim, registry.cn-hangzhou.aliyuncs.com/openimsdk # IMAGE_REGISTRY="ghcr.io/openimsdk" # IMAGE_REGISTRY="openim" # IMAGE_REGISTRY="registry.cn-hangzhou.aliyuncs.com/openimsdk" IMAGE_REGISTRY=${IMAGE_REGISTRY} # ====================================== # ========= Network Configuration ====== # ====================================== # Subnet for the Docker network. # Default: DOCKER_BRIDGE_SUBNET=172.28.0.0/16 DOCKER_BRIDGE_SUBNET=${DOCKER_BRIDGE_SUBNET} # Set and specify the IP addresses of some containers. Generally speaking, # you do not need to modify these configurations to facilitate debugging DOCKER_BRIDGE_GATEWAY=${DOCKER_BRIDGE_GATEWAY} MONGO_NETWORK_ADDRESS=${MONGO_NETWORK_ADDRESS} REDIS_NETWORK_ADDRESS=${REDIS_NETWORK_ADDRESS} KAFKA_NETWORK_ADDRESS=${KAFKA_NETWORK_ADDRESS} ZOOKEEPER_NETWORK_ADDRESS=${ZOOKEEPER_NETWORK_ADDRESS} MINIO_NETWORK_ADDRESS=${MINIO_NETWORK_ADDRESS} OPENIM_WEB_NETWORK_ADDRESS=${OPENIM_WEB_NETWORK_ADDRESS} OPENIM_SERVER_NETWORK_ADDRESS=${OPENIM_SERVER_NETWORK_ADDRESS} OPENIM_CHAT_NETWORK_ADDRESS=${OPENIM_CHAT_NETWORK_ADDRESS} PROMETHEUS_NETWORK_ADDRESS=${PROMETHEUS_NETWORK_ADDRESS} GRAFANA_NETWORK_ADDRESS=${GRAFANA_NETWORK_ADDRESS} NODE_EXPORTER_NETWORK_ADDRESS=${NODE_EXPORTER_NETWORK_ADDRESS} OPENIM_ADMIN_FRONT_NETWORK_ADDRESS=${OPENIM_ADMIN_FRONT_NETWORK_ADDRESS} ALERT_MANAGER_NETWORK_ADDRESS=${ALERT_MANAGER_NETWORK_ADDRESS} # ============================================================================== # Configuration Update Instructions # ============================================================================== # This header outlines the methods to update common variables in config.yaml and .env files. # These instructions are vital for maintaining the OpenIM environment's configuration. # # METHOD 1: Regenerate All Configurations # ---------------------------------------- # Use this method to regenerate all configurations. # Steps: # 1. Delete existing config files: # - openim-server/config/config.yaml # - openim-chat/config/config.yaml # 2. Modify the .env file as required. # 3. Run 'docker compose up -d'. This will regenerate: # - config/config.yaml # # METHOD 2: Modify Individual Configuration Files # ----------------------------------------------- # Use this method to update specific configuration files. # Steps: # 1. Modify the .env file as necessary. # 2. Update the corresponding entries in: # - config/config.yaml # 3. Restart the services with 'docker compose up -d'. # 4. Special Note: If you modify OPENIM_IP, API_OPENIM_PORT, or MINIO_PORT in .env, # ensure to update the corresponding services and configurations accordingly. # # It is essential to follow these methods to ensure consistent and correct application behavior. # ============================================================================== # Local IP address of the service. Modify if necessary. # Example: OPENIM_IP=172.28.0.1, OPENIM_IP=${OPENIM_IP} # ----- ZooKeeper Configuration ----- # Port for ZooKeeper service. # Default: ZOOKEEPER_PORT=12181 ZOOKEEPER_PORT=${ZOOKEEPER_PORT} # MongoDB service port configuration. # Default: MONGO_PORT=37017 MONGO_PORT=${MONGO_PORT} # Password for MongoDB admin user. Used for service authentication. # Default: MONGO_PASSWORD=openIM123 MONGO_PASSWORD=${MONGO_PASSWORD} # Username for a regular OpenIM user in MongoDB. # Default: MONGO_OPENIM_USERNAME=openIM MONGO_OPENIM_USERNAME=${MONGO_OPENIM_USERNAME} # Password for a regular OpenIM user in MongoDB. # Default: MONGO_OPENIM_PASSWORD=openIM123456 MONGO_OPENIM_PASSWORD=${MONGO_OPENIM_PASSWORD} # Specifies the database name to be used within MongoDB. # Default: MONGO_DATABASE=openim_v3 MONGO_DATABASE=${MONGO_DATABASE} MONGO_MAX_POOL_SIZE=${MONGO_MAX_POOL_SIZE} # ----- Redis Configuration ----- # Port on which Redis in-memory data structure store is running. # Default: REDIS_PORT=16379 REDIS_PORT=${REDIS_PORT} # Password to authenticate with the Redis service. # Default: REDIS_PASSWORD=openIM123 REDIS_PASSWORD=${REDIS_PASSWORD} # Kafka username to authenticate with the Kafka service. # KAFKA_USERNAME=${KAFKA_USERNAME} # Port on which Kafka distributed streaming platform is running. # Default: KAFKA_PORT=19092 KAFKA_PORT=${KAFKA_PORT} # Topic in Kafka for storing the latest messages in Redis. # Default: KAFKA_LATESTMSG_REDIS_TOPIC=latestMsgToRedis KAFKA_LATESTMSG_REDIS_TOPIC=${KAFKA_LATESTMSG_REDIS_TOPIC} # MINIO_PORT # ---------- # MINIO_PORT sets the port for the MinIO object storage service. # Upon changing this port, the MinIO endpoint URLs in the config/config.yaml file must be updated # to reflect this change. The endpoints include both the 'endpoint' and 'signEndpoint' # under the MinIO configuration. # # Default: MINIO_PORT=10005 MINIO_PORT=${MINIO_PORT} # Access key to authenticate with the MinIO service. # Default: MINIO_ACCESS_KEY=root # MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY} # Secret key corresponding to the access key for MinIO authentication. # Default: MINIO_SECRET_KEY=openIM123 MINIO_SECRET_KEY=${MINIO_SECRET_KEY} # ----- Prometheus Configuration ----- # Port on which Prometheus service is running. # Default: PROMETHEUS_PORT=19090 PROMETHEUS_PORT=${PROMETHEUS_PORT} # ----- Grafana Configuration ----- # Port on which Grafana service is running. # Default: GRAFANA_PORT=13000 GRAFANA_PORT=${GRAFANA_PORT} # ====================================== # ============ OpenIM Web =============== # ====================================== # Port on which OpenIM web service is running. # Default: OPENIM_WEB_PORT=11001 OPENIM_WEB_PORT=${OPENIM_WEB_PORT} # ====================================== # ========= OpenIM Server ============== # ====================================== # Port for the OpenIM WebSockets. # Default: OPENIM_WS_PORT=10001 OPENIM_WS_PORT=${OPENIM_WS_PORT} # API_OPENIM_PORT # --------------- # This variable defines the port on which the OpenIM API service will listen. # When changing this port, it's essential to update the apiURL in the config.yaml file # to ensure the API service is accessible at the new port. # # Default: API_OPENIM_PORT=10002 API_OPENIM_PORT=${API_OPENIM_PORT} # ====================================== # ========== OpenIM Chat =============== # ====================================== # Branch name for OpenIM chat. # Default: CHAT_IMAGE_VERSION=main CHAT_IMAGE_VERSION=${CHAT_IMAGE_VERSION} # Port for the OpenIM chat API. # Default: OPENIM_CHAT_API_PORT=10008 OPENIM_CHAT_API_PORT=${OPENIM_CHAT_API_PORT} # Port for the OpenIM admin API. # Default: OPENIM_ADMIN_API_PORT=10009 OPENIM_ADMIN_API_PORT=${OPENIM_ADMIN_API_PORT} # ====================================== # ========== OpenIM Admin ============== # ====================================== # Branch name for OpenIM server. # Default: SERVER_IMAGE_VERSION=main SERVER_IMAGE_VERSION=${SERVER_IMAGE_VERSION} # Port for the node exporter. # Default: NODE_EXPORTER_PORT=19100 NODE_EXPORTER_PORT=${NODE_EXPORTER_PORT} # Port for the prometheus. # Default: PROMETHEUS_PORT=19090 PROMETHEUS_PORT=${PROMETHEUS_PORT} # Port for the grafana. # Default: GRAFANA_PORT=13000 GRAFANA_PORT=${GRAFANA_PORT} # Port for the admin front. # Default: OPENIM_ADMIN_FRONT_PORT=11002 OPENIM_ADMIN_FRONT_PORT=${OPENIM_ADMIN_FRONT_PORT} # Port for the alertmanager. # Default: ALERT_MANAGER_PORT=19093 ALERT_MANAGER_PORT=${ALERT_MANAGER_PORT}