# hbox 一键安装文档 (大健康会务通 · RuoYi-Cloud 微服务架构)

## 包信息

- 文件: /www/wwwroot/centos.uvwcloud.com/hbox-scripts.zip
- 大小: 664 MB
- MD5: 0b1cd1dcbd33f91c3516737b6e753d75
- 基于: RuoYi-Cloud (Spring Cloud 2021.0.x) + Nacos 2.3.2 + uni-app H5
- 内置: MariaDB 11.4.13 + Redis 3.2 + Nginx 1.20 + Temurin JRE 21

## 系统要求

- 操作系统: CentOS 7.x (其它 Linux x86_64 应也能跑, 已测试过 CentOS 7.9)
- 用户: root
- 磁盘: ≥ 4 GB 可用空间
- 端口: 80 / 3306 / 6379 / 8080 / 8848 / 9205 / 9213 (确保空闲)
- 网络: 安装时无需联网

## 安装步骤

### 方式一: 直接解压到 /opt/hbox (推荐)

unzip hbox-scripts.zip -d /opt/
chmod +x /opt/hbox/hbox
cd /opt/hbox
./hbox install

### 方式二: 干净容器无 unzip? 用 python2:

python -c "import zipfile; zipfile.ZipFile('hbox-scripts.zip').extractall('/opt')"
chmod +x /opt/hbox/hbox /opt/hbox/bin/lib/*.sh
chmod +x /opt/hbox/run/mysql/bin/* /opt/hbox/run/mysql/mysqld
chmod +x /opt/hbox/run/redis/redis-server /opt/hbox/run/redis/redis-cli
chmod +x /opt/hbox/run/nginx/sbin/nginx /opt/hbox/jre/bin/java
cd /opt/hbox
./hbox install

## 首次启动流程

自动执行, 无需干预:

1. mariadb-install-db 初始化 datadir (~2 秒)
2. 接管 root 密码, 跳过授权表模式重启
3. MariaDB 正常启动, ready for connections
4. 建库 risingdoctor, 建用户, 导入 schema.sql + init-data.sql
5. Redis 启动 (runuser 切换 ruoyi)
6. Nacos 2.3.2 启动 (内置 JRE 21)
7. Nacos 配置导入 (5 个 yml/json 模板渲染占位符)
8. Gateway / Auth / System 微服务 jar 启动
9. Nginx 启动, 反代 /hwt-api 到 Gateway, H5 静态托管

合计耗时: 约 2-3 分钟 (Nacos 启动慢)

## 验证

./hbox status

预期输出:
  Service         Port      Status    Version
  MariaDB         3306      running   11.4.13-MariaDB
  Redis           6379      running   3.2.12
  Nacos           8848      running   2.3.2
  Gateway         8080      running   2021.0.x
  Auth            9213      running   2021.0.x
  System          9205      running   2021.0.x
  Nginx           80        running   1.20.1

curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1/
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:8080/actuator/health
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:8848/nacos/
curl -s http://127.0.0.1:8080/captchaImage

## 默认账号

- MariaDB root: Ruoyi@123456
- 应用数据库: risingdoctor / risingdoctor / Ruoyi@123456
- Redis: Qljl1rh_
- Nacos 控制台: nacos / nacos (http://127.0.0.1:8848/nacos)
- RuoYi 后台: admin / admin123 (通过 /hwt-api/login)

## 常用命令

./hbox start           # 启动全部服务
./hbox stop            # 停止全部服务
./hbox restart         # 重启全部服务
./hbox status          # 查看状态
./hbox install         # 首次安装 (含初始化)

## 自定义参数

./hbox start --mport 3307 --rport 6380 --gport 8081 --nport 8850 \
              --dbuser myuser --dbpass 'MyP@ss123' --user ruoyi

## 目录结构

/opt/hbox/
├── hbox                       # 主脚本
├── hwt.config                 # 默认配置
├── bin/lib/libcomm.sh         # 核心逻辑 (已 patch: LD_LIBRARY_PATH/init_mysql/redis chown)
├── etc/                       # 配置
│   ├── mysql/my.cnf
│   ├── redis/redis.conf       # 含 dir /opt/hbox/tmp/redis
│   └── nginx/nginx.conf
├── run/                       # 二进制 + 依赖库 (复用 rbox 的 MariaDB 11.4 + Redis + Nginx)
│   ├── mysql/{bin,scripts,share,lib,mysqld}
│   ├── redis/{redis-server,lib}
│   ├── nginx/sbin/nginx
│   └── nacos/                 # nacos-server-2.3.2
├── jre/                       # Temurin JRE 21 (61MB,含 java.instrument)
├── app/                       # 微服务 3 jar (gateway/auth/system)
├── nacos-config/              # 5 个 yml/json 模板, 含 @HB_XXX@ 占位符
├── resources/nacos-server-2.3.2.zip
├── sql/{schema.sql, init-data.sql}
├── www/v2/                    # H5 移动端 (uni-app vue2)
├── run/service.sh + nacos.sh
├── data/                      # 运行时数据 (datadir)
├── logs/                      # 日志
└── tmp/                       # socket / pid 文件

## 二次启动 (幂等)

./hbox start 检测 .init_done 不重复 init, 直接启动服务。

## 修改配置

所有密码在 hwt.config 或运行时写回的 .env。

修改后 ./hbox restart 生效 (改 DB/Redis 密码需重启 Nacos + 微服务)。

## 故障排查

日志位置:
- MariaDB: /opt/hbox/logs/mysql_error.log
- Redis:   /opt/hbox/logs/redis.log
- Nginx:   /opt/hbox/logs/nginx/{access,error}.log
- Nacos:   /opt/hbox/logs/nacos.log
- Gateway/Auth/System: /opt/hbox/logs/{gateway,auth,system}.log

完全清理重置:
  ./hbox stop
  rm -rf /opt/hbox/data/* /opt/hbox/tmp/* /opt/hbox/logs/*
  ./hbox install

## 已知问题

- mariadbd/redis-server 退出时在容器内留 zombie (centos7 systemd init 不 reap),
  不影响新进程启动, 忽略即可
- nginx 启动时报警告 /var/log/nginx/error.log 找不到, 实际用 /opt/hbox/logs/nginx/error.log 正常
- redis-cli 需手动设 LD_LIBRARY_PATH=/opt/hbox/run/redis/lib 才能跑 (libjemalloc)
