InvenTree 1.6.1 介绍与选型指南
InvenTree 1.6.1 开源库存管理系统介绍与选型:定位、架构、功能与版本节奏溯源,及与 Part-DB、Snipe-IT、Odoo Inventory 的量化对比(数据溯源自官方渠道,2026-10-23)。
InvenTree 1.6.1 介绍与选型指南
目标:全面介绍开源库存管理系统 InvenTree(当前稳定版 1.6.1)的定位、架构、功能特性与版本节奏,并给出与 Part-DB、Snipe-IT、Odoo Inventory 的量化选型对比。本文属认知篇,全部数据于 2026-10-23 联网溯源自官方渠道(GitHub 仓库 inventree/InvenTree 的 1.6.1 tag 源码、releases.atom 订阅、shields.io 徽章接口、官方文档站 docs.inventree.org),来源在正文逐项标注,不含本地实测结论;部署与配置的逐条实测见 《InvenTree 1.6.1 Docker Compose 部署指南》、《InvenTree 1.6.1 配置参数详解》与 《InvenTree 1.6.1 常用 CLI 命令详解》。
一、环境信息
- 信息检索日期:2026-10-23(本文所有版本号、星数、许可证、发布日期的取证时点)
- 检索对象:inventree/InvenTree 官方仓库(1.6.1 tag 浅克隆源码)、docs.inventree.org 官方文档站、inventree.org 官网
- 检索工具:GitHub Releases Atom 订阅(
https://github.com/inventree/InvenTree/releases.atom)、shields.io 徽章 JSON 接口(https://img.shields.io/github/stars/<user>/<repo>.json、.../release/...、.../license/...)、官方源码包内文件实读(README.md、CHANGELOG.md、pyproject.toml、contrib/container/docker-compose.yml、src/backend/requirements.in、src/frontend/package.json) - 同类竞品取证:Part-DB/Part-DB-server、snipe/snipe-it、odoo/odoo 三个官方仓库,同日通过同一组接口取证
- 溯源说明:A1 属认知篇,本文不包含本地实测结论;凡引用官方数据处均标注来源与查询日期
二、软件概述
2.1 项目身份
| 维度 | 内容 | 来源(2026-10-23 查询) |
|---|---|---|
| 名称 | InvenTree | 官网 inventree.org |
| 定位 | 开源库存管理系统(Inventory Management System),聚焦底层库存控制与零件追踪 | 官方 README 首句 |
| 仓库 | inventree/InvenTree(GitHub) | 仓库页 |
| 许可证 | MIT(宽松许可,允许商业闭源集成) | shields.io license 接口返回 MIT;仓库 LICENSE 文件 |
| 星数 | 7.8k | shields.io stars 接口返回 7.8k |
| 官方演示站 | demo.inventree.org(含演示账号) | README 顶部链接 |
| 文档 | docs.inventree.org(Read the Docs 托管) | README 徽章与链接 |
| 维护模式 | 社区驱动 + 公司背书,OpenSSF Best Practices / Scorecard 徽章齐备 | README 徽章区 |
InvenTree 自述「提供强大的底层库存控制与零件追踪能力」,核心是一套 Python/Django 数据库后端,对外提供 Web 管理界面与 REST API,并带有插件系统支持二次扩展。它面向中小企业(SME)与个人/爱好者场景,官方文档明确写道「designed to be lightweight and easy to use for SME or hobbyist applications」(docs.inventree.org 首页,2026-10-23 查询)。
💡 技术拓展:「库存管理」类自托管系统的定位光谱不止 InvenTree 一种。按管理对象可分为三类:零件/物料库存(Part-DB、InvenTree)、固定资产台账(Snipe-IT,管理「资产到人」而非「零件数量」)、企业资源计划中的库存模块(Odoo Inventory、ERPNext,库存与采购/销售/会计联动)。三类系统常被混为一谈,选型前先确认管理对象是「物料数量与 BOM」还是「资产全生命周期」还是「业务单据流」。
2.2 版本与发布节奏
近一年官方 Releases 时间线(来源:https://github.com/inventree/InvenTree/releases.atom,2026-10-23 查询,共 10 条记录):
| 版本 | 发布日期 | 说明 |
|---|---|---|
| 1.6.1 | 2026-10-21 | 安全补丁(依赖升级)+ 若干缺陷修复,当前最新稳定版 |
| 1.6.0 | 2026-10-18 | 大版本:SCIM 2 供给、OIDC 管理中心、备注重构等 |
| 1.5.8 | 2026-10-17 | 1.5 系列第 8 个补丁 |
| 1.5.7 | 2026-10-10 | 补丁 |
| 1.5.6 | 2026-09-26 | 补丁 |
| 1.5.5 | 2026-09-17 | 补丁 |
| 1.5.4 | 2026-09-09 | 补丁 |
| 1.5.3 | 2026-09-08 | 补丁 |
| 1.5.2 | 2026-08-25 | 补丁 |
| 1.5.1 | 2026-08-19 | 补丁 |
版本节奏量化结论:小版本(minor)约 2~3 个月一个(1.5.0 于 2026-08-11 发布、1.6.0 于 2026-10-18 发布),补丁版(patch)以周为单位密集跟进(1.5.x 系列两个月内连发 8 个补丁),社区活跃度处于高位。版本号遵循语义化版本(CHANGELOG 自述「adheres to Semantic Versioning」)。
1.6.0 的关键变化(来源:仓库 CHANGELOG.md,1.6.1 tag 实读):
- 重大不兼容变更:1.0.0 之前的数据库迁移被压缩合并(#12830),从 1.0.0 之前版本升级的用户必须先升到 1.0.0 再升级到当前版;备注(notes)重构为独立数据表并新增
/api/note/端点(#11971),旧notes字段从各模型 API 移除;令牌改为 v2 格式(#12850),旧令牌仍可用但建议轮换。 - 新增能力:SCIM 2 用户供给协议(#12713,可对接外部身份源做用户自动管理)、OIDC 供给设置并入管理中心(#12731)、内部公司(internal companies,#13017)、采购订单收货公司与收货地址字段(#9768)等。
- 1.5.0 的关键不兼容变更(同源):移除 Python 3.11 支持,停止提供 Debian 11 与 Ubuntu 20.04 的安装包(#12223);
invoke migrate默认不再生成新迁移、只应用存量迁移,需要显式加--detect才生成(#12320)。
2.3 技术栈与运行要求(1.6.1 tag 源码实读)
| 层 | 组件 | 来源 |
|---|---|---|
| 后端语言 | Python(CI 配置 python-version = "3.12";1.5.0 起不再支持 3.11) | pyproject.toml、CHANGELOG.md |
| Web 框架 | Django + Django REST Framework | README Tech Stack、requirements.in |
| Web 服务器 | gunicorn | requirements.in |
| 后台任务 | django-q2(任务队列/定时任务工作进程) | requirements.in |
| 认证 | django-allauth(含 MFA、SAML、OpenID/SSO 扩展)+ simplejwt(API JWT 令牌) | requirements.in |
| 前端 | React 19 + Mantine 9 + Vite + TypeScript + Zustand/TanStack Query(SPA 前端 @inventreedb/ui) | src/frontend/package.json |
| 数据库 | PostgreSQL / MySQL / MariaDB / SQLite(四选一) | README Tech Stack、config_template.yaml |
| 缓存 | Redis(可选,缓存后端) | README Tech Stack、config_template.yaml cache 节 |
| 条码 | python-barcode(条码生成/扫描体系) | requirements.in |
关键差异解读:InvenTree 属「Python 全栈单应用 + 独立工作进程」形态,对比 PHP 系竞品(Part-DB/Snipe-IT),运维侧依赖 Python 运行时与数据库两种服务;对比 Odoo,依赖面小一个量级(无专用框架运行时、无强制企业版授权墙)。官方生产形态自带 Caddy 反向代理与 Redis 缓存容器(contrib/container/docker-compose.yml 实读,见第三章)。
三、核心架构
3.1 部署形态
官方支持三条部署路线(README「Deployment / Getting Started」节,2026-10-23 查询):
- Docker Compose(官方生产形态,文档首选):
contrib/container/docker-compose.yml定义五服务栈——PostgreSQL 数据库(postgres:17)、Redis 缓存(redis:7-alpine)、InvenTree Web 服务(inventree/inventree 官方镜像,内跑 gunicorn)、后台任务工作进程(同镜像,invoke worker)、Caddy 反向代理(caddy:alpine,承担静态文件/媒体文件分发与 TLS)。所有配置通过.env环境变量注入。 - 裸机/包安装(Bare Metal):官方提供单行安装脚本
wget -qO install.sh https://get.inventree.org && bash install.sh(README 原文),支持发行版见官方文档安装器页;1.5.0 起停止提供 Debian 11 / Ubuntu 20.04 包(CHANGELOG #12223)。 - 云平台一键部署:DigitalOcean 按钮集成(README 内嵌),另有社区维护的 Kubernetes Helm Chart(ArtifactHub 徽章指向
inventreechart 仓库)。
3.2 运行时结构
官方 compose 栈的运行时结构可归纳为「一库一缓一服务一工作进程一代理」:
- inventree-server:gunicorn 承载 Django 应用,同时服务 REST API 与前端页面;数据卷固定挂载到
/home/inventree/data(compose 文件注释原文「Data volume must map to /home/inventree/data」),静态文件、媒体文件、备份都落到该数据卷。 - inventree-worker:独立进程跑
invoke worker,处理后台/周期任务(报表生成、邮件、数据导出等),与 server 共享同一数据卷与数据库。 - inventree-db:PostgreSQL 17,数据目录由
PGDATA=/var/lib/postgresql/data/pgdb指定,落在外部数据卷。 - inventree-cache:Redis 7,官方 compose 中显式关闭磁盘持久化(
redis-server --save "" --appendonly no,compose 注释说明缓存数据属临时性),仅作缓存用途。 - inventree-proxy:Caddy 反代,对外发布 80/443,静态文件与媒体文件由 Caddy 直接分发(媒体文件默认强制
Content-Disposition: attachment下载并经 Django 鉴权转发),健康检查走内部 9090 端口。
3.3 认证与扩展机制
- 认证体系:本地账号 + django-allauth 生态(MFA 多因子、SAML、OpenID/OIDC 社交/企业登录),1.6.0 新增 SCIM 2 用户供给;API 侧支持 JWT(simplejwt)与令牌(1.6.0 起 v2 格式)。
- REST API + Python SDK:全功能 REST API(DRF),官方维护 Python 客户端模块
inventree(README Integration 节),第三方系统集成走 API 优先。 - 插件系统:官方插件接口(docs.inventree.org/en/latest/plugins/),支持自定义面板页(1.6.0 的 UIMixin
route特性允许插件注册自定义页面)、自动补货、条码动作、报表渲染等扩展点;配置侧支持plugin_settings将插件设置锁定在配置文件层。 - 报表/标签:内置报表模板与标签打印体系(docs 目录含 report、barcodes 概念页),配合条码体系实现扫码出入库。
四、功能特性
以下特性清单取自官方文档站首页 Features 节与 docs 目录结构(docs.inventree.org,2026-10-23 查询):
- 零件分类管理:零件(Part)是系统基本单元,支持多级分类树、参数模板、图片附件。
- 库存与库位:库存项(Stock Item)挂接级联库位/子库位,支持序列化单件追踪,序列化库存项可挂测试结果(验收测试/调试记录)。
- BOM 管理:物料清单(Bill of Materials)支持多格式上传/导出,制造订单(Build Order)驱动装配与库存扣减。
- 采购与供应商:供应商(Company/Supplier)、采购订单(PO)、收货与入库联动。
- 销售订单:SO、发货(Shipment,1.6.0 新增收货公司与地址字段)、库存分配(1.6.0 新增 AllocateMixin 供插件定制自动分配)。
- 条码体系:内置条码生成与扫码动作(python-barcode),支持移动端扫码操作库存。
- 多语言与本地化:Crowdin 平台化翻译(README 徽章),配置项
language支持界面语言切换,时区独立配置。 - 报表与标签:基于模板的报表渲染与标签打印。
- 管理界面:Django Admin 后台(可配置开关与路径),面向管理员的高级操作入口。
- 备份与恢复:内置备份目录与备份/恢复命令(invoke backup/restore,详见命令篇)。
五、快速开始(最小可用示例)
本章仅给出官方口径的最小启动路径(命令取自官方 README/文档原文,2026-10-23 查询),供选型前评估手感;逐条实测回显与完整排障见本专栏部署篇(Docker Compose 生产形态)与命令篇。
5.1 脚本安装(评估最快路径)
# 官方单行安装脚本(README 原文)
wget -qO install.sh https://get.inventree.org && bash install.sh
脚本自动完成依赖安装、数据库初始化与服务托管,支持发行版与细节见官方安装器文档(docs.inventree.org/en/latest/start/installer/)。⚠️ 注意:1.5.0 起官方停止为 Debian 11 与 Ubuntu 20.04 提供安装包,老系统请升级后再装(CHANGELOG #12223)。
5.2 Docker Compose(官方推荐生产形态)
官方生产栈由 contrib/container/docker-compose.yml + .env 组成,最小配置只需在 .env 中给出数据库凭据与数据卷路径:
# .env 最小集(变量名取自官方 compose 文件的强校验项)
INVENTREE_TAG=1.6.1 # 锁定版本,官方默认 stable
INVENTREE_DB_USER=pguser # 数据库账号
INVENTREE_DB_PASSWORD=pgpassword # 数据库密码
INVENTREE_DB_NAME=inventree # 数据库名
INVENTREE_EXT_VOLUME=./inventree-data # 外部数据卷路径
docker compose up -d # 拉起 db/cache/server/worker/proxy 五服务栈
栈就绪后浏览器访问代理端口即进入初始化界面,首个管理员账号可通过配置项或命令行创建(官方 .env 模板预留 INVENTREE_ADMIN_USER/INVENTREE_ADMIN_PASSWORD/INVENTREE_ADMIN_EMAIL 三项)。完整的生产级部署流程——端口规划、数据持久化、初始化、销毁重建恢复闭环——已在 《InvenTree 1.6.1 Docker Compose 部署指南》 逐条实测。
六、适用场景与限制
6.1 适合的场景
- 电子/硬件研发团队的元器件与 BOM 库存:零件分类、参数、BOM、制造订单是 InvenTree 的核心域模型,电子装配、小批量制造场景契合度最高。
- 中小企业物料库房:多库位、序列化追踪、扫码出入库、采购/销售订单联动,覆盖库房日常作业主链路。
- 需要 API/插件二次集成的场景:全功能 REST API + Python SDK + 插件体系,易嵌入既有 ERP/MES/看板。
- 强调许可证友好的商业集成:MIT 许可证允许闭源集成与再分发,比 AGPL 系竞品的合规约束显著宽松。
6.2 限制与边界(官方源/文档实查,2026-10-23)
- 不是固定资产台账系统:不提供「资产到人」的资产领用/审计/折旧域模型(该定位见 Snipe-IT),硬套会别扭。
- 不是全功能 ERP:无会计/总账模块,财务联动需经 API 外接或插件;对比 Odoo Inventory 属「轻库存」而非「业务全流程」。
- 单实例架构:官方生产形态为单 Web 服务 + 单工作进程(可配多 worker 线程,
background.workers默认 4),无内建多节点集群方案;超大并发需自行前置负载均衡与只读扩展,官方未提供开箱方案。 - 版本升级有断点:1.0.0 前升级必须先停在 1.0.0 中转(CHANGELOG #12830);1.6.0 的 notes/令牌变更要求外部客户端适配(#11971/#12850)。
七、同类选型对比
四款系统同日(2026-10-23)通过统一接口取证(星数/最新版/许可证均来自 shields.io JSON 接口与各仓库 releases.atom;技术栈与数据库支持取自各官方仓库 README/文档):
| 维度 | InvenTree 1.6.1 | Part-DB 2.20.2 | Snipe-IT 8.8.3 | Odoo Inventory(odoo/odoo) |
|---|---|---|---|---|
| 定位 | 零件库存 + BOM + 制造/采购/销售 | 电子元器件库参数化目录 | IT 固定资产台账 | ERP 库存模块(业务全流程) |
| 许可证 | MIT | AGPL-3.0 | AGPL-3.0 | 社区版 LGPL-3.0,企业版商业授权 |
| 技术栈 | Python/Django + React 19 | PHP/Symfony | PHP/Laravel | Python/Odoo 自有框架 |
| 数据库 | PostgreSQL/MySQL/MariaDB/SQLite | MariaDB/PostgreSQL/SQLite | MySQL/MariaDB | 仅 PostgreSQL |
| GitHub 星数 | 7.8k | 1.8k | 15k | 55k(全仓库) |
| 版本节奏(近一年) | minor 约 2 | 高频(2.19.0→2.20.2 一个月内 4 个发布,2026-09~10) | 稳定 patch 流(v8.8.3 当前) | 年度大版本(17→18→19→20,每年 10 月前后,官网口径) |
| BOM/制造 | 有(BOM + Build Order) | 弱(BOM 列表级) | 无 | 有(MRP 模块,社区版功能受限) |
| REST API | 全功能 + Python SDK + JWT | 有(API 覆盖面较窄) | 有(完善) | 有(XML-RPC/JSON-RPC + REST) |
| SSO/企业身份 | OIDC/SAML/MFA/SCIM(1.6.0 补齐 SCIM) | OIDC(社区支持) | SAML/OIDC(部分属企业托管版特性) | 企业版全量,社区版受限 |
| 生产部署形态 | 官方五服务 compose(含反代/缓存) | 官方 compose + 裸机包 | 官方 compose + 裸机包 | compose/源码包,栈重 |
| 中文与本地化 | Crowdin 多语言(含中文) | 多语言(含中文) | 多语言(含中文) | 多语言(含中文) |
选型结论与关键差异解读:
- 管元器件/物料/BOM,要 API 与插件扩展 → InvenTree:四者中唯一同时具备「零件级库存 + 制造订单 + MIT 许可 + SCIM 企业身份」组合;星数与发版活跃度均处健康区间。
- 只管元器件参数目录/库存查查 → Part-DB:参数化元件目录(footprint/符号/参数模板)做得更深,但制造与订单链路弱,社区体量最小(1.8k 星)。
- 管 IT 资产到人(谁领用了这台笔记本) → Snipe-IT:资产台账领域事实标准,但不管零件数量与 BOM,与 InvenTree 不是替代关系;社区体量最大(15k 星)。
- 要库存+采购+销售+会计一体 → Odoo:功能天花板最高但部署与授权复杂度同样最高(社区版功能阉割、企业版按人头的商用授权),轻量库存场景属于杀鸡用牛刀。
本站同类组件横向参考:家庭杂货/日常物资库存场景可另见 《grocy 4.7.1 介绍与选型指南》(grocy 面向家庭场景,InvenTree 面向企业/研发场景,二者互补而非竞争);grocy 的容器化落地可参考 《grocy 4.7.1 Docker Compose 部署指南》。
八、参考链接
- 官网:https://inventree.org
- 官方文档:https://docs.inventree.org/en/latest/
- 官方仓库:https://github.com/inventree/InvenTree(本文版本/星数/许可证取证于 2026-10-23)
- Releases 订阅:https://github.com/inventree/InvenTree/releases.atom
- 官方生产 compose:https://github.com/inventree/InvenTree/blob/1.6.1/contrib/container/docker-compose.yml
- 配置文档:https://docs.inventree.org/en/latest/start/config/
- 官方演示站:https://demo.inventree.org/
- 竞品仓库:https://github.com/Part-DB/Part-DB-server 、https://github.com/snipe/snipe-it 、https://github.com/odoo/odoo