mirror of
https://github.com/zhinianboke/xianyu-auto-reply.git
synced 2025-08-03 04:57:35 +08:00
236 lines
5.0 KiB
Markdown
236 lines
5.0 KiB
Markdown
# Docker多用户系统部署更新
|
||
|
||
## 🎯 更新概述
|
||
|
||
为支持多用户系统和图形验证码功能,Docker部署配置已更新。
|
||
|
||
## 📦 新增依赖
|
||
|
||
### Python依赖
|
||
- **Pillow>=10.0.0** - 图像处理库,用于生成图形验证码
|
||
|
||
### 系统依赖
|
||
- **libjpeg-dev** - JPEG图像支持
|
||
- **libpng-dev** - PNG图像支持
|
||
- **libfreetype6-dev** - 字体渲染支持
|
||
- **fonts-dejavu-core** - 默认字体包
|
||
|
||
## 🔧 配置文件更新
|
||
|
||
### 1. requirements.txt
|
||
```diff
|
||
# AI回复相关
|
||
openai>=1.65.5
|
||
python-dotenv>=1.0.1
|
||
|
||
+ # 图像处理(图形验证码)
|
||
+ Pillow>=10.0.0
|
||
```
|
||
|
||
### 2. Dockerfile
|
||
```diff
|
||
# 安装系统依赖
|
||
RUN apt-get update && \
|
||
apt-get install -y --no-install-recommends \
|
||
nodejs \
|
||
npm \
|
||
tzdata \
|
||
curl \
|
||
+ libjpeg-dev \
|
||
+ libpng-dev \
|
||
+ libfreetype6-dev \
|
||
+ fonts-dejavu-core \
|
||
&& apt-get clean \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
```
|
||
|
||
### 3. docker-compose.yml
|
||
```diff
|
||
environment:
|
||
- ADMIN_USERNAME=${ADMIN_USERNAME:-admin}
|
||
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin123}
|
||
- JWT_SECRET_KEY=${JWT_SECRET_KEY:-default-secret-key}
|
||
- SESSION_TIMEOUT=${SESSION_TIMEOUT:-3600}
|
||
+ # 多用户系统配置
|
||
+ - MULTIUSER_ENABLED=${MULTIUSER_ENABLED:-true}
|
||
+ - USER_REGISTRATION_ENABLED=${USER_REGISTRATION_ENABLED:-true}
|
||
+ - EMAIL_VERIFICATION_ENABLED=${EMAIL_VERIFICATION_ENABLED:-true}
|
||
+ - CAPTCHA_ENABLED=${CAPTCHA_ENABLED:-true}
|
||
+ - TOKEN_EXPIRE_TIME=${TOKEN_EXPIRE_TIME:-86400}
|
||
```
|
||
|
||
## 🚀 部署步骤
|
||
|
||
### 1. 更新代码
|
||
```bash
|
||
# 拉取最新代码
|
||
git pull origin main
|
||
|
||
# 检查更新的文件
|
||
git status
|
||
```
|
||
|
||
### 2. 重新构建镜像
|
||
```bash
|
||
# 停止现有容器
|
||
docker-compose down
|
||
|
||
# 重新构建镜像(包含新依赖)
|
||
docker-compose build --no-cache
|
||
|
||
# 启动服务
|
||
docker-compose up -d
|
||
```
|
||
|
||
### 3. 验证部署
|
||
```bash
|
||
# 检查容器状态
|
||
docker-compose ps
|
||
|
||
# 查看日志
|
||
docker-compose logs -f xianyu-app
|
||
|
||
# 健康检查
|
||
curl http://localhost:8080/health
|
||
```
|
||
|
||
## 🧪 功能测试
|
||
|
||
### 1. 访问注册页面
|
||
```bash
|
||
# 打开浏览器访问
|
||
http://localhost:8080/register.html
|
||
```
|
||
|
||
### 2. 测试图形验证码
|
||
- 页面应该自动显示图形验证码
|
||
- 点击图片可以刷新验证码
|
||
- 输入4位验证码应该能够验证
|
||
|
||
### 3. 测试用户注册
|
||
- 输入用户名和邮箱
|
||
- 验证图形验证码
|
||
- 发送邮箱验证码
|
||
- 完成注册流程
|
||
|
||
### 4. 测试数据隔离
|
||
- 注册多个用户
|
||
- 分别登录添加不同的Cookie
|
||
- 验证用户只能看到自己的数据
|
||
|
||
## 🔍 故障排除
|
||
|
||
### 1. 图形验证码不显示
|
||
```bash
|
||
# 检查Pillow是否正确安装
|
||
docker-compose exec xianyu-app python -c "from PIL import Image; print('Pillow OK')"
|
||
|
||
# 检查字体是否可用
|
||
docker-compose exec xianyu-app ls /usr/share/fonts/
|
||
```
|
||
|
||
### 2. 容器启动失败
|
||
```bash
|
||
# 查看详细错误日志
|
||
docker-compose logs xianyu-app
|
||
|
||
# 检查依赖安装
|
||
docker-compose exec xianyu-app pip list | grep -i pillow
|
||
```
|
||
|
||
### 3. 权限问题
|
||
```bash
|
||
# 检查数据目录权限
|
||
ls -la ./data/
|
||
ls -la ./logs/
|
||
|
||
# 修复权限(如需要)
|
||
sudo chown -R 1000:1000 ./data ./logs
|
||
```
|
||
|
||
## 📊 资源使用
|
||
|
||
### 更新后的资源需求
|
||
- **内存**: 512MB → 768MB(推荐)
|
||
- **磁盘**: 1GB → 1.5GB(推荐)
|
||
- **CPU**: 0.5核 → 0.5核(无变化)
|
||
|
||
### 调整资源限制
|
||
```yaml
|
||
# docker-compose.yml
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
memory: 768M # 增加内存限制
|
||
cpus: '0.5'
|
||
reservations:
|
||
memory: 384M # 增加内存预留
|
||
cpus: '0.25'
|
||
```
|
||
|
||
## 🔐 安全配置
|
||
|
||
### 1. 环境变量安全
|
||
```bash
|
||
# 创建 .env 文件
|
||
cat > .env << EOF
|
||
# 修改默认密码
|
||
ADMIN_PASSWORD=your-secure-password
|
||
|
||
# 使用强JWT密钥
|
||
JWT_SECRET_KEY=your-very-long-and-random-secret-key
|
||
|
||
# 配置多用户功能
|
||
MULTIUSER_ENABLED=true
|
||
USER_REGISTRATION_ENABLED=true
|
||
EMAIL_VERIFICATION_ENABLED=true
|
||
CAPTCHA_ENABLED=true
|
||
EOF
|
||
```
|
||
|
||
### 2. 网络安全
|
||
```bash
|
||
# 如果不需要外部访问注册功能,可以禁用
|
||
USER_REGISTRATION_ENABLED=false
|
||
|
||
# 或者使用Nginx进行访问控制
|
||
# 参考 nginx/nginx.conf 配置
|
||
```
|
||
|
||
## 📋 迁移检查清单
|
||
|
||
- [ ] 更新 requirements.txt
|
||
- [ ] 更新 Dockerfile
|
||
- [ ] 更新 docker-compose.yml
|
||
- [ ] 重新构建镜像
|
||
- [ ] 测试图形验证码功能
|
||
- [ ] 测试用户注册流程
|
||
- [ ] 验证数据隔离
|
||
- [ ] 检查资源使用
|
||
- [ ] 更新监控配置
|
||
|
||
## 🎉 升级完成
|
||
|
||
升级完成后,您的系统将支持:
|
||
|
||
1. **多用户注册和登录**
|
||
2. **图形验证码保护**
|
||
3. **邮箱验证码验证**
|
||
4. **完整的数据隔离**
|
||
5. **企业级安全保护**
|
||
|
||
现在可以安全地支持多个用户同时使用系统,每个用户的数据完全独立!
|
||
|
||
## 📞 技术支持
|
||
|
||
如果在部署过程中遇到问题:
|
||
|
||
1. 查看容器日志:`docker-compose logs -f`
|
||
2. 检查健康状态:`docker-compose ps`
|
||
3. 验证网络连接:`curl http://localhost:8080/health`
|
||
4. 测试功能:访问 `http://localhost:8080/register.html`
|
||
|
||
---
|
||
|
||
**注意**: 首次部署多用户系统后,建议运行数据迁移脚本将历史数据绑定到admin用户。
|