#!/bin/bash # 小菜记账部署脚本 set -e SERVER_DIR="/var/www/xiaocai" LOG_DIR="/var/log/xiaocai" echo "=== 开始部署 ===" # 进入项目目录 cd "$(dirname "$0")/.." # 构建服务端 echo "1/4 构建服务端..." cd server npm install npm run build cd .. # 复制文件到服务器目录 echo "2/4 复制文件..." cp -r server/dist "$SERVER_DIR/" cp -r server/node_modules "$SERVER_DIR/" cp server/package.json "$SERVER_DIR/" cp deploy/ecosystem.config.js "$SERVER_DIR/" # 初始化数据库 echo "3/4 初始化数据库..." cd "$SERVER_DIR" mysql -u xiaocai -pxiaocai123 xiaocai < dist/db/schema.sql mysql -u xiaocai -pxiaocai123 xiaocai < dist/db/seed.sql 2>/dev/null || true cd - # 配置 Nginx echo "4/4 配置 Nginx..." sudo cp deploy/nginx.conf /etc/nginx/sites-available/xiaocai sudo ln -sf /etc/nginx/sites-available/xiaocai /etc/nginx/sites-enabled/ sudo rm -f /etc/nginx/sites-enabled/default sudo nginx -t sudo systemctl reload nginx # 重启服务 echo "重启 PM2 服务..." cd "$SERVER_DIR" pm2 delete xiaocai-server 2>/dev/null || true pm2 start ecosystem.config.js pm2 save echo "" echo "=== 部署完成 ===" echo "服务地址: http://your-domain.com" echo "API 健康检查: http://your-domain.com/api/health" echo "" echo "查看日志: pm2 logs xiaocai-server" echo "查看状态: pm2 status"