gongxiangp2/deploy.sh
2025-10-26 09:11:04 +08:00

69 lines
1.4 KiB
Bash
Executable File

#!/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 "========================================="