67 lines
2.0 KiB
Bash
Executable File
67 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# 部署脚本 - 将构建好的管理后台文件上传到服务器
|
|
# 使用方法: ./deploy.sh
|
|
|
|
SERVER_IP="101.200.208.45"
|
|
USERNAME="root"
|
|
REMOTE_PATH="/data/www/emotion-museum-admin"
|
|
|
|
echo "开始部署管理后台应用到服务器..."
|
|
|
|
# 检查是否安装了npm
|
|
if ! command -v npm &> /dev/null; then
|
|
echo "❌ 错误: 未找到npm命令,请先安装Node.js"
|
|
exit 1
|
|
fi
|
|
|
|
# 清理旧的构建文件
|
|
echo "🧹 清理旧的构建文件..."
|
|
rm -rf dist
|
|
|
|
# 执行构建(使用生产环境配置)
|
|
echo "📦 开始构建管理后台项目(生产环境)..."
|
|
if NODE_ENV=production npm run build; then
|
|
echo "✅ 管理后台项目构建成功"
|
|
else
|
|
echo "❌ 管理后台项目构建失败,请检查代码"
|
|
exit 1
|
|
fi
|
|
|
|
# 验证dist目录是否存在
|
|
if [ ! -d "dist" ]; then
|
|
echo "❌ 错误: 构建后dist目录仍不存在,请检查构建配置"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查是否安装了scp命令
|
|
if ! command -v scp &> /dev/null; then
|
|
echo "❌ 错误: 未找到scp命令,请安装OpenSSH客户端"
|
|
exit 1
|
|
fi
|
|
|
|
echo "正在上传文件到服务器 $SERVER_IP..."
|
|
|
|
# 创建远程目录(如果不存在)
|
|
echo "📁 创建远程目录..."
|
|
ssh "${USERNAME}@${SERVER_IP}" "mkdir -p ${REMOTE_PATH}"
|
|
|
|
# 上传所有文件到服务器
|
|
echo "📤 上传文件到服务器..."
|
|
if scp dist/index.html "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/" && \
|
|
scp -r dist/assets "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/"; then
|
|
|
|
# 设置文件权限
|
|
echo "🔐 设置文件权限..."
|
|
ssh "${USERNAME}@${SERVER_IP}" "chmod -R 755 ${REMOTE_PATH}"
|
|
|
|
echo "✅ 管理后台部署完成!"
|
|
echo "📱 访问地址: https://lifescript.happylifeos.com/emotion-museum-admin/"
|
|
echo "🔧 管理后台功能: AI配置管理、用户管理、数据统计等"
|
|
|
|
else
|
|
echo "❌ 部署失败,请检查:"
|
|
echo "1. 服务器IP地址是否正确"
|
|
echo "2. SSH密钥是否配置正确"
|
|
echo "3. 服务器目录权限是否正确"
|
|
exit 1
|
|
fi |