diff --git a/.dockerignore b/.dockerignore index 4a1f3d17f..d2e7354f5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,7 +4,7 @@ .dockerignore # Ignore build artifacts -# _output/ +_output/ logs/ # Ignore non-essential documentation diff --git a/.env b/.env index d294abf97..bce561d92 100644 --- a/.env +++ b/.env @@ -15,5 +15,5 @@ USER=root PASSWORD=openIM123 MINIO_ENDPOINT=http://127.0.0.1:10005 -API_URL=http://\;\;\ communications\ error\ to\ 216.239.36.10#53:\ timed\ out14.153.17.42:10002 -DATA_DIR=/root/workspaces/openim/openim-server +API_URL=http://127.0.0.1:10002 +DATA_DIR=./ \ No newline at end of file diff --git a/.github/sync-release.yml b/.github/sync-release.yml index c9891bfac..3800b4c24 100644 --- a/.github/sync-release.yml +++ b/.github/sync-release.yml @@ -1,3 +1,17 @@ +# 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. + OpenIMSDK/openim-docker: - source: ./config dest: ./openim-server/release/config diff --git a/Makefile b/Makefile index 7924599b4..e869ec111 100644 --- a/Makefile +++ b/Makefile @@ -58,6 +58,16 @@ export USAGE_OPTIONS init: @$(MAKE) gen.init +## init-githooks: Initialize git hooks ✨ +.PHONY: init-githooks +init-githooks: + @$(MAKE) gen.init-githooks + +## gen: Generate all necessary files. ✨ +.PHONY: gen +gen: + @$(MAKE) gen.run + ## demo: Run demo get started with Makefiles quickly ✨ .PHONY: demo demo: @@ -190,11 +200,6 @@ push.multiarch: tools: @$(MAKE) tools.install -## gen: Generate all necessary files. ✨ -.PHONY: gen -gen: - @$(MAKE) gen.run - ## swagger: Generate swagger document. ✨ .PHONY: swagger swagger: diff --git a/config/config.yaml b/config/config.yaml index c042bd3ff..c23b094ff 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -29,8 +29,8 @@ zookeeper: schema: openim address: [ 127.0.0.1:2181 ] - username: '' - password: '' + username: + password: ###################### Mysql ###################### # MySQL configuration @@ -60,7 +60,7 @@ mysql: # Default MongoDB database name # Maximum connection pool size mongo: - uri: '' + uri: address: [ 127.0.0.1:37017 ] database: openIM_v3 username: root @@ -73,7 +73,7 @@ mongo: # Username is required only for Redis version 6.0+ redis: address: [ 127.0.0.1:16379 ] - username: '' + username: password: openIM123 ###################### Kafka configuration information ###################### @@ -84,8 +84,8 @@ redis: # It's not recommended to modify this topic name # Consumer group ID, it's not recommended to modify kafka: - username: '' - password: '' + username: + password: addr: [ 127.0.0.1:9092 ] latestMsgToRedis: topic: "latestMsgToRedis" @@ -105,7 +105,7 @@ kafka: # 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: '' + registerIP: listenIP: 0.0.0.0 ###################### API configuration information ###################### @@ -132,27 +132,26 @@ api: # minio.signEndpoint is minio public network address object: enable: "minio" - apiURL: "http://14.153.17.42:10002" + apiURL: "http://127.0.0.1:10002" minio: bucket: "openim" endpoint: "http://127.0.0.1:10005" accessKeyID: "root" secretAccessKey: "openIM123" - sessionToken: '' - signEndpoint: "http://14.153.17.42:10005" + sessionToken: "" + signEndpoint: "http://127.0.0.1:10005" cos: - bucketURL: https://temp-1252357374.cos.ap-chengdu.myqcloud.com - secretID: '' - secretKey: '' - sessionToken: '' + 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: '' - accessKeySecret: '' - sessionToken: '' - + accessKeyID: "" + accessKeySecret: "" + sessionToken: "" ###################### RPC Port Configuration ###################### # RPC service ports @@ -194,11 +193,11 @@ rpcRegisterName: # Whether to output in json format # Whether to include stack trace in logs log: - storageLocation: /root/workspaces/openim/openim-server/logs/ + storageLocation: ../../../../../logs/ rotationTime: 24 remainRotationCount: 2 remainLogLevel: 6 - isStdout: false + isStdout: false isJson: false withStack: false diff --git a/pkg/common/kafka/util.go b/pkg/common/kafka/util.go index 9d5678648..cc3dc64c6 100644 --- a/pkg/common/kafka/util.go +++ b/pkg/common/kafka/util.go @@ -1,3 +1,17 @@ +// 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. + package kafka import ( diff --git a/pkg/common/tls/tls.go b/pkg/common/tls/tls.go index 5f84f87e3..c473ca573 100644 --- a/pkg/common/tls/tls.go +++ b/pkg/common/tls/tls.go @@ -1,3 +1,17 @@ +// 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. + package tls import ( diff --git a/scripts/build-all-service.sh b/scripts/build-all-service.sh index c7b84ec5d..c79018a87 100755 --- a/scripts/build-all-service.sh +++ b/scripts/build-all-service.sh @@ -20,7 +20,7 @@ # package, the build will produce executable files under $(OUT_DIR)/bin/platforms OR $(OUT_DIR)/bin—tools/platforms. # If not specified, "everything" will be built. # Usage: `scripts/build-all-service.sh`. -# Example: `hack/build-go.sh WHAT=cmd/kubelet`. +# Example: `scripts/build-go.sh WHAT=cmd/kubelet`. set -o errexit set -o nounset diff --git a/scripts/githooks/commit-msg b/scripts/githooks/commit-msg.sh similarity index 100% rename from scripts/githooks/commit-msg rename to scripts/githooks/commit-msg.sh diff --git a/scripts/githooks/pre-commit b/scripts/githooks/pre-commit.sh similarity index 100% rename from scripts/githooks/pre-commit rename to scripts/githooks/pre-commit.sh diff --git a/scripts/githooks/pre-push b/scripts/githooks/pre-push.sh similarity index 100% rename from scripts/githooks/pre-push rename to scripts/githooks/pre-push.sh diff --git a/scripts/init-githooks.sh b/scripts/init-githooks.sh new file mode 100755 index 000000000..9d1675c8e --- /dev/null +++ b/scripts/init-githooks.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash +# 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. +# +# ----------------------------------------------------------------------------- +# init-githooks.sh +# +# This script assists in managing Git hooks for the OpenIM project. +# When executed: +# 1. It prompts the user to enable git hooks. +# 2. If the user accepts, it copies predefined hook scripts to the appropriate +# Git directory, making them executable. +# 3. If requested, it can delete the added hooks. +# +# This script equal runs `make init-githooks` command. +# Usage: +# ./init-githooks.sh Prompt to enable git hooks. +# ./init-githooks.sh --delete Delete previously added git hooks. +# ./init-githooks.sh --help Show the help message. +# +# Example: `scripts/build-go.sh --help`. +# Documentation & related context can be found at: +# https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694 +# +# ----------------------------------------------------------------------------- + +OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. +HOOKS_DIR=".git/hooks" + +help_info() { + echo "Usage: $0 [options]" + echo + echo "This script helps to manage git hooks." + echo + echo "Options:" + echo " -h, --help Show this help message and exit." + echo " -d, --delete Delete the hooks that have been added." + echo " By default, it will prompt to enable git hooks." +} + +delete_hooks() { + for file in scripts/githooks/*.sh; do + hook_name=$(basename "$file" .sh) + rm -f "$HOOKS_DIR/$hook_name" + done + echo "Git hooks have been deleted." +} + +enable_hooks() { + echo "Would you like to enable git hooks mode? [y/n]" + read -r choice + + if [[ $choice == "y" || $choice == "Y" ]]; then + for file in scripts/githooks/*.sh; do + cp -f "$file" "$HOOKS_DIR/$(basename "$file" .sh)" + done + + chmod +x $HOOKS_DIR/* + + echo "Git hooks mode has been enabled." + echo "With git hooks enabled, every time you perform a git action (e.g. git commit), the corresponding hooks script will be triggered automatically." + echo "This means that if the size of the file you're committing exceeds the set limit (e.g. 42MB), the commit will be rejected." + else + echo "Git hooks mode remains disabled." + fi +} + +case "$1" in + -h|--help) + help_info + ;; + -d|--delete) + delete_hooks + ;; + *) + enable_hooks + ;; +esac \ No newline at end of file diff --git a/scripts/make-rules/common.mk b/scripts/make-rules/common.mk index 1473963df..f72d22f73 100644 --- a/scripts/make-rules/common.mk +++ b/scripts/make-rules/common.mk @@ -140,10 +140,6 @@ ifndef V MAKEFLAGS += --no-print-directory endif -# Copy githook scripts when execute makefile -# TODO! GIT_FILE_SIZE_LIMIT=42000000 git commit -m "This commit is allowed file sizes up to 42MB" -COPY_GITHOOK:=$(shell cp -f scripts/githooks/* .git/hooks/; chmod +x .git/hooks/*) - # COMMA: Concatenate multiple strings to form a list of strings COMMA := , # SPACE: Used to separate strings diff --git a/scripts/make-rules/gen.mk b/scripts/make-rules/gen.mk index 60bfdd47a..1671fafff 100644 --- a/scripts/make-rules/gen.mk +++ b/scripts/make-rules/gen.mk @@ -28,6 +28,12 @@ gen.init: @echo "===========> Initializing openim server project" @${ROOT_DIR}/scripts/init-config.sh +## gen.init-githooks: Initialize git hooks ✨ +.PHONY: gen.init-githooks +gen.init-githooks: + @echo "===========> Initializing git hooks" + @${ROOT_DIR}/scripts/init-githooks.sh + ## gen.run: Generate necessary files and docs ✨ .PHONY: gen.run #gen.run: gen.errcode gen.docgo diff --git a/tools/versionchecker/versionchecker.go b/tools/versionchecker/versionchecker.go index ac1b5d2c9..e7bc3e379 100644 --- a/tools/versionchecker/versionchecker.go +++ b/tools/versionchecker/versionchecker.go @@ -1,3 +1,17 @@ +// 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. + package main import (