furniture-3d-system-Wu/scripts/部署到飞牛OS-快速指南.md

4.6 KiB
Raw Permalink Blame History

部署到飞牛OS - 快速指南

服务器信息

  • IP地址: 192.168.42.252
  • 用户名: admin
  • 密码: admin123
  • 部署路径: /opt/furniture-3d-system

方法一:使用WinSCP上传(最简单)

1. 下载并安装WinSCP

2. 连接到服务器

  • 主机名:192.168.42.252
  • 用户名:admin
  • 密码:admin123
  • 协议:SFTP

3. 上传项目文件

  • 将 d:\3danzhuang\furniture-3d-system 整个目录上传到服务器的 /opt/furniture-3d-system
  • 注意:可以排除以下目录以加快上传速度:
    • node_modules(会在服务器上重新安装)
    • .next(会在服务器上重新构建)
    • .git
    • backups

4. 在服务器上执行部署

通过WinSCP的终端功能,或使用SSH客户端连接到服务器,执行:

cd /opt/furniture-3d-system

# 创建.env文件
cat > .env << 'EOF'
DATABASE_URL=postgresql://furniture:furniture123@postgres:5432/furniture_db?schema=public
S3_ENDPOINT=http://minio:9000
S3_PUBLIC_ENDPOINT=http://192.168.42.252:9002
S3_REGION=us-east-1
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin123
S3_BUCKET=furniture-3d-models
JWT_SECRET=change-me-in-production-use-strong-random-string
NODE_ENV=production
NEXT_TELEMETRY_DISABLED=1
PORT=3000
WEB_PORT=3001
EOF

# 启动服务
docker-compose -f docker-compose.prod.yml up -d

# 查看日志(等待服务启动)
docker-compose -f docker-compose.prod.yml logs -f

5. 初始化数据库(首次部署)

等待服务启动完成后(约5-10分钟),执行:

docker-compose -f docker-compose.prod.yml exec app npx prisma migrate deploy
docker-compose -f docker-compose.prod.yml exec app npm run db:verify-master-data:all:strict
docker-compose -f docker-compose.prod.yml exec app npx prisma db seed

方法二:使用压缩包上传

1. 在本地打包项目

# 在PowerShell中执行
cd d:\3danzhuang
Compress-Archive -Path furniture-3d-system -DestinationPath furniture-3d-system.zip -Force

2. 上传压缩包到服务器

使用WinSCP将 furniture-3d-system.zip 上传到服务器的 /opt/ 目录

3. 在服务器上解压和部署

cd /opt
unzip -q furniture-3d-system.zip
cd furniture-3d-system

# 创建.env文件(同上)
cat > .env << 'EOF'
DATABASE_URL=postgresql://furniture:furniture123@postgres:5432/furniture_db?schema=public
S3_ENDPOINT=http://minio:9000
S3_PUBLIC_ENDPOINT=http://192.168.42.252:9002
S3_REGION=us-east-1
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin123
S3_BUCKET=furniture-3d-models
JWT_SECRET=change-me-in-production-use-strong-random-string
NODE_ENV=production
NEXT_TELEMETRY_DISABLED=1
PORT=3000
WEB_PORT=3001
EOF

# 启动服务
docker-compose -f docker-compose.prod.yml up -d

# 查看日志
docker-compose -f docker-compose.prod.yml logs -f

验证部署

1. 检查服务状态

docker-compose -f docker-compose.prod.yml ps

所有服务应该显示为 Up 状态

2. 检查健康状态

curl http://localhost:3000/api/health

应该返回:

{
  "status": "healthy",
  "services": {
    "database": "connected",
    "api": "running"
  }
}

3. 访问Web界面

在浏览器中访问:


常用命令

# 查看日志
docker-compose -f docker-compose.prod.yml logs -f app

# 重启服务
docker-compose -f docker-compose.prod.yml restart

# 停止服务
docker-compose -f docker-compose.prod.yml down

# 更新代码后重新部署
docker-compose -f docker-compose.prod.yml down
docker-compose -f docker-compose.prod.yml build app
docker-compose -f docker-compose.prod.yml up -d

故障排查

服务无法启动

# 查看详细日志
docker-compose -f docker-compose.prod.yml logs app

# 检查端口占用
netstat -tuln | grep 3000

数据库连接失败

# 检查PostgreSQL容器
docker-compose -f docker-compose.prod.yml ps postgres

# 查看数据库日志
docker-compose -f docker-compose.prod.yml logs postgres

构建失败

# 清理Docker缓存后重新构建
docker system prune -a
docker-compose -f docker-compose.prod.yml build --no-cache app

重要提示

  1. 首次部署需要5-10分钟:Docker需要下载镜像和构建应用
  2. 修改JWT_SECRET:部署后请修改 .env 中的 JWT_SECRET 为强密码
  3. 修改默认密码:生产环境请修改数据库和MinIO的默认密码
  4. 防火墙:确保服务器的3000端口已开放