内网部署
在联网构建机导出部署包,再复制到内网目标机运行。
内网部署的主流程是:在联网构建机执行 mage export 导出部署包,再将部署包复制到内网目标机运行。
版本与总体流程
main 是持续集成未发布变更的开发分支。内网生产环境应统一固定到 GitHub Releases 页面绿色 Latest 对应的最新正式发布版,或团队明确验证过的稳定 tag。
- 在联网构建机拉取 OpenIMServer 和 ChatServer 的稳定版代码。
- 执行
mage export,生成可直接带入内网的部署归档。 - 将部署归档、配置文件和外部组件安装包复制到内网目标机。
- 解压部署归档,使用归档内自带的
./mage启动并检查服务。
准备外部组件
OpenIMServer 和 ChatServer 的导出包只包含业务服务。MongoDB、Redis、Kafka、Etcd、MinIO 需要单独准备。
目标机使用 Docker
在联网机器下载与目标机操作系统和架构匹配的 Docker 离线安装包:
- Debian / Ubuntu:准备
docker-ce、docker-ce-cli、containerd.io、docker-buildx-plugin、docker-compose-plugin的.deb包。 - RHEL / CentOS:准备上述组件的
.rpm包。
安装后,通过 docker load 导入提前保存的外部组件镜像。
目标机不使用 Docker
将 MongoDB、Redis、Kafka、Etcd、MinIO 的官方二进制包或内部制品复制到目标机,通过 systemd、supervisor 或内部脚本运行。OpenIMServer 和 ChatServer 只要求配置正确的组件地址与账号,不要求目标机安装 Docker。
在联网构建机导出 OpenIMServer
git clone https://github.com/openimsdk/open-im-server && cd open-im-server
git fetch --tags
LATEST_STABLE_TAG=$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/openimsdk/open-im-server/releases/latest)")
git checkout "$LATEST_STABLE_TAG"
bash bootstrap.sh
PLATFORMS="linux_amd64" mage export归档默认生成在 _output/export/,文件名类似:
exported_open-im-server_v3.8.3-patch.12_linux_amd64.tar.gz在联网构建机导出 ChatServer
git clone https://github.com/openimsdk/chat && cd chat
git fetch --tags
LATEST_STABLE_TAG=$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/openimsdk/chat/releases/latest)")
git checkout "$LATEST_STABLE_TAG"
bash bootstrap.sh
PLATFORMS="linux_amd64" mage export文件名类似:
exported_chat_v1.8.4-patch.3_linux_amd64.tar.gzmage export 生成的归档包含已编译二进制、start-config.yml、运行配置和可直接在目标机执行的 Mage 启动器。内网目标机不需要安装 Go,也不需要重新编译源码。
复制部署材料
将以下内容复制到内网目标机:
- OpenIMServer 导出归档
- ChatServer 导出归档
- 外部组件镜像或二进制安装包
- 实际配置文件,包括域名、外部组件地址、
secret和 MinIOexternalAddress
在目标机部署外部组件
使用 Docker 时,逐个导入镜像并通过准备好的编排文件启动:
docker load -i image-name.tar不使用 Docker 时,依次启动 MongoDB、Redis、Kafka、Etcd、MinIO,并将地址、账号和密码写入 OpenIMServer 与 ChatServer 配置。
启动 OpenIMServer
mkdir -p /opt/openim/open-im-server
tar -xzf exported_open-im-server_v*.tar.gz -C /opt/openim/open-im-server
cd /opt/openim/open-im-server修改外部组件地址、secret 和 MinIO externalAddress 后启动:
./mage check
./mage start
./mage check启动 ChatServer
mkdir -p /opt/openim/chat
tar -xzf exported_chat_v*.tar.gz -C /opt/openim/chat
cd /opt/openim/chat修改 Redis、MongoDB、Etcd 和 OpenIMServer secret 后启动:
./mage check
./mage start
./mage check常用运维命令
OpenIMServer:
cd /opt/openim/open-im-server
./mage check
./mage stop
./mage startChatServer:
cd /opt/openim/chat
./mage check
./mage stop
./mage start注意事项
- 不要使用
main构建内网生产包。 - 目标机直接使用归档内的
./mage,不要重新执行源码编译流程。 - 构建机与目标机架构不同时,通过
PLATFORMS指定目标平台,例如linux_amd64或linux_arm64。 - 无论外部组件使用 Docker 还是二进制部署,都要保证地址和鉴权信息与 OpenIMServer、ChatServer 配置一致。