You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

5.3 KiB

部署方案快速对比

选择最适合你的部署方式 🚀

📊 方案对比

方案 难度 适用场景 优点 缺点
PM2 一键部署 推荐 简单 VPS、云服务器 最简单、一键部署、进程管理 需要服务器
Docker Compose 中等 容器化需求 环境隔离、易迁移 需要学习 Docker
云平台部署 简单 快速上线 免费额度、自动扩展 可能有费用
传统部署 复杂 完全自定义 完全控制 配置复杂

🎯 方案一:PM2 一键部署(最简单)

适用场景

  • 你有一台 VPS 或云服务器
  • 想要最快速的部署方式
  • 需要进程管理和自动重启
  • 想要开机自启动

部署步骤

Windows

# 一行命令搞定
.\deploy.ps1

Linux/macOS

# 一行命令搞定
chmod +x deploy.sh && ./deploy.sh

特点

  • 部署时间: 3-5 分钟
  • 🎯 一键完成: 自动安装、构建、启动
  • 🔄 自动重启: 崩溃自动恢复
  • 📊 进程监控: PM2 提供完整的监控
  • 🚀 开机自启: 服务器重启自动启动

访问地址

  • 前端:http://你的服务器IP:5500
  • 后端:http://你的服务器IP:3000

🐳 方案二:Docker 部署

适用场景

  • 需要环境隔离
  • 多个项目部署
  • 需要容器编排
  • 跨平台部署

部署步骤

# 一键 Docker 部署
chmod +x docker-deploy.sh && ./docker-deploy.sh

# 或手动部署
docker-compose up -d

特点

  • 部署时间: 5-10 分钟(首次构建)
  • 📦 环境隔离: 不污染宿主机环境
  • 🔧 易迁移: 可在任何支持 Docker 的环境运行
  • 🔄 自动重启: 容器崩溃自动恢复

☁️ 方案三:云平台部署

3.1 Vercel(前端)+ Railway(后端)

前端部署到 Vercel

  1. Fork/导入项目到 GitHub
  2. 在 Vercel 导入仓库
  3. 配置构建:
    Root Directory: frontend
    Build Command: pnpm install && pnpm build
    Output Directory: dist
    

后端部署到 Railway

  1. 在 Railway 创建新项目
  2. 连接 GitHub 仓库
  3. 设置环境变量(自动生成)
  4. 自动部署

特点

  • 部署时间: 5-10 分钟
  • 💰 免费额度: 都有免费版本
  • 🌍 全球 CDN: 访问速度快
  • 🔄 自动部署: Git push 自动部署

3.2 Render(All-in-One)

一站式部署

  1. 注册 Render 账号
  2. 连接 GitHub 仓库
  3. 创建两个 Web Services:
    • Backend:
      • Build: cd backend && pnpm install && pnpm build
      • Start: cd backend && node dist/app.js
    • Frontend:
      • Build: cd frontend && pnpm install && pnpm build
      • Static Site
      • Publish: frontend/dist

特点

  • 部署时间: 10-15 分钟
  • 💰 免费计划: 每月有免费额度
  • 🔄 自动部署: Git push 触发
  • 🔒 免费 SSL: 自动配置 HTTPS

🎮 方案四:手动部署

适用场景

  • 需要完全自定义配置
  • 学习部署流程
  • 特殊环境要求

部署步骤

# 1. 克隆项目
git clone <your-repo>
cd just-demo

# 2. 安装依赖
pnpm install:all

# 3. 构建
pnpm build

# 4. 配置环境变量
cp backend/.env.example backend/.env
# 编辑 backend/.env

# 5. 数据库迁移
cd backend && pnpm migrate:prod && cd ..

# 6. 启动后端
cd backend && node dist/app.js &

# 7. 启动前端
cd frontend && npx serve dist -p 5500 &

🔧 配置 Nginx 反向代理(可选)

如果你使用 PM2 或手动部署,可以配置 Nginx:

# 1. 安装 Nginx
sudo apt install nginx  # Ubuntu/Debian

# 2. 配置
sudo cp nginx.conf /etc/nginx/sites-available/just-demo
sudo ln -s /etc/nginx/sites-available/just-demo /etc/nginx/sites-enabled/

# 3. 修改域名
sudo nano /etc/nginx/sites-available/just-demo
# 将 your-domain.com 改为你的域名

# 4. 重启 Nginx
sudo nginx -t
sudo systemctl reload nginx

📱 快速决策指南

我该选哪个方案?

🏃 我想最快部署

选择 PM2 一键部署

# Windows
.\deploy.ps1

# Linux/macOS
./deploy.sh

💰 我没有服务器/想省钱

选择云平台部署

  • Vercel(前端免费)
  • Railway(后端有免费额度)
  • Render(全栈免费)

🐳 我想要容器化

选择 Docker 部署

./docker-deploy.sh

🎓 我想学习部署流程

选择手动部署

  • 完整了解每个步骤
  • 便于排查问题

🆘 遇到问题?

PM2 方案

pm2 logs              # 查看日志
pm2 status            # 查看状态
pm2 restart all       # 重启服务

Docker 方案

docker-compose logs -f        # 查看日志
docker-compose ps             # 查看状态
docker-compose restart        # 重启服务

云平台

  • 查看部署日志
  • 检查环境变量
  • 查看服务状态

📚 详细文档


🎉 开始部署

选择一个方案,立即开始:

# PM2(推荐)
./deploy.sh          # Linux/macOS
.\deploy.ps1         # Windows

# Docker
./docker-deploy.sh

# 查看详细文档
cat DEPLOY.md