195 lines
6.2 KiB
Markdown
195 lines
6.2 KiB
Markdown
|
|
# PolyHermes 一键部署脚本使用说明
|
|||
|
|
|
|||
|
|
## ✨ 核心特性
|
|||
|
|
|
|||
|
|
- **可在任意目录运行** - 无需下载项目源码
|
|||
|
|
- **仅使用线上镜像** - 从 Docker Hub 拉取官方镜像
|
|||
|
|
- **自动下载配置** - 从 GitHub 下载最新的 `docker-compose.prod.yml`
|
|||
|
|
- **交互式配置** - 友好的问答式配置向导
|
|||
|
|
- **自动生成密钥** - 所有敏感配置回车自动生成安全随机值
|
|||
|
|
|
|||
|
|
## 🚀 快速开始
|
|||
|
|
|
|||
|
|
### 一键安装(推荐)
|
|||
|
|
|
|||
|
|
**使用 curl(推荐):**
|
|||
|
|
```bash
|
|||
|
|
mkdir -p ~/polyhermes && cd ~/polyhermes && curl -fsSL https://raw.githubusercontent.com/WrBug/PolyHermes/main/deploy-interactive.sh -o deploy.sh && chmod +x deploy.sh && ./deploy.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**使用 wget:**
|
|||
|
|
```bash
|
|||
|
|
mkdir -p ~/polyhermes && cd ~/polyhermes && wget -O deploy.sh https://raw.githubusercontent.com/WrBug/PolyHermes/main/deploy-interactive.sh && chmod +x deploy.sh && ./deploy.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这个命令会自动:
|
|||
|
|
- 📁 创建专用工作目录 `~/polyhermes`
|
|||
|
|
- 📥 下载部署脚本
|
|||
|
|
- ✅ 自动检查 Docker 环境
|
|||
|
|
- ⚙️ 交互式配置所有参数(支持回车使用默认值)
|
|||
|
|
- 🔐 自动生成安全的随机密钥
|
|||
|
|
- 🚀 自动下载最新镜像并部署
|
|||
|
|
|
|||
|
|
**或者直接通过管道运行(不保存文件):**
|
|||
|
|
```bash
|
|||
|
|
# curl 方式
|
|||
|
|
mkdir -p ~/polyhermes && cd ~/polyhermes && curl -fsSL https://raw.githubusercontent.com/WrBug/PolyHermes/main/deploy-interactive.sh | bash
|
|||
|
|
|
|||
|
|
# wget 方式
|
|||
|
|
mkdir -p ~/polyhermes && cd ~/polyhermes && wget -qO- https://raw.githubusercontent.com/WrBug/PolyHermes/main/deploy-interactive.sh | bash
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方式一:直接下载脚本运行
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 下载脚本
|
|||
|
|
curl -O https://raw.githubusercontent.com/WrBug/PolyHermes/main/deploy-interactive.sh
|
|||
|
|
|
|||
|
|
# 添加执行权限
|
|||
|
|
chmod +x deploy-interactive.sh
|
|||
|
|
|
|||
|
|
# 运行
|
|||
|
|
./deploy-interactive.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方式二:在项目目录中运行
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git clone https://github.com/WrBug/PolyHermes.git
|
|||
|
|
cd PolyHermes
|
|||
|
|
./deploy-interactive.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📝 使用流程
|
|||
|
|
|
|||
|
|
运行脚本后,会引导你完成以下步骤:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
步骤 1: 环境检查 → 检查 Docker/Docker Compose
|
|||
|
|
步骤 2: 配置收集 → 交互式输入配置(可全部回车使用默认)
|
|||
|
|
步骤 3: 获取部署配置 → 从 GitHub 下载 docker-compose.prod.yml
|
|||
|
|
步骤 4: 生成环境变量文件 → 自动生成 .env
|
|||
|
|
步骤 5: 拉取 Docker 镜像 → 从 Docker Hub 拉取最新镜像
|
|||
|
|
步骤 6: 部署服务 → 启动容器
|
|||
|
|
步骤 7: 健康检查 → 验证服务是否正常运行
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## ⚡ 最简单的使用方式
|
|||
|
|
|
|||
|
|
**所有配置项直接回车使用默认值**,脚本会自动:
|
|||
|
|
- 使用端口 80(应用)和 3307(MySQL)
|
|||
|
|
- 生成 32 字符的数据库密码
|
|||
|
|
- 生成 128 字符的 JWT 密钥
|
|||
|
|
- 生成 64 字符的管理员重置密钥
|
|||
|
|
- 生成 64 字符的加密密钥
|
|||
|
|
- 配置合理的日志级别
|
|||
|
|
|
|||
|
|
### 交互示例
|
|||
|
|
|
|||
|
|
脚本会逐项提示你输入配置,**直接按回车即可跳过使用默认值**:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|||
|
|
步骤 2: 配置收集
|
|||
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|||
|
|
|
|||
|
|
💡 所有配置项均为可选,直接按回车即可使用默认值或自动生成
|
|||
|
|
|
|||
|
|
⚠ 密钥配置:回车将自动生成安全的随机密钥
|
|||
|
|
⚠ 其他配置:回车将使用括号中的默认值
|
|||
|
|
|
|||
|
|
【基础配置】
|
|||
|
|
将配置:服务器端口、MySQL端口、时区
|
|||
|
|
➤ 服务器端口 [默认: 80]: ⏎
|
|||
|
|
➤ MySQL 端口(外部访问) [默认: 3307]: ⏎
|
|||
|
|
➤ 时区 [默认: Asia/Shanghai]: ⏎
|
|||
|
|
|
|||
|
|
【数据库配置】
|
|||
|
|
将配置:数据库用户名、数据库密码
|
|||
|
|
➤ 数据库用户名 [默认: root]: ⏎
|
|||
|
|
➤ 数据库密码 [回车自动生成]: ⏎
|
|||
|
|
[✓] 已自动生成数据库密码(32字符)
|
|||
|
|
|
|||
|
|
【安全配置】
|
|||
|
|
将配置:JWT密钥、管理员密码重置密钥、数据加密密钥
|
|||
|
|
➤ JWT 密钥 [回车自动生成]: ⏎
|
|||
|
|
[✓] 已自动生成 JWT 密钥(128字符)
|
|||
|
|
➤ 管理员密码重置密钥 [回车自动生成]: ⏎
|
|||
|
|
[✓] 已自动生成管理员重置密钥(64字符)
|
|||
|
|
➤ 加密密钥(用于加密 API Key) [回车自动生成]: ⏎
|
|||
|
|
[✓] 已自动生成加密密钥(64字符)
|
|||
|
|
|
|||
|
|
【日志配置】
|
|||
|
|
将配置:Root日志级别、应用日志级别
|
|||
|
|
可选级别: TRACE, DEBUG, INFO, WARN, ERROR, OFF
|
|||
|
|
➤ Root 日志级别(第三方库) [默认: WARN]: ⏎
|
|||
|
|
➤ 应用日志级别 [默认: INFO]: ⏎
|
|||
|
|
|
|||
|
|
【其他配置】
|
|||
|
|
将配置:运行环境、自动更新策略、GitHub仓库
|
|||
|
|
➤ Spring Profile [默认: prod]: ⏎
|
|||
|
|
➤ 允许预发布版本更新 (true/false) [默认: false]: ⏎
|
|||
|
|
➤ GitHub 仓库 [默认: WrBug/PolyHermes]: ⏎
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔧 脚本生成的文件
|
|||
|
|
|
|||
|
|
脚本运行后会在当前目录生成:
|
|||
|
|
|
|||
|
|
1. **docker-compose.prod.yml** - 从 GitHub 下载的 Docker Compose 配置文件(始终保持最新)
|
|||
|
|
2. **.env** - 根据你的配置自动生成的环境变量文件
|
|||
|
|
|
|||
|
|
这两个文件包含了运行 PolyHermes 所需的全部配置。
|
|||
|
|
|
|||
|
|
## 🌐 部署后管理
|
|||
|
|
|
|||
|
|
### 快速更新(推荐)
|
|||
|
|
|
|||
|
|
如果已有配置文件,再次运行脚本时会自动检测并询问:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
./deploy-interactive.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
【检测到现有配置】
|
|||
|
|
发现已存在的 .env 配置文件
|
|||
|
|
|
|||
|
|
是否使用现有配置直接更新镜像?[Y/n]: ⏎
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- **回车或输入 Y**:使用现有配置,直接拉取最新镜像并更新
|
|||
|
|
- **输入 N**:重新配置(会备份现有配置)
|
|||
|
|
|
|||
|
|
### 手动管理命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看服务状态
|
|||
|
|
docker compose -f docker-compose.prod.yml ps
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
docker compose -f docker-compose.prod.yml logs -f
|
|||
|
|
|
|||
|
|
# 重启服务
|
|||
|
|
docker compose -f docker-compose.prod.yml restart
|
|||
|
|
|
|||
|
|
# 停止服务
|
|||
|
|
docker compose -f docker-compose.prod.yml down
|
|||
|
|
|
|||
|
|
# 更新到最新版本
|
|||
|
|
docker pull wrbug/polyhermes:latest
|
|||
|
|
docker compose -f docker-compose.prod.yml up -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔐 安全建议
|
|||
|
|
|
|||
|
|
- **保护 .env 文件**:其中包含敏感信息,切勿提交到版本控制
|
|||
|
|
- **定期备份数据库**:数据存储在 Docker volume `mysql-data` 中
|
|||
|
|
- **生产环境配置 HTTPS**:建议使用 Nginx 或 Caddy 作为反向代理
|
|||
|
|
|
|||
|
|
## 📞 获取支持
|
|||
|
|
|
|||
|
|
- [GitHub 仓库](https://github.com/WrBug/PolyHermes)
|
|||
|
|
- [问题反馈](https://github.com/WrBug/PolyHermes/issues)
|
|||
|
|
- [完整部署文档](docs/zh/DEPLOYMENT_GUIDE.md)
|