diff --git a/.goreleaser.yaml b/.goreleaser.yaml
index cbb9ba483..996a53745 100644
--- a/.goreleaser.yaml
+++ b/.goreleaser.yaml
@@ -343,11 +343,11 @@ dockers:
use: buildx
build_flag_templates:
- "--pull"
- - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/goreleaser/goreleaser/main/README.md"
- - "--label=io.artifacthub.package.logo-url=https://goreleaser.com/static/avatar.png"
- - '--label=io.artifacthub.package.maintainers=[{"name":"Carlos Alexandro Becker","email":"carlos@carlosbecker.dev"}]'
- - "--label=io.artifacthub.package.license=MIT"
- - "--label=org.opencontainers.image.description=Deliver Go binaries as fast and easily as possible"
+ - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/Open-IM-Server/main/README.md"
+ - "--label=io.artifacthub.package.logo-url=hhttps://github.com/OpenIMSDK/Open-IM-Server/blob/main/assets/logo/openim-logo-green.png"
+ - '--label=io.artifacthub.package.maintainers=[{"name":"Xinwei Xiong","email":"3293172751nss@gmail.com"}]'
+ - "--label=io.artifacthub.package.license=Apace-2.0"
+ - "--label=org.opencontainers.image.description=OpenIM Open source top instant messaging system"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.name={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
@@ -363,11 +363,11 @@ dockers:
use: buildx
build_flag_templates:
- "--pull"
- - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/goreleaser/goreleaser/main/README.md"
- - "--label=io.artifacthub.package.logo-url=https://goreleaser.com/static/avatar.png"
- - '--label=io.artifacthub.package.maintainers=[{"name":"Carlos Alexandro Becker","email":"carlos@carlosbecker.dev"}]'
- - "--label=io.artifacthub.package.license=MIT"
- - "--label=org.opencontainers.image.description=Deliver Go binaries as fast and easily as possible"
+ - "--label=io.artifacthub.package.readme-url=https://raw.githubusercontent.com/OpenIMSDK/Open-IM-Server/main/README.md"
+ - "--label=io.artifacthub.package.logo-url=hhttps://github.com/OpenIMSDK/Open-IM-Server/blob/main/assets/logo/openim-logo-green.png"
+ - '--label=io.artifacthub.package.maintainers=[{"name":"Xinwei Xiong","email":"3293172751nss@gmail.com"}]'
+ - "--label=io.artifacthub.package.license=Apace-2.0"
+ - "--label=org.opencontainers.image.description=OpenIM Open source top instant messaging system"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.name={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
@@ -505,19 +505,16 @@ release:
- ## Contact Us
+ ## Get Involved with OpenIM!
- We value close connections with our users, developers, and contributors here at OpenIMSDK. With a large community and maintainer team, we're always here to help and support you. Whether you're looking to join our community or have any questions or suggestions, we welcome you to get in touch with us.
+ **Here are some ways to get involved with the OpenIM community:**
- Our most recommended way to get in touch is through [Slack](https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg). Even if you're in China, Slack is usually not blocked by firewalls, making it an easy way to connect with us. Our Slack community is the ideal place to discuss and share ideas and suggestions with other users and developers of OpenIMSDK. You can ask technical questions, seek help, or share your experiences with other users of OpenIMSDK.
+ 📢 **Slack Channel**: Join our Slack channels for discussions, communication, and support. Click [here](https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg) to join the Open-IM-Server Slack team channel.
- In [OpenIM community is recruiting new members! discussion](https://github.com/orgs/OpenIMSDK/discussions/426) please leave your information, convenient we will better developers around the small gift to send to your hands.
+ 📧 **Gmail Contact**: If you have any questions, suggestions, or feedback for our open-source projects, please feel free to [contact us via email](https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=winxu81@gmail.com).
- In addition to Slack, we also offer the following ways to get in touch:
+ 📖 **Blog**: Stay up-to-date with OpenIM-Server projects and trends by reading our [blog](https://doc.rentsoft.cn/). We share the latest developments, tech trends, and other interesting information related to OpenIM.
- +
: We also have Slack channels for you to communicate and discuss. To join, visit https://slack.com/ and join our [👀 Open-IM-Server slack](https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg) team channel.
- +
: Get in touch with us on [Gmail](winxu81@gmail.com). If you have any questions or issues that need resolving, or any suggestions and feedback for our open source projects, please feel free to contact us via email.
- +
: Read our [blog](https://doc.rentsoft.cn/). Our blog is a great place to stay up-to-date with Open-IM-Server projects and trends. On the blog, we share our latest developments, tech trends, and other interesting information.
- +
: Add [Wechat](https://github.com/OpenIMSDK/OpenIM-Docs/blob/main/docs/images/WechatIMG20.jpeg) and indicate that you are a user or developer of Open-IM-Server. We will process your request as soon as possible.
+ 📱 **WeChat**: Add us on WeChat (QR Code) and indicate that you are a user or developer of Open-IM-Server. We'll process your request as soon as possible.
- Whether you're looking to join our community or have any questions or suggestions, we welcome you to get in touch with us.
+ Remember, your contributions play a vital role in making OpenIM successful, and we look forward to your active participation in our community! 🙌
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 74e183543..de6570dd9 100644
--- a/Makefile
+++ b/Makefile
@@ -68,6 +68,11 @@ multiarch:
install:
@$(MAKE) go.install
+## check: Check OpenIM deployment ✨
+.PHONY: check
+check:
+ @$(MAKE) go.check
+
## tidy: tidy go.mod ✨
.PHONY: tidy
tidy:
@@ -176,6 +181,11 @@ verify-copyright:
add-copyright:
@$(MAKE) copyright.add
+## advertise: Project introduction, become a contributor ✨
+.PHONY: advertise
+advertise:
+ @$(MAKE) copyright.advertise
+
## release: release the project ✨
.PHONY: release
release: release.verify release.ensure-tag
diff --git a/config/config.yaml b/config/config.yaml
index 1c01031dc..938fa55c3 100644
--- a/config/config.yaml
+++ b/config/config.yaml
@@ -24,8 +24,8 @@ zookeeper:
mysql:
address: [ 127.0.0.1:13306 ] #目前仅支持单机
- username: root #用户名
- password: openIM123 #密码
+ username: root
+ password: openIM123
database: openIM_v3 #不建议修改
maxOpenConn: 1000 #最大连接数
maxIdleConn: 100 #最大空闲连接数
@@ -37,14 +37,14 @@ mongo:
uri: #不为空则直接使用该值
address: [ 127.0.0.1:37017 ] #单机时为mongo地址,使用分片集群时,为mongos地址
database: openIM_v3 #mongo db 默认即可
- username: root #用户名
- password: openIM123 #密码
+ username: root
+ password: openIM123
maxPoolSize: 100
redis:
address: [ 127.0.0.1:16379 ] #
username: #only redis version 6.0+ need username
- password: openIM123 #密码
+ password: openIM123
kafka:
username: #用户名
@@ -74,12 +74,12 @@ api:
object:
enable: "minio" #使用minio
- apiURL: "http://127.0.0.1:10002/object/" #地址需要app能访问到
+ apiURL: http://116.30.3.80:10002/object/
minio:
bucket: "openim" #不建议修改
- endpoint: "http://127.0.0.1:10005" #minio对外服务的ip和端口,app要能访问此ip和端口
- accessKeyID: "root" #ID
- secretAccessKey: "openIM123" #秘钥
+ endpoint: http://116.30.3.80:10005
+ accessKeyID: root
+ secretAccessKey: openIM123
sessionToken: "" #token
cos: #tencent cos
bucketURL: "https://temp-1252357374.cos.ap-chengdu.myqcloud.com"
@@ -90,7 +90,7 @@ object:
endpoint: "https://oss-cn-chengdu.aliyuncs.com"
bucket: "demo-9999999"
bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com"
- accessKeyID: ""
+ accessKeyID: root
accessKeySecret: ""
sessionToken: ""
@@ -167,7 +167,7 @@ retainChatRecords: 365 #mongo保存离线消息
chatRecordsClearTime: "0 2 * * 3" #每周三凌晨2点清理mongo中的过期(超过retainChatRecords时间)消息,这个删除是为了清理满足上个配置retainChatRecords的过期消息,不会发送通知,仅仅作为清理磁盘使用
msgDestructTime: "0 2 * * *" #消息自动删除时间,每天凌晨2点删除过期消息,这个删除是为了删除保留时间超过超过会话字段msg_destruct_time(秒)的消息。
-secret: tuoyun #秘钥,获取token时校验
+secret: openIM123
tokenPolicy:
expire: 90 #过期时间(天)
diff --git a/install.sh b/install.sh
new file mode 100755
index 000000000..23ad7363c
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,216 @@
+#!/bin/bash
+
+# Check if the script is run as root
+if [ "$EUID" -ne 0 ]; then
+ echo "Please run the script as root or use sudo."
+ exit
+fi
+
+set -e
+set -o pipefail
+set -o noglob
+
+# Color definitions
+openim_color() {
+ BLACK_PREFIX="\033[30m" # Black prefix
+ RED_PREFIX="\033[31m" # Red prefix
+ GREEN_PREFIX="\033[32m" # Green prefix
+ YELLOW_PREFIX="\033[33m" # Yellow prefix
+ BLUE_PREFIX="\033[34m" # Blue prefix
+ SKY_BLUE_PREFIX="\033[36m" # Sky blue prefix
+ WHITE_PREFIX="\033[37m" # White prefix
+ BOLD_PREFIX="\033[1m" # Bold prefix
+ UNDERLINE_PREFIX="\033[4m" # Underline prefix
+ ITALIC_PREFIX="\033[3m" # Italic prefix
+}
+
+
+print_with_delay() {
+ text="$1"
+ delay="$2"
+
+ for i in $(seq 0 $((${#text}-1))); do
+ printf "${text:$i:1}"
+ sleep $delay
+ done
+ printf "\n"
+}
+
+print_progress() {
+ total="$1"
+ delay="$2"
+
+ printf "["
+ for i in $(seq 1 $total); do
+ printf "#"
+ sleep $delay
+ done
+ printf "]\n"
+}
+
+############### OpenIM Github ###############
+# ... rest of the script ...
+
+# OpenKF Repo
+OWNER="OpenIMSDK"
+REPO="Open-IM-Server"
+
+# Update your Go version here
+GO_VERSION="1.18"
+
+# --- helper functions for logs ---
+info()
+{
+ echo -e "[${GREEN_PREFIX}INFO${COLOR_SUFFIX}] " "$@"
+}
+warn()
+{
+ echo -e "[${YELLOW_PREFIX}WARN${COLOR_SUFFIX}] " "$@" >&2
+}
+fatal()
+{
+ echo -e "[${RED_PREFIX}ERROR${COLOR_SUFFIX}] " "$@" >&2
+ exit 1
+}
+
+# Function to download and install Go if it's not already installed
+install_go() {
+ command -v go >/dev/null 2>&1
+ if [[ $? -ne 0 ]]; then
+ warn "Go is not installed. Installing now..."
+ curl -LO "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz"
+ if [ $? -ne 0 ]; then
+ fatal "Download failed! Please check your network connectivity."
+ fi
+ sudo tar -C /usr/local -xzf "go${GO_VERSION}.linux-amd64.tar.gz"
+ echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
+ source ~/.bashrc
+ info "Go has been installed successfully."
+ else
+ info "Go is already installed."
+ fi
+}
+
+# Function for colored echo
+color_echo() {
+ COLOR=$1
+ shift
+ echo -e "${COLOR}===========> $* ${COLOR_SUFFIX}"
+}
+
+# Function to update and install necessary tools
+install_tools() {
+ local tools=("git" "make" "jq" "docker" "docker-compose")
+ local install_cmd update_cmd os
+
+ if grep -qEi "debian|buntu|mint" /etc/os-release; then
+ os="Ubuntu"
+ install_cmd="sudo apt install -y"
+ update_cmd="sudo apt update"
+ elif grep -qEi "fedora|rhel" /etc/os-release; then
+ os="CentOS"
+ install_cmd="sudo yum install -y"
+ update_cmd="sudo yum update"
+ else
+ fatal "Unsupported OS, please use Ubuntu or CentOS."
+ fi
+
+ info "Detected OS: $os"
+ info "Updating system package repositories..."
+ $update_cmd
+
+ for tool in "${tools[@]}"; do
+ if ! command -v $tool &> /dev/null; then
+ warn "$tool is not installed. Installing now..."
+ $install_cmd $tool
+ info "$tool has been installed successfully."
+ else
+ info "$tool is already installed."
+ fi
+ done
+}
+
+############### OpenIM LOGO ###############
+# Set text color to cyan for header and URL
+
+openim_logo() {
+ echo -e "\033[0;36m"
+
+ # Display fancy ASCII Art logo
+ print_with_delay '
+##########################################################################
+ ____ _ _
+ / __ \ (_) |
+ | | | |_ __ ___ _ __ _| |_ _ _ _ __ ___ _ __
+ | | | | '"'"'_ \ / _ \| '"'"'__| | __| | | | '"'"'_ ` _ \| '"'"'_ \
+ | |__| | |_) | (_) | | | | |_| |_| | | | | | | |_) |
+ \____/| .__/ \___/|_| |_|\__|\__,_|_| |_| |_| .__/
+ | | | |
+ |_| |_|
+##########################################################################
+ ' 0.01
+
+ # Display product URL
+ print_with_delay "Discover more and contribute at: https://github.com/OpenIMSDK/Open-IM-Server" 0.01
+
+ # Reset text color back to normal
+ echo -e "\033[0m"
+
+ # Set text color to green for product description
+ echo -e "\033[1;32m"
+
+ print_with_delay "Open-IM-Server: Reinventing Instant Messaging" 0.01
+ print_progress 50 0.02
+
+ print_with_delay "Open-IM-Server is not just a product; it's a revolution. It's about bringing the power of seamless, real-time messaging to your fingertips. And it's about joining a global community of developers, dedicated to pushing the boundaries of what's possible." 0.01
+
+ print_progress 50 0.02
+
+ # Reset text color back to normal
+ echo -e "\033[0m"
+
+ # Set text color to yellow for the Slack link
+ echo -e "\033[1;33m"
+
+ print_with_delay "Join our developer community on Slack: https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg" 0.01
+
+ # Reset text color back to normal
+ echo -e "\033[0m"
+}
+
+# Main function to run the script
+main() {
+ openim_color
+
+ install_tools
+ install_go
+
+ LATEST_TAG=$(curl -s "https://api.github.com/repos/$OWNER/$REPO/tags" | jq -r '.[0].name')
+ MODIFIED_TAG=$(echo $LATEST_TAG | sed -r 's/(v3\.0\.)[1-9][0-9]*$/\10/g')
+ TARBALL_URL="https://github.com/$OWNER/$REPO/archive/refs/tags/$MODIFIED_TAG.tar.gz"
+
+ color_echo ${GREEN_PREFIX} "Starting the OpenIM automated one-click deployment script."
+
+ color_echo ${GREEN_PREFIX} "Downloading OpenIM source code from $TARBALL_URL"
+ curl -L -o "${MODIFIED_TAG}.tar.gz" $TARBALL_URL
+ tar -xzvf "${MODIFIED_TAG}.tar.gz"
+ cd "$REPO-$MODIFIED_TAG"
+
+ openim_logo
+
+ info "Source code downloaded and extracted to $REPO-$MODIFIED_TAG"
+
+ # Add the logic to modify .env based on user input here
+
+ warn "This command can only be executed once. It will modify the component passwords in docker-compose based on the PASSWORD variable in .env, and modify the component passwords in config/config.yaml. If the password in .env changes, you need to first execute docker-compose down; rm components -rf and then execute this command."
+
+ color_echo ${GREEN_PREFIX} "Installing OpenIM"
+ make --debug -j install V=1
+
+ color_echo ${GREEN_PREFIX} "Checking installation"
+ make --debug check
+
+ color_echo ${GREEN_PREFIX} "OpenIM installation completed successfully. Happy chatting!"
+}
+
+main "$@"
\ No newline at end of file
diff --git a/scripts/advertise.sh b/scripts/advertise.sh
new file mode 100755
index 000000000..c1cd63f56
--- /dev/null
+++ b/scripts/advertise.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+
+set -e
+set -o pipefail
+
+trap 'echo "Script interrupted."; exit 1' INT
+
+# Function for colored echo
+function color_echo() {
+ COLOR=$1
+ shift
+ echo -e "${COLOR}===> $* ${COLOR_SUFFIX}"
+}
+
+# Color definitions
+function openim_color() {
+ COLOR_SUFFIX="\033[0m" # End all colors and special effects
+
+ BLACK_PREFIX="\033[30m" # Black prefix
+ RED_PREFIX="\033[31m" # Red prefix
+ GREEN_PREFIX="\033[32m" # Green prefix
+ YELLOW_PREFIX="\033[33m" # Yellow prefix
+ BLUE_PREFIX="\033[34m" # Blue prefix
+ SKY_BLUE_PREFIX="\033[36m" # Sky blue prefix
+ WHITE_PREFIX="\033[37m" # White prefix
+ BOLD_PREFIX="\033[1m" # Bold prefix
+ UNDERLINE_PREFIX="\033[4m" # Underline prefix
+ ITALIC_PREFIX="\033[3m" # Italic prefix
+
+ CYAN_PREFIX="\033[0;36m" # Cyan prefix
+}
+
+function print_with_delay() {
+ text="$1"
+ delay="$2"
+ color="$3"
+
+ for i in $(seq 0 $((${#text}-1))); do
+ printf "${color}${text:$i:1}${COLOR_SUFFIX}"
+ sleep $delay
+ done
+ printf "\n"
+}
+
+function print_progress() {
+ total="$1"
+ delay="$2"
+ color="$3"
+
+ printf "${color}["
+ for i in $(seq 1 $total); do
+ printf "#"
+ sleep $delay
+ done
+ printf "]${COLOR_SUFFIX}\n"
+}
+function openim_logo() {
+ # Set text color to cyan for header and URL
+ echo -e "\033[0;36m"
+
+ # Display fancy ASCII Art logo
+ # look http://patorjk.com/software/taag/#p=display&h=1&v=1&f=Doh&t=OpenIM
+ print_with_delay '
+
+
+ OOOOOOOOO IIIIIIIIIIMMMMMMMM MMMMMMMM
+ OO:::::::::OO I::::::::IM:::::::M M:::::::M
+ OO:::::::::::::OO I::::::::IM::::::::M M::::::::M
+O:::::::OOO:::::::O II::::::IIM:::::::::M M:::::::::M
+O::::::O O::::::Oppppp ppppppppp eeeeeeeeeeee nnnn nnnnnnnn I::::I M::::::::::M M::::::::::M
+O:::::O O:::::Op::::ppp:::::::::p ee::::::::::::ee n:::nn::::::::nn I::::I M:::::::::::M M:::::::::::M
+O:::::O O:::::Op:::::::::::::::::p e::::::eeeee:::::een::::::::::::::nn I::::I M:::::::M::::M M::::M:::::::M
+O:::::O O:::::Opp::::::ppppp::::::pe::::::e e:::::enn:::::::::::::::n I::::I M::::::M M::::M M::::M M::::::M
+O:::::O O:::::O p:::::p p:::::pe:::::::eeeee::::::e n:::::nnnn:::::n I::::I M::::::M M::::M::::M M::::::M
+O:::::O O:::::O p:::::p p:::::pe:::::::::::::::::e n::::n n::::n I::::I M::::::M M:::::::M M::::::M
+O:::::O O:::::O p:::::p p:::::pe::::::eeeeeeeeeee n::::n n::::n I::::I M::::::M M:::::M M::::::M
+O::::::O O::::::O p:::::p p::::::pe:::::::e n::::n n::::n I::::I M::::::M MMMMM M::::::M
+O:::::::OOO:::::::O p:::::ppppp:::::::pe::::::::e n::::n n::::nII::::::IIM::::::M M::::::M
+ OO:::::::::::::OO p::::::::::::::::p e::::::::eeeeeeee n::::n n::::nI::::::::IM::::::M M::::::M
+ OO:::::::::OO p::::::::::::::pp ee:::::::::::::e n::::n n::::nI::::::::IM::::::M M::::::M
+ OOOOOOOOO p::::::pppppppp eeeeeeeeeeeeee nnnnnn nnnnnnIIIIIIIIIIMMMMMMMM MMMMMMMM
+ p:::::p
+ p:::::p
+ p:::::::p
+ p:::::::p
+ p:::::::p
+ ppppppppp
+
+ ' 0.0001
+
+ # Display product URL
+ print_with_delay "Discover more and contribute at: https://github.com/OpenIMSDK/Open-IM-Server" 0.01
+
+ # Reset text color back to normal
+ echo -e "\033[0m"
+
+ # Set text color to green for product description
+ echo -e "\033[1;32m"
+
+ print_with_delay "Open-IM-Server: Reinventing Instant Messaging" 0.01
+ print_progress 50 0.02
+
+ print_with_delay "Open-IM-Server is not just a product; it's a revolution. It's about bringing the power of seamless, real-time messaging to your fingertips. And it's about joining a global community of developers, dedicated to pushing the boundaries of what's possible." 0.01
+
+ print_progress 50 0.02
+
+ # Reset text color back to normal
+ echo -e "\033[0m"
+
+ # Set text color to yellow for the Slack link
+ echo -e "\033[1;33m"
+
+ print_with_delay "Join our developer community on Slack: https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg" 0.01
+
+ # Reset text color back to normal
+ echo -e "\033[0m"
+}
+
+function main() {
+ openim_logo
+}
+main "$@"
diff --git a/scripts/make-rules/copyright.mk b/scripts/make-rules/copyright.mk
index 319e46945..2b7a04082 100644
--- a/scripts/make-rules/copyright.mk
+++ b/scripts/make-rules/copyright.mk
@@ -51,6 +51,12 @@ copyright.add: tools.verify.addlicense
# -y string
# copyright year(s) (default "2023")
+## copyright.advertise: Advertise the license of the project
+.PHONY: copyright.advertise
+copyright.advertise:
+ @chmod +x $(ROOT_DIR)/scripts/advertise.sh
+ @$(ROOT_DIR)/scripts/advertise.sh
+
## copyright.help: Show copyright help
.PHONY: copyright.help
copyright.help: scripts/make-rules/copyright.mk
diff --git a/scripts/make-rules/golang.mk b/scripts/make-rules/golang.mk
index 282649d7e..00e0fee47 100644
--- a/scripts/make-rules/golang.mk
+++ b/scripts/make-rules/golang.mk
@@ -137,6 +137,12 @@ go.install:
@echo "===========> Installing deployment openim"
@$(ROOT_DIR)/scripts/install_im_server.sh
+## go.check: Check OpenIM deployment
+.PHONY: go.check
+go.check:
+ @echo "===========> Checking OpenIM deployment"
+ @$(ROOT_DIR)/scripts/check_all.sh
+
## go.multiarch: Build multi-arch binaries
.PHONY: go.build.multiarch
go.build.multiarch: go.build.verify $(foreach p,$(PLATFORMS),$(addprefix go.build., $(addprefix $(p)., $(BINS))))
diff --git a/scripts/style_info.sh b/scripts/style_info.sh
index 3c747dd0c..b56eceeff 100755
--- a/scripts/style_info.sh
+++ b/scripts/style_info.sh
@@ -28,6 +28,8 @@ BOLD_PREFIX="\033[1m" # Bold prefix
UNDERLINE_PREFIX="\033[4m" # Underline prefix
ITALIC_PREFIX="\033[3m" # Italic prefix
+CYAN_PREFIX="033[0;36m" # Cyan prefix
+
BACKGROUND_BLACK="\033[40m" # Black background
BACKGROUND_RED="\033[41m" # Red background
BACKGROUND_GREEN="\033[42m" # Green background