#!/bin/bash # 部署脚本 # 使用方法: ./deploy.sh echo "=========================================" echo "部署 由壹点3D素材 到 TrueNAS 服务器" echo "=========================================" # NAS 服务器配置 NAS_HOST="192.168.58.20" NAS_USER="root" NAS_PROJECT_PATH="/mnt/PoolOne/apps/youyidian-3d" echo "1. 打包项目文件..." tar -czf project.tar.gz \ --exclude='node_modules' \ --exclude='.next' \ --exclude='.git' \ --exclude='uploads' \ --exclude='.env.local' \ . echo "2. 上传到 NAS 服务器..." scp project.tar.gz ${NAS_USER}@${NAS_HOST}:/tmp/ echo "3. 在 NAS 服务器上部署..." ssh ${NAS_USER}@${NAS_HOST} << 'ENDSSH' # 创建项目目录 mkdir -p /mnt/PoolOne/apps/youyidian-3d cd /mnt/PoolOne/apps/youyidian-3d # 解压项目 tar -xzf /tmp/project.tar.gz # 清理临时文件 rm /tmp/project.tar.gz # 停止旧容器 docker-compose down # 构建并启动新容器 docker-compose up -d --build # 等待容器启动 echo "等待容器启动..." sleep 10 # 运行数据库迁移 docker-compose exec -T app npx prisma db push --accept-data-loss # 查看容器状态 docker-compose ps # 查看容器日志 echo "最近的日志:" docker-compose logs --tail=50 ENDSSH echo "4. 清理本地临时文件..." rm project.tar.gz echo "=========================================" echo "部署完成!" echo "访问地址: http://192.168.58.20:4320" echo "========================================="