零件和库存还在 Excel 里管?InvenTree 免费开源库存管理系统完整指南
【免费下载链接】InvenTreeOpen Source Inventory Management System项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree
如果你的仓库里堆着上千个零件、两三家供应商和一间小车间,而库存数据还散落在 Excel、聊天记录和纸质单据里——问题多半不在流程,而在工具。InvenTree 就是为此准备的:一套免费、开源的库存管理系统,零件档案、BOM 物料清单、采购单、销售单、生产领料、批次追溯全都自带,浏览器打开就能用,也能通过 REST API 接进你自己的系统。
这篇文章按"选型 → 部署 → 日常使用 → 扩展 → 长期运营"的顺序讲。读完你能判断它适不适合自己,并且知道第一步该干什么。
选型:先弄清 InvenTree 能装下什么
InvenTree 的定位很明确:给中小企业和创客用的轻量库存系统。它不做 ERP 那种大而全,而是把"零件—库存—订单"这条主线做深。打开系统你会看到五个主场:零件(多级分类、参数模板、版本迭代)、库存(库位、批次、序列号、移动记录)、采购与销售订单、生产建单、报表和标签。供应商管理、盘点、价格汇总这些常用动作也都落在这五个主场里,不用到处找入口。
技术栈:Django 后端加 React 前端
后端是 Python + Django + Django REST Framework,后台任务交给 Django Q,数据库支持 PostgreSQL(官方推荐)、MySQL 和 SQLite,缓存可选 Redis;前端是 React + TypeScript + Vite,组件库用 Mantine,状态管理靠 Zustand 和 TanStack Query,多语言由 Lingui 支撑。这套组合意味着:团队只要熟 Python 和 JS 就能二次开发,运维上也不需要什么奇技淫巧。📦
跑起来:用 Docker Compose 十分钟部署
三种安装方式怎么选
官方推荐 Docker:一条命令拉起全套服务,升级、迁移都省心。其次是包管理器安装器(适合 Debian 系服务器),最后才是裸机手动装——虚拟环境加 invoke 工具一步步来,适合想彻底掌控每一层的人。Windows 用户建议走 WSL。
一条命令拉起完整环境
仓库里的 Docker Compose 配置 一次带起五个容器:PostgreSQL 17 数据库、Redis 缓存、Gunicorn 网络服务、Django Q 后台 worker、Caddy 反向代理。你只需要改 .env 文件:
# .env 关键配置 INVENTREE_TAG=stable INVENTREE_DB_NAME=inventree INVENTREE_DB_USER=inventree INVENTREE_DB_PASSWORD=你的密码 INVENTREE_EXT_VOLUME=/var/inventreegit clone https://gitcode.com/GitHub_Trending/in/InvenTree inventree cd inventree/contrib/container && docker compose up -d镜像标签有三个选择:stable(最新稳定版)、latest(开发版)、具体版本号(锁定升级节奏)。所有持久化数据都落在 INVENTREE_EXT_VOLUME 指向的卷里,之后升级就是换镜像加跑数据库迁移,数据不受影响。✅
用好:零件档案、BOM 和批次追溯
零件档案比一个单元格厚得多
零件是系统里最核心的对象。每个零件可以放进无限层级的分类树,用参数模板给它定义一整组规格(额定电压、封装、功率……),还能挂多个供应商料号,价格、最小起订量、采购历史一目了然。零件支持版本迭代,改版不丢历史;库存低于阈值时,订阅了该零件的人会收到通知。
BOM 建单:领料自动扣库存
BOM 可以按多种格式批量上传,也可以在系统里逐条维护,替代料和耗材条目同样支持。创建建单(Build)时,系统按 BOM 算出每种子零件要多少,可以自动从现有库存分配,也可以手动挑选批次;生产完成时,消耗的原料从库存扣掉,产出的成品入库,数量对得上账。
批次、序列号与追溯链
库存项可以只记数量,也可以按批次管理,或给每一件赋唯一序列号。每一次入库、出库、转移都会留下记录,点开任何一个库存项都能看到它的完整轨迹;测试结果可以绑定到带序列号的库存项上,验收和质保追溯场景直接能用。
买进来卖出去:采购单、销售订单全流程
采购单:从下达到收货入库
向供应商下采购单后,单据会经历草稿、确认、生产中、已收货几个状态,全程可跟踪。收货时指定库位,库存直接落位;同一零件在不同供应商那里的价格与交期,可以在供应商料号页面横向对比,补货时心里有数。
销售单:从分配库存到发货
给客户的销售单逻辑对称:创建后把库存分配给每行订单——带序列号或批次的库存必须逐件分配,保证发出去的和账上的一致;可以按行分批发货,每次发货都有记录。退货单和跨仓库调拨单也是同级功能,不是事后打的补丁。
接着扩展:插件、REST API、条码
内置插件先顶上
常见需求基本不用自己写:DigiKey、Mouser、LCSC、TME 等供应商的条码解析,邮件和 Slack 通知,BOM 与参数导出,标签打印(含标签机和模板),还有汇率更新,在管理界面勾选启用即可。报表同样是模板驱动的,用 Liquid 模板生成 PDF,模板编辑器直接在浏览器里改:
写一个自己的插件
不够用的部分,插件系统接得住。继承 InvenTreePlugin 写个最小骨架就能加载:
from plugin import InvenTreePlugin class HelloPlugin(InvenTreePlugin): NAME = "helloplugin" TITLE = "示例插件" def ready(self): print("Hello InvenTree")Mixin 机制让你把插件挂到 API、界面面板、条码扫描、通知等事件上,官方 插件开发文档 从骨架生成到前后端集成有完整教程。
REST API 和条码扫描
InvenTree 本身就架在 RESTful API 之上——浏览器只是它的一个客户端。REST API 文档 覆盖全部资源,还有原生 Python 绑定库,写脚本对接 MES、WMS 不用手工拼 HTTP。条码方面,系统自动生成 QR 码和 DataMatrix 标签,手机扫一下就能完成入库、出库、转移这类操作,仓库里不用掏笔记本。
长期运营:备份、权限和社区节奏
权限、双因素认证、SSO
角色系统把权限拆得很细:谁能改价格、谁能收货、谁能建单,各管一段。登录侧支持双因素认证(TOTP、WebAuthn)、SSO(OpenID、SAML),还有 SCIM 端点做用户自动同步——团队账号规模上去之后不会变成管理黑洞。
备份与升级
内置 dbbackup 工具,一条命令备份数据库和媒体文件,也能定时自动跑。升级路径固定:git 拉新代码 → 跑迁移 → 收集静态文件,数据在独立卷里,容器重建也不丢。生产环境记得关掉 DEBUG 模式,官方文档里有专门的安全模型章节,部署前值得花十分钟读完。
社区与开发动态
翻译走 Crowdin,界面翻译覆盖 40 种语言并持续合入;CI 跑自动化测试加 Playwright 浏览器测试,代码质量和测试覆盖率有外部监控,每个版本都附发布说明。前端组件库还单独开源维护,其他项目可以直接复用——对一个要长期依赖的系统来说,这是个安心信号。
适合谁,下一步干什么
InvenTree 最适合这样的团队:仓库零件多、供应商杂,需要比 Excel 强一个量级的管理,又不想背上重型 ERP 的实施成本——中小制造企业、电子车间、创客实验室基本都落在这个区间。如果你的诉求包含完整财务和集团级多组织管理,它就不是合适的答案。
建议三步走:先按文档把 Docker 环境跑起来,建几个零件、下一张采购单,把主线走一遍;再通读 API 文档,确认你要的集成点都齐;想二次开发的话,直接翻 后端源码目录——标准 Django 结构,每个业务模块一个目录,很好上手。
【免费下载链接】InvenTreeOpen Source Inventory Management System项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考