4.6 KiB
4.6 KiB
部署到飞牛OS - 快速指南
服务器信息
- IP地址: 192.168.42.252
- 用户名: admin
- 密码: admin123
- 部署路径: /opt/furniture-3d-system
方法一:使用WinSCP上传(最简单)
1. 下载并安装WinSCP
- 下载地址:https://winscp.net/
2. 连接到服务器
- 主机名:
192.168.42.252 - 用户名:
admin - 密码:
admin123 - 协议:SFTP
3. 上传项目文件
- 将
d:\3danzhuang\furniture-3d-system整个目录上传到服务器的/opt/furniture-3d-system - 注意:可以排除以下目录以加快上传速度:
node_modules(会在服务器上重新安装).next(会在服务器上重新构建).gitbackups
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界面
在浏览器中访问:
- 应用首页: http://192.168.42.252:3001
- MinIO控制台: http://192.168.42.252:9003
- 用户名:
minioadmin - 密码:
minioadmin123
- 用户名:
常用命令
# 查看日志
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
重要提示
- 首次部署需要5-10分钟:Docker需要下载镜像和构建应用
- 修改JWT_SECRET:部署后请修改
.env中的JWT_SECRET为强密码 - 修改默认密码:生产环境请修改数据库和MinIO的默认密码
- 防火墙:确保服务器的3000端口已开放