mai-report 麦报告三实例(部署于 maizihehuo)
麦报告/日报报表系统(FastAPI + SQLite),一套代码三个实例:正式、测试、选择中医定制版。
访问方式
- 正式:
127.0.0.1:8890;测试:127.0.0.1:8891;选择中医版:127.0.0.1:8892(均仅本机,无直接对外域名,由上层应用/工作台调用)
- 探活:
systemctl is-active mai-report mai-report-test mai-report-xzzy
技术架构
- Python FastAPI:三个 systemd 服务,各自 venv(
.venv/bin/uvicorn main:app)
- 目录:
/opt/mai-report、/opt/mai-report-test、/opt/mai-report-xzzy
- 辅助:
build_dict.py(词典构建)、backup.sh(每实例自带)
- 历史:目录内有 data_155722.bak、多次 data.db.bak_*(变更前备份),xzzy 版 10-23 还有 before_tables 备份,说明近期仍在迭代
数据
- SQLite
data.db(每实例独立)+ dict.json 词典
- 备份:各目录 backups/;kaku2025 侧 /opt/mai-backup 有每日 gz(mai-report_2026XXXX.db.gz,至 20260927)—— 迁移时确认本机也有同频备份
使用方法
- API:
curl 127.0.0.1:8890/docs
- 词典重建:
python3 build_dict.py
- 数据修复历史:见目录内 bak 文件命名(before_hjfix、before_v63sync、before_tables)
维护方式
- 启停:
systemctl restart mai-report(-test|-xzzy)
- 日志:
journalctl -u mai-report-xzzy -f
- 备份:执行各目录 backup.sh;升级前手工
cp data.db data.db.bak_$(date +%Y%m%d%H%M%S)
现状与风险
- 三实例全部 active
- 本机是否已接管每日备份未见 cron 证据(kaku2025 有 /opt/mai-backup 产物)
- 三个实例代码疑似手工复制维护,易漂移
优化建议
- 【备份】在本机注册每日备份:三实例 backup.sh 串入 cron(02:30),产物集中 /opt/backups/mai-report/
- 【可维护性】用同一 Git 仓库管理三实例,差异用配置文件区分,禁止直接改线上副本
- 【可维护性】清理各目录内超过 3 份的 data.db.bak_*(归档到 /opt/backups)
- 【安全】确认 8890-8892 无鉴权风险面(仅本机监听,现状可接受,但不要改成 0.0.0.0)