InvenTree 库存系统(部署于 kaku2025,现役正式实例,待切到 maizihehuo)
kucun.bianquezhiyin.cn 的库存管理系统正式实例(Docker Compose),是本次迁移的核心对象;maizihehuo 已建好双跑新实例。
访问方式
- 线上:
https://kucun.bianquezhiyin.cn/(DNS → 103.205.253.150,nginx 反代 127.0.0.1:8000)
- 容器管理:
cd /www/docker-data/inventree && docker compose ps
- 管理员:yunmai(密码在 .env 的 INVENTREE_ADMIN_*,不抄录;交接文档亦有,勿外传)
技术架构
- 容器:inventree-server(stable, 0.0.0.0:8000)、inventree-worker、inventree-db(postgres:16, 库 inventree)、inventree-redis(华为云镜像)
- 挂载:./data → /home/inventree/data(媒体/附件)
- 定制脚本:apply_brand_patch.sh(品牌)、apply_term_patch.sh(术语汉化)、switch_to_domain.sh / switch_to_ip.sh(访问方式切换)
- 配套:/opt/inventree-scripts(build_bom.py、build_parts.py、sale_deduction.py、mock_stock.py、clean_test.sh、test_setup.py)
数据
- PostgreSQL 库 inventree:每日 3:00 backup.sh → backup/db_YYYYMMDD.dump(目录内最近 20260908)
- 异地:/opt/backups/inventree-2026XXXX.sql.gz(每日,最近 20260920)
- 全量快照:目录内 inventree_dump.sql.gz
- 规模(2026-09 摸底):6 部件/0 库存条目/3 供应商/6 用户(起步期,10 月后或有增长,以库为准)
使用方法
- Web 界面:部件/库存/供应商/订单管理;后台 /admin
- 脚本:python3 /opt/inventree-scripts/sale_deduction.py(销售扣减)等
- 运维命令:
docker exec inventree-server invoke --version
维护方式
- 启停:docker compose up -d / stop
- 日志:docker compose logs -f server
- 备份:backup.sh(cron 已注册,3:00)
- 切换访问:switch_to_domain.sh / switch_to_ip.sh
现状与风险
- Up 6 weeks 全健康;SSL 证书 TrustAsia DV 到期 2026-12-04(下线前要切走,无需续)
- maizihehuo 双跑实例已 Up 10 天,DNS 尚未切换(kucun 域名仍指本机)
- 两实例数据一致性未验证;本机脚本(/opt/inventree-scripts)未同步到 maizihehuo
优化建议(迁移清单)
- 【迁移】一致性校验:两台分别
docker exec inventree-db psql -U inventree -d inventree -t -c "select count(*) from part_part;" 等核心表比对
- 【迁移】把 /opt/inventree-scripts 与 .env、品牌补丁脚本同步到 maizihehuo /www/docker-data/inventree
- 【迁移】切换:DNS kucun.bianquezhiyin.cn → maizihehuo 公网 IP → 观察 1 周 → 本机 docker compose down → 保留最终 dump:
docker exec inventree-db pg_dump -U inventree inventree | gzip > /opt/backups/inventree_final_$(date +%F).sql.gz
- 【备份】下线前将 /opt/backups 的 inventree-*.sql.gz 全套 rsync 到飞牛 NAS 或 maizihehuo
- 【安全】8000 端口 0.0.0.0:切换前收紧为 127.0.0.1(仅留 nginx 入口)