-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Adjust configuration settings * Adjust configuration settings * Adjust configuration settings * refactor: webhooks update. * refactor: kafka update. * Simplify the Docker Compose configuration, remove unnecessary environment variables, and eliminate the gateway service. * refactor: kafka update. * refactor: kafka update. * Simplify the Docker Compose configuration, remove unnecessary environment variables, and eliminate the gateway service. * Simplify the Docker Compose configuration, remove unnecessary environment variables, and eliminate the gateway service. * Windows can compile and run. * Windows can compile and run. * refactor: kafka update. * feat: msg cache split * refactor: webhooks update * refactor: webhooks update * refactor: friends update * refactor: group update * refactor: third update * refactor: api update * refactor: crontab update * refactor: msggateway update * mage * mage * refactor: all module update. * check * refactor: all module update. * load config * load config * load config * load config * refactor: all module update. * refactor: all module update. * refactor: all module update. * refactor: all module update. * refactor: all module update. * Optimize Docker configuration and script. * refactor: all module update. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * refactor: all module update. * Optimize Docker configuration and script. * refactor: all module update. * refactor: all module update. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * update tools * update tools * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * update protocol * Optimize Docker configuration and script. * Optimize Docker configuration and script. * refactor: all module update. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * Optimize Docker configuration and script. * refactor: api remove token auth by redis directly. * Code Refactoring * refactor: websocket auth change to call rpc of auth. * refactor: kick online user and remove token change to call auth rpc. * refactor: kick online user and remove token change to call auth rpc. * refactor: remove msggateway redis. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor webhook * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor webhook * refactor: cmd update. * refactor: cmd update. * fix: runtime: goroutine stack exceeds * refactor: cmd update. * refactor notification * refactor notification * refactor * refactor: cmd update. * refactor: cmd update. * refactor * refactor * refactor * protojson * protojson * protojson * go mod * wrapperspb * refactor: cmd update. * refactor: cmd update. * refactor: cmd update. * refactor: context update. * refactor: websocket update info. * refactor: websocket update info. * refactor: websocket update info. * refactor: websocket update info. * refactor: api name change. * refactor: debug info. * refactor: debug info. * refactor: debug info. * fix: update file * refactor * refactor * refactor: debug info. * refactor: debug info. * refactor: debug info. * refactor: debug info. * refactor: debug info. * refactor: debug info. * fix: callback update. * fix: callback update. * refactor * fix: update message. * fix: msg cache timeout. * refactor * refactor * fix: push update. * fix: push update. * fix: push update. * fix: push update. * fix: push update. * fix: push update. * refactor * refactor * fix: push update. * fix: websocket handle error remove when upgrade error. * fix: priority url * fix: minio config * refactor: add zk logger. * refactor * fix: minio config * refactor * remove \r * remove \r * remove \r * remove \r * remove \r * remove \r * remove \r * remove \r * remove \r * remove \r * fix bug: get localIP * refactor * refactor * refactor * refactor: remove zk logger. * refactor: update tools version. * refactor * refactor: update server version to 3.7.0. * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor: zk log debug. * refactor: zk log debug. * refactor: zk log debug. * refactor: zk log debug. * refactor: zk log debug. * refactor * refactor * refactor * refactor: log level change. * refactor: 3.7.0 code conventions. --------- Co-authored-by: skiffer-git <[email protected]> Co-authored-by: withchao <[email protected]> Co-authored-by: root <[email protected]>
- Loading branch information
1 parent
42332cd
commit 4a38307
Showing
25 changed files
with
148 additions
and
97 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
*.sh text eol=lf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,49 @@ | ||
# Build Stage | ||
FROM golang:1.20 AS builder | ||
# Use Go 1.21 Alpine as the base image for building the application | ||
FROM golang:1.21-alpine as builder | ||
|
||
# Set go mod installation source and proxy | ||
ARG GO111MODULE=on | ||
# Define the base directory for the application as an environment variable | ||
ENV SERVER_DIR=/openim-server | ||
|
||
ENV GO111MODULE=$GO111MODULE | ||
ENV GOPROXY=$GOPROXY | ||
# Set the working directory inside the container based on the environment variable | ||
WORKDIR $SERVER_DIR | ||
|
||
# Set up the working directory | ||
WORKDIR /openim/openim-server | ||
# Set the Go proxy to improve dependency resolution speed | ||
ENV GOPROXY=https://goproxy.io,direct | ||
|
||
# Copy all files from the current directory into the container | ||
COPY . . | ||
|
||
# Copy all files to the container | ||
ADD . . | ||
RUN go mod download | ||
|
||
RUN make clean | ||
RUN make build | ||
# Install Mage to use for building the application | ||
RUN go install github.com/magefile/[email protected] | ||
|
||
FROM ghcr.io/openim-sigs/openim-ubuntu-image:latest | ||
# Optionally build your application if needed | ||
RUN mage build | ||
|
||
WORKDIR ${SERVER_WORKDIR} | ||
# Using Alpine Linux with Go environment for the final image | ||
FROM golang:1.21-alpine | ||
|
||
# Copy scripts and binary files to the production image | ||
COPY --from=builder ${OPENIM_SERVER_BINDIR} /openim/openim-server/_output/bin | ||
COPY --from=builder ${OPENIM_SERVER_CMDDIR} /openim/openim-server/scripts | ||
COPY --from=builder ${SERVER_WORKDIR}/config /openim/openim-server/config | ||
COPY --from=builder ${SERVER_WORKDIR}/deployments /openim/openim-server/deployments | ||
# Install necessary packages, such as bash | ||
RUN apk add --no-cache bash | ||
|
||
CMD ["/openim/openim-server/scripts/docker-start-all.sh"] | ||
# Set the environment and work directory | ||
ENV SERVER_DIR=/openim-server | ||
WORKDIR $SERVER_DIR | ||
|
||
|
||
# Copy the compiled binaries and mage from the builder image to the final image | ||
COPY --from=builder $SERVER_DIR/_output $SERVER_DIR/_output | ||
COPY --from=builder $SERVER_DIR/config $SERVER_DIR/config | ||
COPY --from=builder /go/bin/mage /usr/local/bin/mage | ||
COPY --from=builder $SERVER_DIR/magefile_windows.go $SERVER_DIR/ | ||
COPY --from=builder $SERVER_DIR/magefile_unix.go $SERVER_DIR/ | ||
COPY --from=builder $SERVER_DIR/magefile.go $SERVER_DIR/ | ||
COPY --from=builder $SERVER_DIR/start-config.yml $SERVER_DIR/ | ||
COPY --from=builder $SERVER_DIR/go.mod $SERVER_DIR/ | ||
COPY --from=builder $SERVER_DIR/go.sum $SERVER_DIR/ | ||
|
||
RUN go get github.com/openimsdk/[email protected] | ||
|
||
# Set the command to run when the container starts | ||
ENTRYPOINT ["sh", "-c", "mage start && tail -f /dev/null"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
--- | ||
title: 'OpenIM Configuration Files and Common Configuration Item Modifications Guide' | ||
|
||
## Configuration Files Explanation | ||
|
||
| Configuration File | Description | | ||
| ------------------------------- | ------------------------------------------------------------ | | ||
| **kafka.yml** | Configurations for Kafka username, password, address, etc. | | ||
| **redis.yml** | Configurations for Redis password, address, etc. | | ||
| **minio.yml** | Configurations for MinIO username, password, address, and external IP/domain; failing to modify external IP or domain may cause image file sending failures | | ||
| **zookeeper.yml** | Configurations for ZooKeeper user, password, address, etc. | | ||
| **mongodb.yml** | Configurations for MongoDB username, password, address, etc. | | ||
| **log.yml** | Configurations for log level and storage directory. | | ||
| **notification.yml** | Configurations for events like adding friends, creating groups, etc. | | ||
| **share.yml** | Common configurations needed by various OpenIM services, such as secret. | | ||
| **webhooks.yml** | Configurations for URLs in Webhook. | | ||
| **local-cache.yml** | Local cache configurations. | | ||
| **openim-rpc-third.yml** | Configurations for listening IP, port, and storage settings for images and videos in openim-rpc-third service. | | ||
| **openim-rpc-user.yml** | Configurations for listening IP and port in openim-rpc-user service. | | ||
| **openim-api.yml** | Configurations for listening IP, port, etc., in openim-api service. | | ||
| **openim-crontask.yml** | Configurations for openim-crontask service. | | ||
| **openim-msggateway.yml** | Configurations for listening IP, port, etc., in openim-msggateway service. | | ||
| **openim-msgtransfer.yml** | Configurations for openim-msgtransfer service. | | ||
| **openim-push.yml** | Configurations for listening IP, port, and offline push settings in openim-push service. | | ||
| **openim-rpc-auth.yml** | Configurations for listening IP, port, and token expiration settings in openim-rpc-auth service. | | ||
| **openim-rpc-conversation.yml** | Configurations for listening IP, port, etc., in openim-rpc-conversation service. | | ||
| **openim-rpc-friend.yml** | Configurations for listening IP, port, etc., in openim-rpc-friend service. | | ||
| **openim-rpc-group.yml** | Configurations for listening IP, port, etc., in openim-rpc-group service. | | ||
| **openim-rpc-msg.yml** | Configurations for listening IP, port, and whether to verify friendship before sending messages in openim-rpc-msg service. | | ||
|
||
## Common Configuration Item Modifications | ||
|
||
| Configuration Item Modification | Configuration File | | ||
| ----------------------------------------------------- | ----------------------- | | ||
| Using MinIO for image and video file object storage | `minio.yml` | | ||
| Adjusting production environment logs | `log.yml` | | ||
| Verifying friendship before sending messages | `openim-rpc-msg.yml` | | ||
| Modifying secret | `share.yml` | | ||
| Using OSS, COS, AWS, Kodo for image and video storage | `openim-rpc-third.yml` | | ||
| Setting multiple login policy | `openim-msggateway.yml` | | ||
| Setting up offline push | `openim-push.yml` | | ||
|
||
## Starting Multiple Instances of an OpenIM Service | ||
|
||
To start multiple instances of an OpenIM service, simply increase the corresponding port numbers and modify the `start-config.yml` file in the project root directory. Restart the service to take effect. For example, the configuration to start 2 instances of `openim-rpc-user` is as follows: | ||
|
||
```yaml | ||
rpc: | ||
registerIP: '' | ||
listenIP: 0.0.0.0 | ||
ports: [ 10110, 10111 ] | ||
prometheus: | ||
enable: true | ||
ports: [ 20100, 20101 ] | ||
``` | ||
|
||
Modify `start-config.yml`: | ||
|
||
```yaml | ||
serviceBinaries: | ||
openim-rpc-user: 2 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,7 @@ | ||
bucket: "openim" | ||
port: 10005 | ||
accessKeyID: "root" | ||
secretAccessKey: "openIM123" | ||
sessionToken: '' | ||
internalIP: localhost | ||
externalIP: 150.109.93.151 | ||
url: https://image.rentsoft.cn/ | ||
publicRead: false | ||
internalAddress: "minio:9000" | ||
externalAddress: "http://external_ip:10005" | ||
publicRead: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.