3.8 KiB
3.8 KiB
ZJPB 开发进度 - 2026-02-23
📦 版本信息
- 最新提交:
b22627a - 提交时间: 2026-02-23
- 部署状态: ✅ 代码已推送到 Gitea,待手动部署
🎯 本次完成内容
1️⃣ 性能优化(后台加载慢 >1000ms)
NewsAdmin N+1 查询修复
- 在
NewsAdmin添加get_query()方法,使用joinedload预加载关联的site - 移除导致报错的
get_count_query()(count 查询不支持 joinedload)
数据库索引优化
- 新建
migrations/add_performance_indexes.py - 为
sites、news、tags表添加 10 个高频查询字段索引 - 已在生产环境执行完成
管理后台统计查询优化
- 控制台首页多次统计查询合并
recent_sites改为只查必要字段,减少数据传输
2️⃣ 验证码 Bug 修复
问题:前台点击获取新闻,输入正确验证码仍提示失败
原因:detail_new.html 中 fetch 请求缺少 credentials: 'same-origin',导致浏览器不发送 session cookie,验证码 session 无法匹配
修复:templates/detail_new.html fetch 请求中添加 credentials: 'same-origin'
3️⃣ 后台网站管理排序修复
问题:网站列表按创建时间正序排列,最新的反而排在最后
修复:SiteAdmin 添加 column_default_sort = ('created_at', True),改为倒序
4️⃣ Systemd 服务配置
目的:替代手动 nohup 启动,服务器重启后自动恢复
文件:/etc/systemd/system/zjpb.service
[Unit]
Description=ZJPB Flask Application
After=network.target mysql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/1panel/apps/zjpb
ExecStart=/opt/1panel/apps/zjpb/venv/bin/gunicorn -c gunicorn_config.py app:create_app()
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
常用命令:
systemctl start zjpb # 启动
systemctl stop zjpb # 停止
systemctl restart zjpb # 重启
systemctl status zjpb # 状态
journalctl -u zjpb -f # 实时日志
同步修改:gunicorn_config.py 中 daemon = False、pidfile 改为绝对路径
5️⃣ 一键部署脚本
文件:update.sh
用法:SSH 登录服务器后执行 ./update.sh
功能:
git pull拉取最新代码systemctl restart zjpb重启服务- 自动验证服务状态,失败时输出日志
6️⃣ 发布策略调整
调整前:Claude 可以直接 SSH 连接生产服务器操作,风险高
调整后:
本地开发 → git push 到 Gitea → 手动 SSH → ./update.sh
权限文件:.claude/settings.local.json
- 移除:
ssh、scp、curl、wget、cmd、powershell - 保留:
git操作、python/pip
📂 修改文件清单
| 文件 | 类型 | 说明 |
|---|---|---|
app.py |
修改 | NewsAdmin joinedload、控制台查询优化、SiteAdmin 排序 |
templates/detail_new.html |
修改 | fetch 添加 credentials |
gunicorn_config.py |
修改 | daemon=False,pidfile 绝对路径 |
.claude/settings.local.json |
修改 | 移除 SSH 权限 |
update.sh |
新增 | 一键部署脚本 |
migrations/add_performance_indexes.py |
新增 | 数据库索引迁移脚本 |
/etc/systemd/system/zjpb.service |
新增(仅服务器) | systemd 服务配置 |
🚀 待完成(下次登录后)
- 服务器执行
git pull && chmod +x update.sh完成本次部署
🖥️ 服务器信息
- IP: 112.124.42.38
- SSH:
ssh zjpb-prod(使用~/.ssh/id_rsa_atplist密钥) - 项目路径:
/opt/1panel/apps/zjpb - 服务管理:
systemctl restart zjpb - Gitea:
http://server.zjpb.net:3000/jowelin/zjpb.git
开发人员: Claude Sonnet 4.6 项目负责人: lisacc 开发日期: 2026-02-23