feat: 汉字介绍待续
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
# voice-production 部署到 Ubuntu 云服务器
|
||||
|
||||
将 `voice-production` 的静态资源(voice、char、后续图片)部署到 Ubuntu,用 Nginx 提供访问并绑定二级域名。
|
||||
|
||||
---
|
||||
|
||||
## 一、服务器准备
|
||||
|
||||
### 1. 安装 Nginx
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install nginx -y
|
||||
sudo systemctl enable nginx
|
||||
sudo systemctl start nginx
|
||||
```
|
||||
|
||||
### 2. 安装 Node.js 与 pnpm(用于在服务器上执行部署脚本)
|
||||
|
||||
若你打算在服务器上跑 `deploy-assets` 和后续的生成脚本,需要 Node:
|
||||
|
||||
```bash
|
||||
# Node 20 LTS(推荐)
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
||||
sudo apt install -y nodejs
|
||||
|
||||
# pnpm
|
||||
sudo npm install -g pnpm
|
||||
```
|
||||
|
||||
若你只打算从本机把已生成好的 `pipi-assets` 同步到服务器,可跳过 pnpm,但至少保留 Node 以便将来在服务器上跑脚本。
|
||||
|
||||
### 3. 创建资源目录(若用脚本部署会自动创建,也可先建)
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /var/www/pipi-assets
|
||||
sudo chown $USER:$USER /var/www/pipi-assets
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、部署方式(二选一)
|
||||
|
||||
### 方式 A:在服务器上拉代码并执行部署脚本(推荐)
|
||||
|
||||
适合:代码已在 Git 仓库,服务器能访问仓库。
|
||||
|
||||
**1. 在服务器上克隆/拉取项目**
|
||||
|
||||
```bash
|
||||
# 进入你放项目的目录,例如
|
||||
cd /var/www
|
||||
sudo git clone <你的仓库地址> pipi-learn
|
||||
cd pipi-learn/platform-pipi/packages/voice-production
|
||||
# 若已存在目录则只拉取
|
||||
# git pull
|
||||
```
|
||||
|
||||
**2. 安装依赖并执行部署**
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
pnpm run deploy-assets:server
|
||||
```
|
||||
|
||||
会把 `data/` 下内容拷贝到 `/var/www/pipi-assets/`,并在当前目录生成 `scripts/nginx-pipi-assets.conf`。
|
||||
|
||||
**3. 把 Nginx 配置放到系统目录并启用**
|
||||
|
||||
```bash
|
||||
# 若需改二级域名,先编辑 scripts/nginx-pipi-assets.conf 里的 server_name
|
||||
sudo cp scripts/nginx-pipi-assets.conf /etc/nginx/sites-available/pipi-assets
|
||||
sudo ln -sf /etc/nginx/sites-available/pipi-assets /etc/nginx/sites-enabled
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
**4. 配置 DNS**
|
||||
|
||||
在域名服务商处为二级域名(如 `assets.yourdomain.com`)添加 **A 记录**,指向该云服务器的公网 IP。
|
||||
|
||||
**5.(可选)HTTPS**
|
||||
|
||||
```bash
|
||||
sudo apt install certbot python3-certbot-nginx -y
|
||||
sudo certbot --nginx -d assets.yourdomain.com
|
||||
```
|
||||
|
||||
按提示选择即可,证书会自动写入 Nginx 配置。
|
||||
|
||||
---
|
||||
|
||||
### 方式 B:本机生成后同步到服务器
|
||||
|
||||
适合:在本地生成 voice/char,只把静态文件上传到服务器。
|
||||
|
||||
**1. 本机生成并拷贝到“服务器目标结构”**
|
||||
|
||||
在 Mac 上:
|
||||
|
||||
```bash
|
||||
cd platform-pipi/packages/voice-production
|
||||
pnpm run deploy-assets:local # 生成 pipi-assets/
|
||||
```
|
||||
|
||||
**2. 把 pipi-assets 同步到服务器**
|
||||
|
||||
```bash
|
||||
rsync -avz --delete ./pipi-assets/ 用户名@服务器IP:/var/www/pipi-assets/
|
||||
```
|
||||
|
||||
若服务器上 `/var/www/pipi-assets` 需要 sudo,可先同步到用户目录再在服务器上移动:
|
||||
|
||||
```bash
|
||||
rsync -avz --delete ./pipi-assets/ 用户名@服务器IP:~/pipi-assets/
|
||||
# 登录服务器后
|
||||
ssh 用户名@服务器IP
|
||||
sudo rm -rf /var/www/pipi-assets/* && sudo cp -r ~/pipi-assets/* /var/www/pipi-assets/
|
||||
```
|
||||
|
||||
**3. 在服务器上准备 Nginx 配置**
|
||||
|
||||
- 要么在服务器上拉取一遍 voice-production 代码,执行一次 `pnpm run deploy-assets:server`,只为了生成 `scripts/nginx-pipi-assets.conf`,再按方式 A 第 3 步拷贝并启用;
|
||||
- 要么在本机生成配置后上传。本机执行:
|
||||
|
||||
```bash
|
||||
node scripts/deploy-assets.js --target /var/www/pipi-assets --nginx ./scripts/nginx-pipi-assets.conf
|
||||
```
|
||||
|
||||
把生成的 `scripts/nginx-pipi-assets.conf` 用 scp 传到服务器,再在服务器上:
|
||||
|
||||
```bash
|
||||
sudo cp nginx-pipi-assets.conf /etc/nginx/sites-available/pipi-assets
|
||||
sudo ln -sf /etc/nginx/sites-available/pipi-assets /etc/nginx/sites-enabled
|
||||
```
|
||||
|
||||
**4. 修改配置里的 server_name(若尚未改)**
|
||||
|
||||
```bash
|
||||
sudo nano /etc/nginx/sites-available/pipi-assets
|
||||
# 将 server_name assets.yourdomain.com; 改为你的二级域名
|
||||
```
|
||||
|
||||
**5. 测试并重载 Nginx**
|
||||
|
||||
```bash
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
DNS 与 HTTPS 步骤同方式 A 的 4、5。
|
||||
|
||||
---
|
||||
|
||||
## 三、修改二级域名
|
||||
|
||||
生成的 `nginx-pipi-assets.conf` 里默认是 `server_name assets.yourdomain.com;`。
|
||||
|
||||
- **方式 A**:在服务器上编辑 `scripts/nginx-pipi-assets.conf` 再拷贝到 `/etc/nginx/sites-available/`,或直接编辑 `/etc/nginx/sites-available/pipi-assets`。
|
||||
- **方式 B**:本机生成配置后编辑再上传,或在服务器上编辑 `/etc/nginx/sites-available/pipi-assets`。
|
||||
|
||||
改完后执行:
|
||||
|
||||
```bash
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、后续更新资源
|
||||
|
||||
- **方式 A**:在服务器上进入 `voice-production` 目录,执行 `git pull`,再执行 `pnpm run deploy-assets:server`;若在服务器上跑生成脚本,先 `pnpm run generate-voice` 等再执行 `deploy-assets:server`。
|
||||
- **方式 B**:本机重新生成/拷贝后,再执行一次 `rsync` 同步到服务器。
|
||||
|
||||
---
|
||||
|
||||
## 五、常用命令速查
|
||||
|
||||
| 说明 | 命令 |
|
||||
| --------------- | ---------------------------------------- |
|
||||
| 测试 Nginx 配置 | `sudo nginx -t` |
|
||||
| 重载 Nginx | `sudo systemctl reload nginx` |
|
||||
| 查看 Nginx 状态 | `sudo systemctl status nginx` |
|
||||
| 查看站点日志 | `sudo tail -f /var/log/nginx/access.log` |
|
||||
|
||||
---
|
||||
|
||||
## 六、验证
|
||||
|
||||
- 健康检查:`https://你的二级域名/health` 应返回 `ok`。
|
||||
- 角色 JSON:`https://你的二级域名/char/char_introduce.json` 应返回 JSON。
|
||||
- 语音:`https://你的二级域名/voice/xxx.mp3` 应能播放或下载。
|
||||
Reference in New Issue
Block a user