开源仓库管理系统 ModernWMS 部署与选型完整指南:从 Docker 快速上机到生产上线

【免费下载链接】ModernWMS The 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。 【免费下载链接】ModernWMS 项目地址: https://gitcode.com/GitHub_Trending/mo/ModernWMS

仓库的早晨往往从三个问题开始:账实对不上、拣货慢、纸质单据满天飞。ModernWMS 是一个开源 WMS(仓库管理系统),用 .NET 7.0 做后端、Vue 3.2 做前端,目标很明确:帮 IT 预算有限的中小企业把收货、库存、发货这几条线搬到系统里。先给结论:如果你的仓库是单仓、SKU 在几万以内,它值得放进选型清单;下面按"谁适合→业务怎么跑→怎么部署→生产要点→使用边界"的顺序讲清楚。

这套系统适合谁

作者团队做过多年 ERP 项目实施,把原商业系统里的 WMS 部分剥离出来开源,定位就是"简易但完整"。它不是大而全的供应链平台,而是把中小仓库的日常流程做透:

  • 开源免费:Apache 2.0 协议,没有许可费用,可自由商用和二次开发;
  • 多数据库兼容:SQLite、MySQL 8.0+、SQL Server 2017+、PostgreSQL 12+ 四种可选,小场景和大场景各取所需;
  • Docker 快速部署:官方镜像一条命令起服务,容器内已打包 nginx 与 .NET 运行时;
  • 界面中英切换:内置 i18n,中文、英文、繁体中文语言包都在仓库里(frontend/src/languages/langsJson/);
  • 技术栈直白:前端 Vue 3.2 + TypeScript + VXE Table,后端 .NET 7.0 + Entity Framework Core,招人和维护都不费劲。
关注点ModernWMS 的做法
费用Apache 2.0 开源,零许可费
数据库SQLite / MySQL / SQL Server / PostgreSQL 四选一
部署Docker 容器化或源码编译(Linux、Windows 均可)
界面中/英/繁中,VXE Table 表格交互

一票货的旅程:从收货到发货

ModernWMS 把业务拆成三段:收货入库、库存管控、拣货发货。三段都用"状态标签页"驱动,每个状态一个独立操作界面,而不是把所有数据堆在一张表里。

收货入库:五步状态流,货走到哪一步一目了然

收货要解决的问题是"货到了但不知道处理到哪一步"。系统把入库流程切成五个状态:到货通知→待到货→待卸货→待分拣→待上架,外加收货明细。每个状态是一个独立标签页,当前阶段的单据就摆在对应的页面上;到货通知支持 Excel 批量导入,减少手工录入错误。筛选项按供应商名称、规格名称组织,方便按票追溯。

ModernWMS 开源仓库管理系统收货管理界面,到货通知、待卸货、待分拣、待上架五个状态标签页与筛选表格

ModernWMS 收货管理界面:五个状态标签页对应入库流程的每个阶段

库存管控:移动、冻结、调整、盘点各管一事

入库之后,库存会自然发生四类变化,系统对应四个独立入口(对应 frontend/src/view/warehouseWorking/ 下的四个目录):

  • 库存移动:库位间调拨,记录从哪到哪;
  • 库存冻结:质量异常、预留占用等场景,冻结的库存不可被发货拣用;
  • 库存调整:盘点前后、损耗报废的账目修正,调整单据留痕;
  • 库存盘点:账实核对,盘点结果落到调整。

配合基础设置里的仓库、库位、商品、货主主数据,库存账目从"一团数"变成"每笔都有单据"。

拣货发货:九个状态标签页,订单卡在哪个环节直接可见

发货管理(对应 frontend/src/view/deliveryManagement/)用标签页把订单状态横向铺开:INVOICE(发货单)→ PRE SHIPMENT(预发货)→ NEW SHIPMENT(新发货)→ GOODS TO BE PICKED(待拣货)→ PICKED(已拣货)→ TO BE PACKAGED(待打包)→ PACKAGED(已打包)→ TO BE WEIGHED(待称重)→ WEIGHED(已称重),后面还有出库、签收状态。每张发货单带总数量、总重量、总体积和创建人,按发货单号、单据状态、客户名称检索,哪个环节卡单直接可见。

ModernWMS 开源 WMS 发货管理界面,发货单、待拣货、待打包、已称重九个状态标签页与订单检索表格

发货管理界面:状态标签页加发货单号、状态、客户名称检索

第一次跑起来:最短可运行路径

部署前先做三件检查

  1. 操作系统在支持范围内:Linux 侧为 Ubuntu 18.04/20.04/22.04、CentOS Stream 8/9、RHEL 8/9、Debian 10/11、openSUSE 15;Windows 10 1607 及以上、Windows Server 2012 及以上;
  2. 已安装 Docker(容器方案);
  3. 80 端口(前端)与 20011 端口(后端 API)未被占用。

