# 创赢未来报名评分系统 - 生产环境部署指南 ## 📋 部署前准备 ### 系统要求 - **操作系统**: Ubuntu 20.04+ / CentOS 7+ / Debian 10+ - **内存**: 至少 2GB RAM - **磁盘**: 至少 20GB 可用空间 - **Docker**: 20.10+ - **Docker Compose**: 2.0+ ### 安装 Docker ```bash # Ubuntu/Debian curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER # 安装 Docker Compose sudo apt-get install -y docker-compose-plugin # 或 pip install docker-compose ``` ## 🚀 快速部署 ### 1. 拉取代码 ```bash git clone https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git cd Scoring-System ``` ### 2. 配置环境变量 ```bash # 复制环境变量模板 cp .env.example .env # 编辑 .env 文件,填入您的实际配置 vim .env ``` **必须配置的项目:** - `SECRET_KEY`: Django 安全密钥(必须修改!) - `DB_PASSWORD`: 数据库密码 - `WECHAT_*`: 微信支付相关配置(如需支付功能) - `ALIYUN_*`: 阿里云 OSS 和 AI 服务配置(如需语音转写和 AI 评估) ### 3. 执行部署脚本 ```bash # 给脚本添加执行权限 chmod +x deploy.sh # 执行部署 ./deploy.sh ``` ## 🔧 手动部署(高级) ### 1. 构建镜像 ```bash docker-compose build --no-cache ``` ### 2. 启动服务 ```bash # 后台启动 docker-compose up -d # 查看日志 docker-compose logs -f # 查看特定服务日志 docker-compose logs -f backend docker-compose logs -f frontend ``` ### 3. 执行数据库迁移 ```bash docker-compose exec backend python manage.py migrate docker-compose exec backend python manage.py createsuperuser ``` ### 4. 收集静态文件 ```bash docker-compose exec backend python manage.py collectstatic --noinput ``` ## 🌐 Nginx 反向代理配置(推荐) 如果需要使用域名和 HTTPS,在服务器上安装 Nginx: ```nginx # /etc/nginx/sites-available/scoring-system server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 启用配置: ```bash sudo ln -s /etc/nginx/sites-available/scoring-system /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx ``` ## 🔒 HTTPS 配置(Let's Encrypt) ```bash # 安装 Certbot sudo apt-get install -y certbot python3-certbot-nginx # 申请证书 sudo certbot --nginx -d your-domain.com # 自动续期 sudo certbot renew --dry-run ``` ## 📊 常用命令 ```bash # 查看运行状态 docker-compose ps # 停止服务 docker-compose down # 重启服务 docker-compose restart # 重启单个服务 docker-compose restart backend # 进入容器 docker-compose exec backend bash docker-compose exec frontend sh # 查看容器日志 docker-compose logs -f --tail=100 backend # 清理未使用的镜像 docker image prune -f # 更新部署(拉取最新代码并重启) git pull ./deploy.sh ``` ## 🔍 故障排查 ### 问题1: 端口被占用 ```bash # 检查端口占用 sudo netstat -tlnp | grep 8000 sudo netstat -tlnp | grep 80 # 修改 docker-compose.yml 中的端口映射 ``` ### 问题2: 数据库连接失败 ```bash # 检查数据库配置 docker-compose exec backend python manage.py dbshell # 查看后端日志 docker-compose logs backend | grep -i error ``` ### 问题3: 静态文件无法访问 ```bash # 重新收集静态文件 docker-compose exec backend python manage.py collectstatic --noinput # 检查权限 ls -la backend/static/ ls -la backend/media/ ``` ### 问题4: 容器无法启动 ```bash # 查看详细日志 docker-compose logs --no-color # 检查配置 docker-compose config ``` ## 💾 数据备份 ### 数据库备份 ```bash # 进入容器执行备份 docker-compose exec backend python manage.py dumpdata > backup_$(date +%Y%m%d).json # 或使用 PostgreSQL 直接备份 docker exec scoring_system_db pg_dump -U postgres scoring_system > db_backup_$(date +%Y%m%d).sql ``` ### 媒体文件备份 ```bash # 备份上传的文件 tar -czvf media_backup_$(date +%Y%m%d).tar.gz backend/media/ ``` ## 🔄 自动部署(CI/CD) 使用 Gitea Actions 或 Jenkins 实现自动部署: ```yaml # .gitea/workflows/deploy.yaml name: Deploy to Production on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - name: Deploy to Server uses: appleboy/ssh-action@master with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} script: | cd ~/Scoring-System git pull ./deploy.sh ``` ## 📞 技术支持 - **项目仓库**: https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System - **问题反馈**: 在仓库提交 Issue --- **部署完成后访问地址:** - 🌐 前端页面: http://your-server-ip/ - 🔧 后台管理: http://your-server-ip:8000/admin/ - 📚 API 文档: http://your-server-ip:8000/api/docs/