Files
张翔 6403489954 refactor: 完成静态网站转换,移除所有 CMS 和动态功能
- 删除数据库相关代码 (src/db/)
- 删除 API 路由 (src/app/api/)
- 删除认证相关代码 (src/lib/auth/, src/providers/)
- 删除监控和安全中间件 (src/lib/security/, src/lib/monitoring/)
- 删除 hooks (use-news, use-products, use-services)
- 更新组件为静态数据源
- 添加 nginx 静态配置和部署脚本
- 添加 static-link 组件
2026-04-21 07:53:56 +08:00

85 lines
2.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Novalon 静态站点部署脚本
# 用法: bash scripts/deploy-static.sh [环境]
# 环境参数: production (默认)
set -euo pipefail
ENV="${1:-production}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
BUILD_DIR="$PROJECT_DIR/dist"
DEPLOY_DIR="/var/www/novalon"
BACKUP_DIR="/var/www/novalon-backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
echo "========================================="
echo " Novalon 静态站点部署"
echo " 环境: $ENV"
echo " 时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "========================================="
# 步骤 1: 构建
echo ""
echo "[1/5] 构建静态站点..."
cd "$PROJECT_DIR"
npm run build
if [ ! -d "$BUILD_DIR" ]; then
echo "❌ 构建失败:dist 目录不存在"
exit 1
fi
echo "✅ 构建完成,产物大小:$(du -sh "$BUILD_DIR" | cut -f1)"
# 步骤 2: 备份当前版本
echo ""
echo "[2/5] 备份当前版本..."
if [ -d "$DEPLOY_DIR" ]; then
mkdir -p "$BACKUP_DIR"
cp -r "$DEPLOY_DIR" "$BACKUP_DIR/novalon-backup-$TIMESTAMP"
# 只保留最近 3 个备份
ls -t "$BACKUP_DIR"/ | tail -n +4 | xargs -I {} rm -rf "$BACKUP_DIR/{}"
echo "✅ 备份完成: $BACKUP_DIR/novalon-backup-$TIMESTAMP"
else
echo "⚠️ 首次部署,无需备份"
mkdir -p "$DEPLOY_DIR"
fi
# 步骤 3: 部署新版本
echo ""
echo "[3/5] 部署新版本..."
# 清空目标目录(保留 .well-known
if [ -d "$DEPLOY_DIR/.well-known" ]; then
mv "$DEPLOY_DIR/.well-known" /tmp/well-known-backup
fi
rm -rf "$DEPLOY_DIR"/*
cp -r "$BUILD_DIR"/* "$DEPLOY_DIR/"
if [ -d /tmp/well-known-backup ]; then
mv /tmp/well-known-backup "$DEPLOY_DIR/.well-known"
fi
echo "✅ 文件部署完成"
# 步骤 4: 设置权限
echo ""
echo "[4/5] 设置文件权限..."
chmod -R 755 "$DEPLOY_DIR"
echo "✅ 权限设置完成"
# 步骤 5: 重载 Nginx
echo ""
echo "[5/5] 重载 Nginx..."
if nginx -t 2>/dev/null; then
nginx -s reload
echo "✅ Nginx 重载成功"
else
echo "⚠️ Nginx 配置检查失败,跳过重载(请手动检查)"
fi
echo ""
echo "========================================="
echo " ✅ 部署完成!"
echo " 站点地址: https://www.novalon.cn"
echo " 部署目录: $DEPLOY_DIR"
echo "========================================="