77 行
3.0 KiB
Markdown
77 行
3.0 KiB
Markdown
# 呼籁旅行官网 · 部署步骤
|
||
|
||
部署到 `https://www.1814.love`。这是 **Nuxt 3 纯 SSR 应用**,要在服务器上重新构建。
|
||
|
||
> ⚠️ **访问/验收一律用 `www.1814.love`,别用裸域 `1814.love`**:裸域是双 A 记录(`1.182.108.58` + `47.105.95.198`),会漂移到 1.182 上的 Gitea;`www` 只解析到 47 的官网 nginx,才是正确入口。
|
||
|
||
## 一键部署(推荐)
|
||
|
||
在 Git Bash 里:
|
||
|
||
```bash
|
||
cd /d/work2/hulai-website/deployment
|
||
bash deploy.sh # 部署 master 最新
|
||
bash deploy.sh <提交号> # 或部署指定提交
|
||
```
|
||
|
||
脚本自动做完:**备份数据库/.env → 服务器 `git pull` 最新代码 → `npm ci` + `npm run build` → 重启 PM2 → 验收**。
|
||
|
||
## 线上形态(速查)
|
||
|
||
| 项 | 值 |
|
||
|---|---|
|
||
| 应用所在服务器 | **`1.182.108.58`**(不是 47.105.95.198) |
|
||
| 项目目录 | `/opt/gw/hulai-website`(是完整 git clone,分支 `master`) |
|
||
| 框架 / 渲染 | Nuxt 3,**纯 SSR**(`nuxt build` 产物 `.output/server/index.mjs`) |
|
||
| 运行 | PM2 `hulai-website`(fork,监听 `*:9005`,Node v20) |
|
||
| 访问链路 | `1814.love`(47 nginx)→ `1.182.108.58:9002`(nginx)→ `127.0.0.1:9005`(PM2 node) |
|
||
| Node 版本 | v20(`/usr/bin/node`,**不像筛选器要 v22**) |
|
||
| nginx 配置 | 前端在 47 `hl-website.conf`;9002 在 1.182 `/etc/nginx/sites-available/gw` |
|
||
|
||
## ⚠️ 绝不覆盖的运行时数据(脚本已保护)
|
||
|
||
| 数据 | 位置 | 说明 |
|
||
|---|---|---|
|
||
| SQLite 数据库 | `server/database/hulai.db*`(含 -wal/-shm) | 官网表单/内容数据,**在持续写入** |
|
||
| 内容/上传图 | `public/images/` `public/uploads/` `public/旅拍照片/` | 用户上传与内容图,nginx 直接 alias 服务 |
|
||
| 环境变量 | `.env`(可选) | 企业微信 webhook key,当前未配 |
|
||
|
||
部署用 `git pull` 更新代码,这些是 git 未跟踪或不受影响的运行时文件,不会被覆盖;脚本额外先备份数据库再动手。
|
||
|
||
## 手动部署(不想用脚本时)
|
||
|
||
```bash
|
||
ssh root@1.182.108.58
|
||
cd /opt/gw/hulai-website
|
||
|
||
# 1. 备份数据库
|
||
cp -a server/database/ /root/hulai-db-bak-$(date +%s)/
|
||
|
||
# 2. 拉代码 + 构建 + 重启
|
||
git fetch origin && git checkout master && git pull --ff-only
|
||
npm ci
|
||
npm run build
|
||
pm2 restart hulai-website && pm2 save
|
||
|
||
# 3. 验收
|
||
curl http://127.0.0.1:9005/
|
||
curl https://www.1814.love/
|
||
```
|
||
|
||
## 回滚
|
||
|
||
```bash
|
||
ssh root@1.182.108.58
|
||
cd /opt/gw/hulai-website
|
||
git checkout -q <旧提交号>
|
||
npm run build
|
||
pm2 restart hulai-website
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
- **官网打不开**:先 `ssh root@1.182.108.58 'pm2 status; curl 127.0.0.1:9005/'`;node 没起来或 9005 不通 → 重启 PM2。
|
||
- **改完没变化**:没重新 `npm run build` + `pm2 restart`。SSR 每次请求即时渲染,但必须 rebuild 才用新代码。
|
||
- **build 很慢/占内存**:Nuxt 全量 build 需几分钟,服务器内存够(31G),耐心等。
|
||
- **数据库相关功能异常**:确认 `server/database/hulai.db*` 没被部署动到(脚本已保护);异常时从 `.deploy-backups/<时间戳>/` 还原。
|