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
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
- Fork/导入项目到 GitHub
- 在 Vercel 导入仓库
- 配置构建:
Root Directory: frontend Build Command: pnpm install && pnpm build Output Directory: dist
后端部署到 Railway
- 在 Railway 创建新项目
- 连接 GitHub 仓库
- 设置环境变量(自动生成)
- 自动部署
特点
- ⚡ 部署时间: 5-10 分钟
- 💰 免费额度: 都有免费版本
- 🌍 全球 CDN: 访问速度快
- 🔄 自动部署: Git push 自动部署
3.2 Render(All-in-One)
一站式部署
- 注册 Render 账号
- 连接 GitHub 仓库
- 创建两个 Web Services:
- Backend:
- Build:
cd backend && pnpm install && pnpm build - Start:
cd backend && node dist/app.js
- Build:
- Frontend:
- Build:
cd frontend && pnpm install && pnpm build - Static Site
- Publish:
frontend/dist
- Build:
- Backend:
特点
- ⚡ 部署时间: 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