39 lines
1.4 KiB
Bash
Executable File
39 lines
1.4 KiB
Bash
Executable File
#!/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 generate,ssr: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"
|