xianyu-auto-reply/DOCKER_MULTIUSER_UPDATE.md
2025-07-25 17:24:29 +08:00

236 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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用户。