Docker 部署:一条命令起服务

sudo apt install docker.io
sudo docker pull modernwms/modernwms:1.0
sudo docker run -d -p 20011:20011 -p 80:80 modernwms/modernwms:1.0 ./run.sh

一个要注意的坑:镜像里前端写死了 127.0.0.1 的后端地址。如果要从别的机器访问,进入容器把前端静态文件里的 127.0.0.1:20011 替换为服务器实际 IP,然后 docker restart 容器即可。

验证部署是否成功

浏览器打开 http://服务器IP,初始账号 admin,密码 1。能看到下方主界面、左侧菜单完整加载,再随便进一个模块(比如收货管理)表格能拉到数据,就基本没问题;后端 API 监听在 20011 端口,可顺手确认连通。

ModernWMS 开源仓库管理系统主界面,左侧导航栏含收货管理、库存管理、仓内作业、发货管理功能模块

ModernWMS 主界面:左侧导航即系统功能地图

备选路线是源码编译(README 提供 Linux 与 Windows 两套完整步骤):装好 .NET SDK 7.0 和 NodeJS 16.13.1,前端 yarn && yarn build、后端 dotnet publish,再配 nginx 托管前端、dotnet ModernWMS.dll --urls http://0.0.0.0:20011 启动后端。想改代码再编译的场景走这条路,具体命令见仓库 README。

上生产之前:数据库怎么选型、权限与性能要点

数据库怎么选型

规模建议说明
单机 / 体验SQLite仓库自带 wms.db,零配置,先用它把流程跑通
多用户生产MySQL 8.0+最稳妥的选择,连接串改在 appsettings.json
已有环境SQL Server 2017+ / PostgreSQL 12+仓库提供对应连接串模板

切换数据库只需改后端 backend/ModernWMS/appsettings.json 里的 Database.db 与对应连接串,先 SQLite 后迁移到 MySQL 完全可行。

权限怎么配

"基础设置"模块下有三层入口(对应 frontend/src/view/base/ 下的目录):用户管理管账号,角色设置管角色,菜单设置把功能模块和操作权限分配给角色;角色、菜单与操作权限的绑定关系在后端 backend/ModernWMS.WMS/Entities/Models/Rolemenu/ 中落地。各业务实体自带 tenant_id 字段,为按租户/公司维度的数据隔离留了口子。关键操作有操作日志记录(backend/ModernWMS.WMS/Controllers/ActionLog/),出问题可回溯。

性能上盯这几点

前端:

  • 表格用 VXE Table 渲染大数据量列表,分页参数(默认 20 条/页)按需调;
  • Vite 构建自带代码分割,路由按需加载,首屏体积可控;
  • 多语言包按模块组织,切换语言不重新发版。

后端:

  • .NET 7.0 + Kestrel,单进程模型,按用户量规划机器规格即可;
  • JWT 令牌默认 60 分钟过期,appsettings.json 的 TokenSettings.ExpireMinute 可调;
  • 生产环境务必替换默认签名密钥(SigningKey),并收紧连接串口令;
  • 日志走 NLog(backend/ModernWMS/nlog.config),保留磁盘空间。

使用边界:它能干什么、不擅长什么

适合:

  • 单仓或少量仓库、SKU 万级以内的中小企业,把收货、库存、发货从纸面搬进系统;
  • 需要快速验证仓储流程、再决定是否深度定制的团队。

需要谨慎:

  • 多仓协同、跨区域调度、高并发出入库的场景,仓库没有提供微服务拆分或集群部署方案,别指望开箱即用;
  • 它没有 PDA / 移动端 App 客户端,手持设备采集环节需要自研或二次开发。

集成路径:

  • ERP 对接:后端是标准 REST API,带 Swagger 文档(ModernWMS_API,V1.0),ERP 或外部系统可直接调接口取数、推单;
  • 物流 / 单据:基础设置里的运费设置管理承运商与运费规则,打印方案(frontend/src/components/hiprint/)配置单据打印,二维码、条形码对话框(frontend/src/components/codeDialog/)支持扫码与标签流转;
  • 外设:条码枪在 Web 输入框内直接录入,按普通键盘输入处理即可,无需额外驱动。

ModernWMS 把"简易"和"完整"两个词同时做到了:功能不贪多,但收货、库存、发货这条主线是闭环的,部署路径也很短。建议先用 Docker 在一台空闲机器上把它跑起来,用测试数据完整走一遍收货、盘点、发货流程,再决定要不要进生产——源码就在仓库里,看不明白的地方直接翻代码比看文档更快。

【免费下载链接】ModernWMS The 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。 【免费下载链接】ModernWMS 项目地址: https://gitcode.com/GitHub_Trending/mo/ModernWMS

Logo

邀请您加入社区

更多推荐