56 lines
1.1 KiB
Bash
56 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# Neural Sync 更新脚本 - 用于代码更新后重新部署
|
|
|
|
set -e
|
|
|
|
PROJECT_DIR="/opt/neural-sync"
|
|
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
echo "========================================"
|
|
echo " Neural Sync 更新脚本"
|
|
echo "========================================"
|
|
|
|
if [ ! -d "$PROJECT_DIR" ]; then
|
|
echo -e "${RED}❌ 项目目录不存在${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
cd "$PROJECT_DIR"
|
|
|
|
echo -e "${YELLOW}[1/4] 拉取最新代码...${NC}"
|
|
git pull
|
|
|
|
echo -e "${YELLOW}[2/4] 重新构建前端...${NC}"
|
|
cd frontend
|
|
npm install
|
|
npm run build
|
|
cd ..
|
|
|
|
echo -e "${YELLOW}[3/4] 更新 Python 依赖 (如有变更)...${NC}"
|
|
cd backend
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt --upgrade
|
|
deactivate
|
|
cd ..
|
|
|
|
echo -e "${YELLOW}[4/4] 重启服务...${NC}"
|
|
systemctl restart neural-sync
|
|
nginx -s reload
|
|
|
|
sleep 2
|
|
|
|
if systemctl is-active --quiet neural-sync; then
|
|
echo -e "${GREEN}✅ 更新完成!${NC}"
|
|
else
|
|
echo -e "${RED}❌ 服务启动失败,查看日志:${NC}"
|
|
journalctl -u neural-sync -n 20
|
|
fi
|
|
|
|
SERVER_IP=$(hostname -I | awk '{print $1}')
|
|
echo ""
|
|
echo "访问地址: http://$SERVER_IP"
|