Crest 文档
安装部署

离线安装

制作 Crest 离线安装包,并在不能访问外网的服务器上完成部署。

离线安装适合生产内网、政企内网或无法直接访问镜像仓库的服务器。核心思路是在有网络的机器上制作离线包,再把完整包上传到目标服务器安装。

离线安装比在线安装更依赖准备工作。安装失败时,目标服务器通常不能临时拉取缺失镜像或依赖,所以包完整性、系统架构、Docker 版本和端口占用必须提前确认。

制作离线包

在可访问镜像仓库的机器上执行:

cd installer
bash make-offline-package.sh v1.5.7 linux-amd64

ARM 服务器使用:

bash make-offline-package.sh v1.5.7 linux-arm64

生成文件示例:

crest-offline-v1.5.7-linux-amd64.tar.gz
crest-offline-v1.5.7-linux-arm64.tar.gz
crest-app-images-v1.5.7-linux-amd64.tar.gz
crest-app-images-v1.5.7-linux-arm64.tar.gz

制作完成后建议生成校验值:

sha256sum crest-offline-v1.5.7-linux-amd64.tar.gz

把包名、版本、架构、生成时间和校验值一起记录。离线环境排查问题时,先确认拿到的是正确安装包。

离线包内容

完整离线包通常包含:

内容说明
安装脚本install.shuninstall.sh
配置模板install.conf、后端配置模板
Docker Compose前端网关、后端服务、MySQL 和可选监控组件编排文件
镜像归档Crest 前端镜像、后端镜像、MySQL 镜像和可选监控镜像
说明文档安装、升级和默认账号说明

从 v1.5.5 起,Release 同时提供应用镜像升级包:

包类型用途包含内容
crest-offline-*全新离线安装或完整交付安装脚本、配置模板、Compose、Crest 前后端镜像、MySQL 镜像、可选监控配置和升级 SQL
crest-app-images-*已有环境只替换 Crest 前后端应用Crest 后端镜像、Crest 前端镜像、增量升级 SQL 和加载说明

应用镜像升级包不包含 MySQL、Prometheus、Grafana 镜像,也不包含完整安装脚本。已有内网环境仅需升级前后端服务时,优先使用该包,可明显降低传输体积。

离线包和应用镜像升级包都是发布物,不建议提交到源码仓库。

上传到目标服务器

scp crest-offline-v1.5.7-linux-amd64.tar.gz user@server:/opt/packages/

在目标服务器解压:

cd /opt/packages
tar -zxf crest-offline-v1.5.7-linux-amd64.tar.gz
cd crest-offline-v1.5.7-linux-amd64

解压后先检查目录内容是否完整,尤其是安装脚本、镜像归档和配置模板。文件缺失时不要继续安装,先重新传包。

修改配置并安装

编辑 install.conf

CREST_PORT=8100
CREST_ORIGIN_LIST=https://bi.example.com
CREST_INITIAL_PASSWORD='替换为高强度初始密码'
CREST_DB_PASSWORD='替换为高强度数据库密码'
CREST_AES_KEY='32位加密Key'
CREST_AES_IV='16位加密IV'
CREST_CRYPTO_MODE=standard

需要国密模式时,在离线包安装前一并配置:

CREST_CRYPTO_MODE=sm-suite
CREST_SM4_KEY='0123456789abcdef'

离线部署中的国密能力和在线部署一致。启用后,系统页面和用户操作流程不变;差异在于安装参数、密钥备份和升级恢复时必须保留同一组加密配置。

需要同时启用 Prometheus 和 Grafana 时,在安装前增加:

CREST_PROMETHEUS_ENABLED=true
CREST_GRAFANA_ENABLED=true
CREST_GRAFANA_PORT=3000

离线包会包含对应镜像和配置模板;是否启用由目标服务器上的 install.conf 决定。

执行安装:

bash install.sh

安装脚本会优先加载离线包中的镜像,不再依赖外部镜像仓库。

安装完成后按部署后检查章节执行验收。离线安装常见问题包括架构不匹配、镜像包不完整、Docker 版本过低、端口占用和磁盘空间不足。

安装完成后,先打开登录页:

登录页

登录页可访问后,再使用安装输出的管理员账号登录工作台。安装是否完成不能仅依赖 docker compose ps 判断。

离线安装检查

  1. 离线包架构是否与服务器一致。
  2. 镜像归档是否完整。
  3. Docker 和 Docker Compose 是否可用。
  4. 端口是否未被占用。
  5. 安装完成后是否能登录。
  6. 安装日志是否保存。

建议

离线包进入生产环境前,建议记录包名、版本、生成时间、校验值和使用的镜像版本。

离线环境建议保留安装包和安装日志。后续升级或回滚时,能快速确认当前环境是由哪个包安装的。

离线升级说明

全新安装不需要手动执行 upgrade-sql/ 中的 SQL。已有环境升级时,按来源版本判断:

来源版本升级到 v1.5.7 的处理
v1.5.6备份后替换前后端镜像,不需要执行新增升级 SQL
v1.5.5备份后替换前后端镜像,不需要执行新增升级 SQL
v1.5.4先执行 upgrade-sql/v1.5.4_to_v1.5.5.sql,再替换 v1.5.7 前后端镜像
更早开发环境建议导出业务资源,在全新 v1.5.7 环境中导入

v1.5.7 没有数据库结构、系统参数或初始化数据变更。已有 v1.5.6 环境升级到 v1.5.7 时,重点验证 MySQL 数据集缓存、公开分享链接、API 数据源 JsonPath 解析和数据源校验,不需要执行新增升级 SQL。

单机内置 MySQL 环境执行 v1.5.4 到 v1.5.5 的升级 SQL 示例:

set -a
source /opt/crest/.env
set +a
docker exec -i mysql-crest mysql -uroot -p"${CREST_DB_PASSWORD}" "${CREST_DB_NAME:-crest}" < upgrade-sql/v1.5.4_to_v1.5.5.sql

如果安装时修改过 CREST_BASE,请把 /opt/crest/.env 替换为实际运行目录中的 .env。外部 MySQL 环境可在数据库服务器或运维机执行同一 SQL 文件,目标库为 Crest 元数据库。