ModernWMS:免费开源的仓库管理系统,5 分钟完整部署与上手指南
【免费下载链接】ModernWMSThe open source simple and complete warehouse management system is derived from our many years of experience in implementing erp projects. We stripped the original commercial system wms function and opened it up for free, hoping to help the majority of small and medium-sized enterprises. At present, the system supports cross-platform。项目地址: https://gitcode.com/GitHub_Trending/mo/ModernWMS
ModernWMS 是一款免费开源的仓库管理系统(WMS),由作者从多年 ERP 项目实践中提炼而来,专门面向 IT 预算有限、却仍有仓储管理需求的中小企业。系统采用 .NET 后端加 Vue 3 前端的前后端分离架构,覆盖从收货、库存、仓内作业到发货的完整业务链路,并内置三语国际化与 Docker 部署能力。下文带你完成一次真实部署,并沿着业务动线把每个模块讲清楚。
场景:一张 Excel 台账撑不起的仓库
月底盘点前,仓库负责人打开那张用了三年的 Excel 台账:某 SKU 账面有 240 件,实际货架上却只有 180 件,对不上;要查某个货主的库存,得在多个文件里来回翻;发货员拿着打印单满仓库找货,找错了还要重新拣。库存对不齐、货位找不到、责任理不清,这是中小仓库最典型的日常。ModernWMS 想解决的正是这件事:把收发存搬进系统,用库位、单据和状态流转替代手工登记,让账实能对得上、过程能追溯。
Docker 五步完成仓库管理系统部署
仓库自带 docker/ 目录(含 Dockerfile、nginx.conf 与启动脚本),可基于源码构建镜像,整体流程如下:
克隆代码到本地:
git clone https://gitcode.com/GitHub_Trending/mo/ModernWMS编译前端:进入
frontend/执行yarn && yarn build,将产物dist/*拷入docker/frontend/。编译后端:进入
backend/执行dotnet publish,将publish/*与wms.db一并拷入docker/backend/。构建并启动容器:
cd docker docker build -t modernwms:1.0 . docker run -d -p 20011:20011 -p 80:80 modernwms:1.0 ./run.sh验证访问:浏览器打开
http://服务器IP(端口 80),用初始账号admin、密码1登录,能看到带完整菜单的首页即部署成功。📦
如果前后端不在同一台机器,需要把前端构建配置.env.production中的接口地址改成你的后端 IP 再重新构建。仓库根目录的 README 同时给出了不依赖 Docker 的「源码编译 + Nginx」部署方式,可按需选择。
功能拆解:沿业务动线走一遍全链路
使用前:先把基础档案建起来
在录任何一单业务之前,需要先把仓库的“骨架”建好。基础设置里的仓库、库区、货位定义了库存的存放结构;商品与类目、货主、供应商/客户、运费设置提供业务主数据;用户管理与角色菜单则决定谁能看、谁能操作。这一步的意义在于:档案建得准,后面的收货上架、库存查询才能自动对到正确的库位和货主上,而不是靠人脑记忆。
使用中:收货、库存与仓内作业
收货是库存进入系统的入口。收货管理按「到货通知 → 待到货 → 待卸货 → 待分拣 → 待上架」的状态推进,每张到货单都挂在具体的货主和供应商下,适合在仓库每天收货、上架的环节使用。
库存管理提供按库位、按 SKU 的实时库存查询,并配合安全库存做补货提醒,适合在拣货前确认“能不能出、还能出多少”时查看。仓内作业则覆盖移库、冻结、调整、盘点、加工五类操作:货位要调整用移库,问题批次要锁住用冻结,账实差异用调整,定期核对用盘点,组合拆装用加工,对应仓库日常最琐碎却最高频的动作。
使用后:发货与统计追溯
发货管理把一单出库拆成「订单 → 拣货 → 打包 → 称重 → 发货」的连续状态,每一单的量、重量、体积、客户都留痕,适合在订单激增、多人并行拣货时保证不错发、不重发。
作业做完后,统计报表汇总到货、发货、库存与账龄数据,配合系统内置的图表与 3D 数字孪生大屏,帮管理者一眼看清库存结构与作业效率;操作日志记录关键动作,方便事后追溯“谁在什么时候改了什么”。这一层不直接干活,而是为复盘和考核提供依据。
谁适合用:三类典型仓库场景
其一,电商与中小卖家的自营仓。SKU 多、订单碎、退货频繁,靠表格很难管住,系统化的收发存能明显减少错发与漏发。其二,制造业的原材料与成品仓。需要按批次和库位管理进出,冻结与盘点功能有助于控制呆滞料与账实差异。其三,第三方物流或多货主仓。系统支持货主维度与多租户隔离,多个客户的货物可以放在同一套系统里各管各的数据,互不串扰。
代码结构与二次开发入口
后端分两层。backend/ModernWMS.Core/ 是框架层,含Controller、DBContext、JWT、Middleware、MultiTenancy等通用能力,数据库连接、Token、多租户都在这里配置;backend/ModernWMS.WMS/ 是业务层,Entities、IServices、Services、Controllers按 Asn、Stock、Dispatchlist 等模块分目录,一个业务域对应一整套文件。
前端集中在 frontend/src/view/:base放基础设置,wms放收货与库存,warehouseWorking放仓内作业,deliveryManagement放发货,statisticAnalysis放统计。接口封装在frontend/src/api/,与后端 Controller 一一对应;路由在frontend/src/router/index.ts里按菜单动态加载;三语文案在frontend/src/languages/langsJson/(cn / en / tw)。
想做二次开发,典型入口是:后端加一个Entity+Service+Controller,前端加一个view页面与对应api,再补一条菜单配置即可挂到系统里;数据库连接、Token 与 Swagger 参数都在backend/ModernWMS/appsettings.json,支持 MySQL、SQL Server、PostgreSQL、SQLite 等多种数据库。
文档、配置与问题反馈渠道
部署与使用说明都写在仓库根目录的README.md和README.zh_CN.md,包含 Linux / Windows / Docker 三种路径的完整命令与验证方式,是上手的第一入口。运行时配置集中在backend/ModernWMS/appsettings.json,改数据库、调 Token 过期时间、开 Swagger 都在这里。遇到问题或想提功能建议,直接到项目仓库的 Issue 区提交 Bug 或建议即可;该项目已加入 dotNET China 开源社区组织,相关讨论与贡献可在项目页集中跟进。
写在最后
ModernWMS 的定位很明确:把商业 WMS 里最常用的收发存功能剥离出来,以 Apache 2.0 协议免费开放给预算有限的中小企业,而不是做一套大而全的 ERP。它功能完整、部署简单、代码分层清晰,既可以直接拿来管仓,也能作为学习和二次开发的底子。如果你的仓库正被台账和错发困扰,不妨先按上面的步骤跑一个本地实例,再决定要不要深入。
【免费下载链接】ModernWMSThe open source simple and complete warehouse management system is derived from our many years of experience in implementing erp projects. We stripped the original commercial system wms function and opened it up for free, hoping to help the majority of small and medium-sized enterprises. At present, the system supports cross-platform。项目地址: https://gitcode.com/GitHub_Trending/mo/ModernWMS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考