# 部署方案快速对比 选择最适合你的部署方式 🚀 ## 📊 方案对比 | 方案 | 难度 | 适用场景 | 优点 | 缺点 | |------|------|---------|------|------| | **PM2 一键部署** ⭐推荐 | ⭐ 简单 | VPS、云服务器 | 最简单、一键部署、进程管理 | 需要服务器 | | **Docker Compose** | ⭐⭐ 中等 | 容器化需求 | 环境隔离、易迁移 | 需要学习 Docker | | **云平台部署** | ⭐ 简单 | 快速上线 | 免费额度、自动扩展 | 可能有费用 | | **传统部署** | ⭐⭐⭐ 复杂 | 完全自定义 | 完全控制 | 配置复杂 | --- ## 🎯 方案一:PM2 一键部署(最简单) ### 适用场景 - ✅ 你有一台 VPS 或云服务器 - ✅ 想要最快速的部署方式 - ✅ 需要进程管理和自动重启 - ✅ 想要开机自启动 ### 部署步骤 #### Windows ```powershell # 一行命令搞定 .\deploy.ps1 ``` #### Linux/macOS ```bash # 一行命令搞定 chmod +x deploy.sh && ./deploy.sh ``` ### 特点 - ⚡ **部署时间**: 3-5 分钟 - 🎯 **一键完成**: 自动安装、构建、启动 - 🔄 **自动重启**: 崩溃自动恢复 - 📊 **进程监控**: PM2 提供完整的监控 - 🚀 **开机自启**: 服务器重启自动启动 ### 访问地址 - 前端:`http://你的服务器IP:5500` - 后端:`http://你的服务器IP:3000` --- ## 🐳 方案二:Docker 部署 ### 适用场景 - ✅ 需要环境隔离 - ✅ 多个项目部署 - ✅ 需要容器编排 - ✅ 跨平台部署 ### 部署步骤 ```bash # 一键 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 --- ## 🎮 方案四:手动部署 ### 适用场景 - ✅ 需要完全自定义配置 - ✅ 学习部署流程 - ✅ 特殊环境要求 ### 部署步骤 ```bash # 1. 克隆项目 git clone 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: ```bash # 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 一键部署** ```bash # Windows .\deploy.ps1 # Linux/macOS ./deploy.sh ``` #### 💰 我没有服务器/想省钱 → **选择云平台部署** - Vercel(前端免费) - Railway(后端有免费额度) - Render(全栈免费) #### 🐳 我想要容器化 → **选择 Docker 部署** ```bash ./docker-deploy.sh ``` #### 🎓 我想学习部署流程 → **选择手动部署** - 完整了解每个步骤 - 便于排查问题 --- ## 🆘 遇到问题? ### PM2 方案 ```bash pm2 logs # 查看日志 pm2 status # 查看状态 pm2 restart all # 重启服务 ``` ### Docker 方案 ```bash docker-compose logs -f # 查看日志 docker-compose ps # 查看状态 docker-compose restart # 重启服务 ``` ### 云平台 - 查看部署日志 - 检查环境变量 - 查看服务状态 --- ## 📚 详细文档 - [完整部署指南](./DEPLOY.md) - [项目说明](./README.md) --- ## 🎉 开始部署 选择一个方案,立即开始: ```bash # PM2(推荐) ./deploy.sh # Linux/macOS .\deploy.ps1 # Windows # Docker ./docker-deploy.sh # 查看详细文档 cat DEPLOY.md ```