| 文件 | 用途 | 使用场景 |
|---|---|---|
deploy.sh |
Linux/macOS 部署脚本 | 生产环境部署 |
deploy.ps1 |
Windows 部署脚本 | 生产环境部署 |
start.sh |
Linux/macOS 开发启动 | 本地开发 |
start.bat |
Windows 开发启动 | 本地开发 |
DEPLOY.md |
详细部署指南 | 参考文档 |
CHANGELOG.md |
版本更新日志 | 了解更新 |
# 1. SSH 登录服务器
ssh user@your-server.com
# 2. 克隆代码
git clone https://github.com/luoliguang/fangdu.git
cd fangdu
# 3. 配置环境变量(重要!)
cp backend/env.example backend/.env
nano backend/.env
# 修改:ADMIN_PASSWORD, JWT_SECRET, SECRET_TOKEN
# 4. 一键部署
chmod +x deploy.sh
./deploy.sh
# ✅ 完成!服务已自动启动# 1. 远程桌面登录服务器
# 2. 克隆代码
git clone https://github.com/luoliguang/fangdu.git
cd fangdu
# 3. 配置环境变量(重要!)
copy backend\env.example backend\.env
notepad backend\.env
# 修改:ADMIN_PASSWORD, JWT_SECRET, SECRET_TOKEN
# 4. 一键部署
.\deploy.ps1
# ✅ 完成!服务已自动启动Linux/macOS:
chmod +x start.sh
./start.shWindows:
双击 start.bat
# 终端1 - 启动后端
cd backend
npm install
node server.js
# 终端2 - 启动前端
cd frontend
npm install
npm run dev当您推送了新代码后,在服务器上运行:
# 拉取最新代码
git pull origin main
# 重新部署(会自动备份和迁移数据库)
./deploy.sh # Linux/macOS
# 或
.\deploy.ps1 # Windows部署脚本会自动:
- ✅ 停止旧服务
- ✅ 备份数据库
- ✅ 更新依赖
- ✅ 数据库迁移
- ✅ 构建前端
- ✅ 启动新服务
首次部署前,必须修改 backend/.env:
# 管理员账号(必须修改!)
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your_strong_password_123
# 安全密钥(必须修改!)
JWT_SECRET=your_jwt_secret_key_here
SECRET_TOKEN=your_admin_token_here
# 服务器配置
PORT=3002
NODE_ENV=production
# CORS(改为您的域名)
CORS_ORIGIN=https://your-domain.com💡 生成强随机密钥:
# Linux/macOS openssl rand -base64 32 # Windows (PowerShell) -join ((65..90) + (97..122) | Get-Random -Count 32 | ForEach-Object {[char]$_})
pm2 status # 查看状态
pm2 logs fangdu-backend # 查看日志
pm2 restart fangdu-backend # 重启
pm2 stop fangdu-backend # 停止
pm2 delete fangdu-backend # 删除# Linux/macOS
pkill -f "node.*server.js" # 停止服务
ps aux | grep node # 查看进程
# Windows
tasklist | findstr node # 查看进程
taskkill /F /IM node.exe # 停止所有 Node 进程开发环境:
生产环境:
建议配置 Nginx 反向代理,详见 DEPLOY.md
- ✅ 会话ID机制:每个访客有唯一标识
- ✅ 准确统计:同一网络下的多个用户可正确识别
- ✅ 防刷机制:2分钟内重复访问不计数
- ✅ 在线统计:5分钟内有活动算在线
部署脚本会自动添加 session_id 字段,无需手动操作。
# Linux/macOS
lsof -i :3002
kill -9 <PID>
# Windows
netstat -ano | findstr :3002
taskkill /PID <PID> /Fchmod +x deploy.sh start.sh# 查看备份
ls backend/database/*.backup.*
# 恢复备份(如果需要)
cp backend/database/my_materials.db.backup.20241008 backend/database/my_materials.db检查:
- 后端是否启动:
curl http://localhost:3002/api/v1/materials - CORS 配置:
backend/.env中的CORS_ORIGIN - 防火墙:确保 3002 端口开放
快速启动模板:
# 生产环境(服务器)
git clone https://github.com/luoliguang/fangdu.git && cd fangdu
cp backend/env.example backend/.env && nano backend/.env
chmod +x deploy.sh && ./deploy.sh
# 开发环境(本地)
git clone https://github.com/luoliguang/fangdu.git && cd fangdu
chmod +x start.sh && ./start.sh