54 lines
2.8 KiB
Markdown
54 lines
2.8 KiB
Markdown
# 剧核工厂部署脚本
|
||
|
||
## 一键推送
|
||
|
||
在 Windows 项目根目录执行:
|
||
|
||
```bat
|
||
API\deploy\push.bat root@服务器IP
|
||
```
|
||
|
||
脚本会构建 WEB、ADMIN,交叉编译 Linux amd64 API,并上传二进制、静态文件、迁移、部署脚本以及 `workers`。默认增量推送不会上传本地 `API/.env`,服务器继续使用 `/etc/juyou_ai/juyou_ai.env`,避免 Windows 开发环境配置覆盖 Linux 生产配置。
|
||
|
||
仅上传、不执行服务器部署时也可以显式使用:
|
||
|
||
```bat
|
||
API\deploy\push.bat root@服务器IP stage-only
|
||
```
|
||
|
||
只有首次部署或明确需要整体替换服务器环境配置时,才使用:
|
||
|
||
```bat
|
||
API\deploy\push.bat root@服务器IP with-env
|
||
```
|
||
|
||
`with-env` 会把本地 `API/.env` 暂存为服务器 `/tmp/juyou_ai.env`。使用前必须确认其中的 FFmpeg、Python 和脚本路径适用于 Linux;普通增量部署不要使用该选项。
|
||
|
||
## 一键部署
|
||
|
||
上传完成后,在服务器执行:
|
||
|
||
```bash
|
||
sudo bash /opt/juyou_ai/deploy/one_click_deployment.sh
|
||
```
|
||
|
||
普通增量部署会继续使用 `/etc/juyou_ai/juyou_ai.env`。使用 `with-env` 推送时,部署脚本才会用 `/tmp/juyou_ai.env` 更新生产环境配置。
|
||
|
||
部署脚本会安装 `python3-pip`,并在缺失时安装 `faster-whisper 1.2.1`;同时会将 FFmpeg、Python 和音频识别脚本路径规范为 Linux 运行路径。`push.bat` 会在本机下载默认 `small` 模型,并在服务器缺少模型时上传到 `/opt/juyou_ai/models/faster-whisper-small`。服务器部署和运行阶段不会访问 Hugging Face;后续增量部署会保留并复用已经上传的模型。
|
||
|
||
项目目录固定为 `/opt/juyou_ai`,systemd 服务名固定为 `juyou_ai`,API 内部端口固定为 `8123`。脚本仅保存域名和证书邮箱;再次执行会自动复用配置。多个域名会全部作为 SAN 追加到同一张证书。脚本只复用输入域名对应的现有证书,不会扫描其他项目的证书;没有匹配证书但填写邮箱时使用本地 `API/acme/acme.sh` 申请 HTTPS,域名填 `_` 或未填写邮箱时使用 HTTP。systemd 从 `/etc/juyou_ai/juyou_ai.env` 加载环境变量,项目目录不会保留 `.env`。
|
||
|
||
API、AI Worker 和 HTTP 请求日志统一写入 `/var/log/juyou_ai/juyou_ai.log`。日志每天轮转,最多保留 14 份,单个文件超过 50MB 时会提前轮转;可使用 `sudo tail -f /var/log/juyou_ai/juyou_ai.log` 实时查看。
|
||
|
||
完整操作说明参见 [部署文档.md](部署文档.md)。
|
||
|
||
第三方接口、网址和密钥字段说明参见 [第三方说明及密钥.md](第三方说明及密钥.md)。
|
||
|
||
## 更新 acme.sh
|
||
|
||
```bash
|
||
sudo bash /opt/juyou_ai/deploy/update_acme.sh
|
||
```
|
||
|
||
更新脚本通过 jsDelivr CDN 下载 acmesh-official/acme.sh 的最新 master 单文件版本,不执行 GitHub clone。
|