Files
zjpb.net/.claude/skills/server-update.md
Jowe c61969dfc9 feat: v3.1 - 用户密码管理和邮箱验证功能
新增功能:
1. 修改密码功能
   - 用户可以修改自己的密码
   - 需要验证旧密码
   - 新密码至少6位且不能与旧密码相同

2. 邮箱绑定功能
   - 用户可以绑定/修改邮箱
   - 邮箱格式验证和唯一性检查
   - 修改邮箱后需要重新验证

3. 邮箱验证功能
   - 发送验证邮件(24小时有效)
   - 点击邮件链接完成验证
   - 验证状态显示

技术实现:
- 新增4个数据库字段(email_verified等)
- 封装邮件发送工具(utils/email_sender.py)
- 新增5个API接口
- 新增修改密码页面
- 集成邮箱管理到个人中心

文件变更:
- 修改:app.py, models.py, base_new.html, profile.html
- 新增:change_password.html, email_sender.py, migrate_email_verification.py
- 文档:server-update.md, SERVER_RESTART_GUIDE.md

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-07 23:26:02 +08:00

2.7 KiB
Raw Permalink Blame History

ZJPB 服务器更新标准流程

适用场景

  • 代码更新后需要部署到服务器
  • 数据库结构变更需要迁移
  • 新功能上线

服务器环境

  • 部署方式: 1Panel 管理
  • 项目路径: /opt/1panel/apps/zjpb
  • 运行方式: Python 直接运行或 Gunicorn
  • 数据库: MySQL/MariaDB

标准更新流程

第一步:提交代码到 Git

# 在本地开发环境
git add .
git commit -m "feat: 功能描述"
git push origin master

第二步:登录服务器

ssh your_username@server_ip

第三步:进入项目目录

cd /opt/1panel/apps/zjpb

第四步:停止应用

# 查找进程
ps aux | grep python | grep -v grep

# 停止进程使用进程ID
kill <PID>

# 或者强制停止
pkill -f "python app.py"

第五步:拉取最新代码

git pull origin master

第六步:激活虚拟环境

source venv/bin/activate

第七步:安装/更新依赖(如有)

pip install -r requirements.txt

第八步:运行数据库迁移(如有)

# 根据具体的迁移脚本名称
python migrate_xxx.py

第九步:启动应用

# 后台运行
nohup python app.py > app.log 2>&1 &

# 或使用 Gunicorn
nohup gunicorn -w 4 -b 0.0.0.0:5000 app:app > gunicorn.log 2>&1 &

第十步:验证启动成功

# 检查进程
ps aux | grep python | grep -v grep

# 查看日志
tail -f app.log

# 测试访问
curl http://localhost:5000/

快速命令(一键执行)

# 进入目录并更新
cd /opt/1panel/apps/zjpb && \
pkill -f "python app.py" && \
git pull origin master && \
source venv/bin/activate && \
nohup python app.py > app.log 2>&1 & && \
tail -f app.log

注意事项

  1. 数据库迁移前必须备份

    mysqldump -u root -p zjpb > backup_$(date +%Y%m%d_%H%M%S).sql
    
  2. 检查环境变量配置

    • 确保 .env 文件存在且配置正确
    • 新增的环境变量需要手动添加
  3. 日志监控

    • 启动后观察日志至少 1-2 分钟
    • 确认没有错误信息
  4. 回滚方案

    # 如果出现问题,回滚到上一个版本
    git reset --hard HEAD~1
    # 重启应用
    

常见问题

问题1端口被占用

# 查找占用端口的进程
lsof -i :5000
# 杀死进程
kill -9 <PID>

问题2虚拟环境找不到

# 重新创建虚拟环境
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

问题3数据库连接失败

# 检查数据库服务状态
systemctl status mysql
# 检查 .env 配置
cat .env | grep DATABASE

创建日期: 2025-02-07 最后更新: 2025-02-07