4.4 KiB
4.4 KiB
🚀 WorkTime 服务器部署指南
📋 概述
WorkTime应用现在支持服务器存储,让您可以在多台设备上同步数据。本指南将帮助您部署后端服务器。
🛠️ 服务器要求
- Node.js: 版本 14.0.0 或更高
- 内存: 至少 512MB RAM
- 存储: 至少 100MB 可用空间
- 网络: 支持 HTTP/HTTPS 访问
📦 安装步骤
1. 安装依赖
# 安装服务器依赖
npm install express cors
# 或者使用提供的package.json
cp package-server.json package.json
npm install
2. 启动服务器
# 开发模式(自动重启)
npm run dev
# 生产模式
npm start
3. 验证安装
访问 http://localhost:3001/api/health
应该返回:
{
"status": "ok",
"timestamp": "2024-01-01T00:00:00.000Z"
}
🌐 生产环境部署
使用 PM2(推荐)
# 安装PM2
npm install -g pm2
# 启动应用
pm2 start server.js --name worktime-server
# 设置开机自启
pm2 startup
pm2 save
# 查看状态
pm2 status
pm2 logs worktime-server
使用 Docker
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY server.js ./
EXPOSE 3001
CMD ["node", "server.js"]
# 构建镜像
docker build -t worktime-server .
# 运行容器
docker run -d -p 3001:3001 --name worktime-server worktime-server
使用 Nginx 反向代理
server {
listen 80;
server_name your-domain.com;
location /api/ {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
🔧 配置选项
环境变量
# 端口配置
PORT=3001
# 数据文件路径
DATA_FILE=/path/to/user-data.json
# CORS配置
CORS_ORIGIN=http://localhost:3000
数据文件位置
默认情况下,数据文件保存在 user-data.json
。您可以修改 DATA_FILE
环境变量来更改位置。
🔒 安全考虑
1. 身份验证(可选)
如果需要多用户支持,可以添加简单的API密钥验证:
// 在server.js中添加
const API_KEY = process.env.API_KEY || 'your-secret-key';
app.use('/api', (req, res, next) => {
const key = req.headers['x-api-key'];
if (key !== API_KEY) {
return res.status(401).json({ error: '未授权访问' });
}
next();
});
2. HTTPS
在生产环境中,建议使用HTTPS:
# 使用Let's Encrypt
sudo certbot --nginx -d your-domain.com
3. 数据备份
定期备份 user-data.json
文件:
# 创建备份脚本
#!/bin/bash
cp user-data.json backup/user-data-$(date +%Y%m%d-%H%M%S).json
📊 监控和维护
日志监控
# 查看应用日志
pm2 logs worktime-server
# 查看错误日志
pm2 logs worktime-server --err
性能监控
# 查看资源使用情况
pm2 monit
# 查看详细统计
pm2 show worktime-server
数据备份
# 自动备份脚本
#!/bin/bash
BACKUP_DIR="/backup/worktime"
DATE=$(date +%Y%m%d-%H%M%S)
mkdir -p $BACKUP_DIR
cp user-data.json $BACKUP_DIR/user-data-$DATE.json
# 保留最近30天的备份
find $BACKUP_DIR -name "user-data-*.json" -mtime +30 -delete
🔄 更新和维护
更新应用
# 停止应用
pm2 stop worktime-server
# 更新代码
git pull origin main
# 安装新依赖
npm install
# 重启应用
pm2 restart worktime-server
数据迁移
如果需要迁移到新服务器:
- 停止旧服务器
- 复制
user-data.json
到新服务器 - 启动新服务器
- 更新前端配置中的服务器地址
🆘 故障排除
常见问题
-
端口被占用
# 查看端口使用情况 lsof -i :3001 # 杀死占用进程 kill -9 <PID>
-
权限问题
# 确保有写入权限 chmod 755 /path/to/data/directory
-
内存不足
# 增加Node.js内存限制 pm2 start server.js --name worktime-server --node-args="--max-old-space-size=1024"
联系支持
如果遇到问题,请检查:
- 服务器日志
- 网络连接
- 文件权限
- 磁盘空间
📝 许可证
本项目采用 MIT 许可证。