告别 Excel 管库存:InvenTree 从部署到落地的免费开源库存管理系统实操指南
【免费下载链接】InvenTreeOpen Source Inventory Management System项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree
仓库里三千多个料号,月底盘点要占去三天,Excel 表格永远对不上账。InvenTree 是一套完全免费、开源的库存管理系统:后端基于 Python/Django,前端使用 React,通过 Docker 十分钟即可部署上线。它把零件分类、库存跟踪、采购流程、条码管理和 BOM 物料清单放在一个系统里,让出入库数据自动更新、全程可追溯。本文按功能模块拆解它的核心能力,演示两个真实业务场景的完整操作路径,并给出一份从零部署到日常使用的落地清单。
🧩 核心能力拆解:InvenTree 能管什么
零件分类与参数管理
零件(Part)是整个系统的基础。InvenTree 用树状分类结构组织零件,支持多级目录、自定义参数模板(如规格、型号、单位),并对每个零件建立版本(Revision)关系。
适用场景:电子 BOM 管理、多规格物料归档、替代品关联。分类树、参数与零件库均可通过前端表格直接批量编辑。
库存跟踪与仓库位置
库存项(Stock Item)挂在可无限层级的存储位置(Stock Location)之下,每次入库、出库、移动都会留下追踪记录。库存项可以启用批次号和序列号,对单件物品做全生命周期跟踪;也支持有效期(Expiry)与过期预警。
适用场景:多仓库/货架管理、序列号级追踪、先进先出控制。
BOM 物料清单与生产工单
BOM 管理支持直接上传 Excel/CSV 清单文件,自动匹配已有零件并补齐缺失项。生产工单(Build)从 BOM 展开用料需求,可以自动或手动从库存分配零件,领料与产出都会自动扣减、登记库存。
适用场景:小批量生产、装配车间领料、成本与用量统计。
采购与供应商管理
供应商、制造商与零件建立多对多关联,支持阶梯价格、可用量维护。采购订单(PO)从需求一键生成,收货时按订单行登记数量,自动创建库存项;订单有完整的状态机(待处理/部分收货/已完成)。
适用场景:多供应商比价、收货质检流程、采购台账。
条码、报告与扩展
系统内置条码解析,浏览器扫码即可定位零件、库存、订单并执行操作;报告模块支持自定义模板生成标签与报表。扩展性方面,内置插件目录 提供了条码集成、邮件通知、报表导出等现成插件,插件系统文档在 插件开发指南。所有数据均可通过 REST API 访问,接口文档位于 docs/docs/api/,并提供 Python 绑定库方便二次开发。
🔁 典型工作流演练:两条真实业务路径
路径一:新供应商入库 → 采购下单 → 收货 → 扫码上架
- 在"公司"模块创建供应商,录入名称、联系方式与地址;
- 在零件页面关联"供应商零件",登记供应商料号(MPN)与阶梯价;
- 基于供应商零件创建采购订单,填写数量与交期,提交审批;
- 货物到达后在订单详情页登记收货,系统自动创建库存项并选择存储位置;
- 为库存项打印条码标签,此后所有出入库用浏览器扫码完成。
条码支持 QR Code、Code 128 等常见格式,扫码后直接进入对应对象的操作面板,这是移动场景下最常用的路径。
路径二:生产工单领料 → 产出入库 → 月度盘点
- 基于成品零件创建生产工单,系统按 BOM 自动计算需求数量,缺料一目了然;
- 选择自动分配(遵循存储位置优先级)或手动指定库存项,确认后扣减库存;
- 完工后登记产出数量,新库存项自动挂在指定位置;
- 月末启用盘点模式,对指定位置逐项核对实盘数量,差异自动生成盘点记录。
🚀 从零到可用:部署与初始化
方式一:Docker 一键部署(推荐)
从仓库的 容器部署目录 获取docker-compose.yml与.env两个文件(也可自行克隆源码):
git clone https://gitcode.com/GitHub_Trending/in/InvenTree cd InvenTree/contrib/container编辑.env,至少配置以下变量:
INVENTREE_EXT_VOLUME=/path/to/inventree-data # 持久化数据目录 INVENTREE_SITE_URL=http://inventree.localhost # 访问地址 INVENTREE_DB_USER=inventree INVENTREE_DB_PASSWORD=你的密码初始化数据库并创建管理员账户,然后启动全部容器(PostgreSQL、Redis、Web 服务、后台 Worker、Caddy 反向代理):
docker compose run --rm inventree-server invoke update docker compose run inventree-server invoke superuser docker compose up -d启动后访问http://inventree.localhost即可看到登录页。若INVENTREE_SITE_URL配置为https://域名且 80/443 端口可达,Caddy 会自动申请 Let's Encrypt 证书。
方式二:手动安装(技术团队适用)
手动部署需要 Python 3.x 与 PostgreSQL(或 MySQL),依次执行:安装 后端依赖(pip install -r requirements.txt)→ 运行python manage.py migrate建表 → 配置config.yaml(可参照 配置模板)→ 用 Gunicorn 或任意 WSGI 服务器启动应用。完整步骤见 官方安装文档。
⚡ 进阶实操:五条老手经验
分类体系先按"业务用途"分一层,再按"物料类型"细分。一上来就按仓库货架建分类,后续采购和销售视角会很难用。建议第一级用"生产用料/维修备件/外购件"这类维度,货架位置交给库存位置树去表达。
给所有可追踪零件启用序列号,而不是只记数量。序列号让每次维修、退货、追溯都有据可查,代价只是入库时多扫一次码。
把常用字段做进参数模板。参数模板定义在零件分类层级,新零件创建时自动带出字段,批量导入也能按参数列对齐,搜索和筛选都会用到它们。
权限按角色收敛,不要人人都是管理员。管理员界面提供角色与权限组(参考 权限文档),给仓库、采购、财务分别建组,审计日志会记录每个操作人,出问题先查审计再查人。
重要操作前先想"能不能用 API 重放"。InvenTree 的每个界面操作背后都是 REST 接口,日常高频动作(批量改价、批量入库)写个脚本走 API 比手工点表格快一个数量级,接口结构见 API 文档。
🔧 故障排除速查
Docker 容器全部 Up 但页面无法访问→ 原因:.env中INVENTREE_SITE_URL与访问地址不一致,或 80 端口被占用。解法:docker compose logs inventree-proxy看 Caddy 日志,确认INVENTREE_HTTP_PORT未与本机其他服务冲突。
HTTPS 证书始终没签发→ 原因:Caddy 自动 HTTPS 要求 80/443 端口能从公网直达。解法:确保端口未被外层代理拦截,或将INVENTREE_SITE_URL改为http://在外部代理处终结 SSL。
条码扫描后无反应→ 原因:条码内容与数据库中的序列号/条码字段不匹配,或格式不受支持。解法:先确认该库存项已分配序列号,再生成官方标签模板打印,避免手写或第三方格式。
登录后提示"数据库连接失败"→ 原因:INVENTREE_DB_USER/INVENTREE_DB_PASSWORD与 PostgreSQL 容器实际账号不一致。解法:修改.env后docker compose up -d重建容器。
✅ 落地检查清单
做完以下 5 件事,这套系统就算真正跑起来了:
- 通过 Docker 部署成功,管理员账户可用
http://inventree.localhost登录; - 建好一级零件分类和存储位置树(至少"在库/在途/废品"三个状态位置);
- 导入首批零件与供应商数据,并关联供应商零件和阶梯价;
- 完成一次真实采购收货流程,给库存项打印并粘贴条码标签;
- 按团队角色建好权限组,配置好数据备份(备份
INVENTREE_EXT_VOLUME数据卷即可覆盖数据库之外的全部持久化数据)。
更多细节见 官方文档、Docker 部署指南 与 故障排查 FAQ。把分类、供应商和库存数据搬进系统的那一刻,Excel 就可以退休了。
【免费下载链接】InvenTreeOpen Source Inventory Management System项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考