xiaso-flnxi-website/deploy-website-update-with-password.sh
Your Name b1eab32c75 初始提交: FLNXI电商素材系统官方网站
- Next.js 项目框架
- 完整的认证系统集成
- 数据库配置和部署脚本
- 产品价格体系和文档
- Docker 部署配置
2025-12-13 21:38:32 +08:00

144 lines
4.0 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
# 销售官网更新部署脚本(使用密码认证)
# 使用方法:bash deploy-website-update-with-password.sh
set -e
echo "🚀 部署销售官网更新(密码认证)..."
echo ""
# 服务器信息
SERVER="root@45.249.208.118"
SERVER_IP="45.249.208.118"
REMOTE_DIR="/opt/flnxi-website"
# 服务器密码(从之前的脚本中获取)
SERVER_PASSWORD="lxvhNYFZ4160"
# 颜色定义
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
# 检查sshpass是否安装
if ! command -v sshpass &> /dev/null; then
echo -e "${RED}❌ sshpass 未安装${NC}"
echo ""
echo "请安装 sshpass:"
echo ""
echo "macOS:"
echo " brew install hudochenkov/sshpass/sshpass"
echo ""
echo "或使用无密码方案(配置SSH密钥):"
echo " 参考 立即部署指南.md"
echo ""
exit 1
fi
# SSH执行函数
ssh_exec() {
sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no $SERVER "$1"
}
# SCP上传函数
scp_upload() {
sshpass -p "$SERVER_PASSWORD" scp -o StrictHostKeyChecking=no "$1" "$2"
}
# 检查服务器连接
echo -e "${BLUE}检查服务器连接...${NC}"
if ! ssh_exec "echo '连接成功'" 2>/dev/null; then
echo -e "${RED}❌ 无法连接到服务器 $SERVER_IP${NC}"
echo "请检查:"
echo "1. 服务器是否在线"
echo "2. 密码是否正确"
echo "3. 网络连接是否正常"
exit 1
fi
echo -e "${GREEN}✅ 服务器连接成功${NC}"
echo ""
# 步骤1:打包更新文件
echo -e "${BLUE}步骤 1/6: 打包更新文件...${NC}"
rm -f website-update.tar.gz
tar -czf website-update.tar.gz \
components/Hero.tsx \
components/Pricing.tsx \
components/Features.tsx \
components/SystemFeatures.tsx \
app/page.tsx \
package.json
echo -e "${GREEN}✅ 文件打包完成${NC}"
echo ""
# 步骤2:上传到服务器
echo -e "${BLUE}步骤 2/6: 上传到服务器...${NC}"
scp_upload website-update.tar.gz $SERVER:$REMOTE_DIR/
echo -e "${GREEN}✅ 上传完成${NC}"
echo ""
# 步骤3:解压文件
echo -e "${BLUE}步骤 3/6: 解压更新文件...${NC}"
ssh_exec "cd $REMOTE_DIR && tar -xzf website-update.tar.gz && rm website-update.tar.gz"
echo -e "${GREEN}✅ 解压完成${NC}"
echo ""
# 步骤4:重新构建Docker镜像
echo -e "${BLUE}步骤 4/6: 重新构建Docker镜像...${NC}"
echo -e "${YELLOW}⏳ 这可能需要2-3分钟,请稍候...${NC}"
ssh_exec "cd $REMOTE_DIR && docker-compose down && docker-compose build --no-cache"
echo -e "${GREEN}✅ Docker镜像已重新构建${NC}"
echo ""
# 步骤5:启动服务
echo -e "${BLUE}步骤 5/6: 启动服务...${NC}"
ssh_exec "cd $REMOTE_DIR && docker-compose up -d && sleep 30"
echo -e "${GREEN}✅ 服务已启动${NC}"
echo ""
# 步骤6:验证部署
echo -e "${BLUE}步骤 6/6: 验证部署...${NC}"
# 检查容器状态
echo "检查容器状态..."
ssh_exec "cd $REMOTE_DIR && docker-compose ps"
# 检查网站响应
echo ""
echo "检查网站响应..."
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" http://$SERVER_IP:3000 || echo "000")
if [ "$RESPONSE" = "200" ]; then
echo -e "${GREEN}✅ 网站响应正常 (HTTP $RESPONSE)${NC}"
else
echo -e "${YELLOW}⚠️ 网站响应异常 (HTTP $RESPONSE)${NC}"
fi
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}🎉 销售官网更新部署完成!${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo -e "${YELLOW}📝 更新内容:${NC}"
echo "✅ Hero首页组件 - 推广期特惠¥599"
echo "✅ Pricing价格组件 - 三级版本+远程部署服务"
echo "✅ SystemFeatures系统功能 - 12大核心功能"
echo "✅ Features核心优势 - 免费版vs付费版对比"
echo ""
echo -e "${YELLOW}🌐 访问地址:${NC}"
echo "http://$SERVER_IP:3000"
echo ""
# 清理本地临时文件
rm -f website-update.tar.gz
echo -e "${GREEN}✨ 部署成功!${NC}"