Files
admin/www/scripts/deploy-www.sh
T

39 lines
1.4 KiB
Bash
Raw Normal View History

2026-08-11 16:45:25 +08:00
#!/usr/bin/env bash
# ============================================================
# www 部署脚本:上传构建产物与部署配置到正式服务器
# 上传内容:.output/public/、nginx.conf、docker-compose.yml
# 目标:luxsin-api2:/data/project/dashboard/www
# 用法:./scripts/deploy-www.sh
# ============================================================
set -euo pipefail
REMOTE_HOST="luxsin-api2"
REMOTE_DIR="/data/project/dashboard/www"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WWW_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
# 本地需先完成静态构建(nuxt generatessr:false 产出 .output/public/index.html
if [ ! -f "${WWW_DIR}/.output/public/index.html" ]; then
echo "❌ 本地缺少 ${WWW_DIR}/.output/public/index.html,请先执行:"
echo " cd ${WWW_DIR} && pnpm generate"
exit 1
fi
echo "==> 确保远程目录存在"
ssh "${REMOTE_HOST}" "mkdir -p ${REMOTE_DIR}/.output/public"
echo "==> 同步 .output/public/--delete:删除远端已失效的旧产物)"
rsync -avz --delete -e ssh \
"${WWW_DIR}/.output/public/" "${REMOTE_HOST}:${REMOTE_DIR}/.output/public/"
echo "==> 上传 nginx.conf / docker-compose.yml"
rsync -avz -e ssh \
"${WWW_DIR}/nginx.conf" \
"${WWW_DIR}/docker-compose.yml" \
"${REMOTE_HOST}:${REMOTE_DIR}/"
echo "✅ 上传完成:${REMOTE_HOST}:${REMOTE_DIR}"
echo "下一步(在服务器上执行):"
echo " cd ${REMOTE_DIR} && docker compose up -d"