From 509cd67702512478f1180765645ffe9cb8f04bcb Mon Sep 17 00:00:00 2001 From: wx <2636507191@qq.com> Date: Tue, 18 Aug 2026 15:28:35 +0800 Subject: [PATCH] =?UTF-8?q?docs(deployment):=20=E6=96=B0=E5=A2=9E=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=89=8B=E5=86=8C+=E6=9B=B4=E6=96=B0=E8=84=9A?= =?UTF-8?q?=E6=9C=AC(stay.1814.love,=E7=AB=AF=E5=8F=A33001,=E4=BF=9D?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=97=B6=E6=95=B0=E6=8D=AE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deployment/deploy.sh | 18 ++++++++++++++++ deployment/部署步骤.md | 49 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 deployment/deploy.sh create mode 100644 deployment/部署步骤.md diff --git a/deployment/deploy.sh b/deployment/deploy.sh new file mode 100644 index 0000000..1cc1dc3 --- /dev/null +++ b/deployment/deploy.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# 呼籁旅行-甄选酒店 · 更新部署脚本(在仓库根同级跑): 上传代码并重启,保住运行时数据 +set -euo pipefail +HOST="root@47.105.95.198"; APP="/var/www/hulai-travel-site"; NAME="hulai-travel"; URL="https://stay.1814.love" +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +echo "==> 备份服务器运行时数据" +$SSH="ssh -o BatchMode=yes $HOST" +ssh -o BatchMode=yes $HOST "mkdir -p $APP/.deploy-bak && cp -a $APP/data.json $APP/config.json $APP/.deploy-bak/ 2>/dev/null || true" +echo "==> 上传代码(排除运行时产物)" +( cd "$ROOT" && tar czf - --exclude='config.json' --exclude='data-backups' --exclude='hotels/_trash' --exclude='.git' --exclude='deployment' --exclude='.deploy-bak' . ) \ + | ssh -o BatchMode=yes $HOST "cd $APP && tar xzf -" +echo "==> 重启" +ssh -o BatchMode=yes $HOST "pm2 restart $NAME >/dev/null 2>&1 && pm2 save >/dev/null 2>&1 && echo restarted" +echo "==> 验收" +sleep 3 +curl -sk -o /dev/null -w " 访客页: %{http_code}\n" "$URL/" +curl -sk -o /dev/null -w " 后台: %{http_code}\n" "$URL/admin.html" +echo "✅ 完成: $URL" diff --git a/deployment/部署步骤.md b/deployment/部署步骤.md new file mode 100644 index 0000000..060f059 --- /dev/null +++ b/deployment/部署步骤.md @@ -0,0 +1,49 @@ +# 呼籁旅行-甄选酒店 · 部署步骤 + +正式地址:`https://stay.1814.love`。零依赖 Node 应用(`server.js`,端口 3001),`data.json` 内容存储,后台改内容保存即全站生效。 + +## 线上形态 + +| 项 | 值 | +|---|---| +| 服务器 | `47.105.95.198` | +| 项目目录 | `/var/www/hulai-travel-site` | +| 运行 | PM2 `hulai-travel`(`PORT=3001 node server.js`,fork) | +| 域名 | `https://stay.1814.love` → `127.0.0.1:3001` | +| Nginx 配置 | `/opt/hl/config/nginx/conf.d/stay.1814.love.conf`(docker 容器 `nginx`) | +| 证书 | acme.sh ECC,`/opt/hl/config/nginx/ssl/stay.1814.love/`(自动续期) | + +## ⚠️ 运行时数据(不入 git、不被动) + +| 数据 | 位置 | 说明 | +|---|---|---| +| 管理密码哈希 | `config.json` | 首次启动自动生成;改密写这里 | +| 内容数据 | `data.json` | 后台维护的全部内容 | +| 历史备份 | `data-backups/` | 每次保存自动备份(50 份) | +| 图片回收 | `hotels/_trash/` | 后台删的图 | +| 上传的图 | `hotels/` 里新增文件 | 后台上传的酒店图 | + +## 日常更新(改代码/改初始内容) + +代码在仓库 `wx/hulai-travel-site`。改完推送后,到服务器更新(**保住运行时数据**): + +```bash +ssh root@47.105.95.198 +cd /var/www/hulai-travel-site +cp -a data.json config.json /root/hts-bak-$(date +%s)/ 2>/dev/null || (mkdir -p /root/hts-bak-$(date +%s) && cp -a data.json config.json /root/hts-bak-$(date +%s)/) +# 用仓库新文件覆盖(不要动 data.json/config.json/data-backups/hotels 里运行时内容) +pm2 restart hulai-travel && pm2 save +curl -sk -o /dev/null -w "%{http_code}\n" https://stay.1814.love/ +``` + +> 内容本身由刘涛在后台 `https://stay.1814.love/admin.html` 维护(初始密码见 README,**部署后应立即改密**),改完点「保存并发布」前台即生效,无需重新部署。 + +## 全新部署(换机/重装) + +```bash +# 1. 上传仓库代码到 /var/www/hulai-travel-site(排除 config.json/data-backups/_trash) +# 2. 起服务 +cd /var/www/hulai-travel-site && PORT=3001 pm2 start server.js --name hulai-travel && pm2 save +# 3. 配 nginx(参考 nginx.conf.example / 现网 stay.1814.love.conf) + 签证书 + reload +# 4. 验收: curl https://stay.1814.love/ 与 /admin.html 均 200 +```