ModernWMS addresses a common pain point for small and medium enterprises (SMEs): how to manage warehouse operations without the complexity and cost of large-scale enterprise software. It’s an open-source Warehouse Management System (WMS) built to be lightweight and easy to deploy on either Linux or Windows environments. The project consciously trades off elaborate microservices or container orchestration for simplicity and straightforward deployment.
What ModernWMS is and how it’s built
At its core, ModernWMS is a monolithic application combining a frontend built with Vue.js and a backend powered by .NET 7. The frontend is a modern single-page application (SPA) that handles the user interface and interactions. It communicates with the backend, which exposes logistics and supply chain workflows commonly needed in warehouse management.
Persistence is handled with SQLite, using a local file-based database named wms.db. This choice reflects a clear focus on simplicity and low operational overhead, rather than scalability or distributed deployments. SQLite’s zero-configuration nature fits well with the intended audience — SMEs with limited IT resources.
The entire stack is packaged for deployment behind an Nginx reverse proxy, which serves the Vue.js static assets and proxies API requests to the .NET backend. This reverse proxy setup is manually configured and compiled from source, which might be a barrier for some but also gives full control over the deployment environment.
Optional Docker support is mentioned but the primary deployment pipeline is manual: compile the Vue frontend into static assets, publish the .NET backend DLL, and wire them using Nginx. This approach contrasts with more modern container-based CI/CD workflows but keeps the footprint light and dependencies minimal.
What makes ModernWMS’s architecture and approach notable
One technical strength is the pragmatic choice of technologies and deployment model. Vue.js provides a reactive, component-driven UI with good developer experience. .NET 7 offers a robust backend framework with high performance and cross-platform support.
Using SQLite as the database is a deliberate tradeoff. It keeps the system lightweight and easy to install but limits concurrency and scalability. For many SMEs, this is an acceptable compromise because it avoids the complexity of managing a dedicated database server.
The manual compilation steps reveal a tightly coupled deployment pipeline. The frontend is built with Yarn and Node.js, then copied as static files. The backend is built and published using the .NET SDK, then run as a single DLL process. Nginx is compiled from source with a minimal set of modules to serve static files and proxy backend requests.
This pipeline is not a perfect fit for cloud-native or containerized environments but offers a low-dependency, cross-platform deployment that can run on modest servers or virtual machines. It also means updates require repeating manual steps, which could be automated but currently are not.
The code quality, based on the repo structure and documented build steps, appears clean and maintainable. The division between frontend and backend is clear, and the SQLite file keeps persistence straightforward. However, the lack of a microservice architecture or database clustering means this solution is best suited for single-instance deployments.
Installation and quick start commands
ModernWMS provides explicit installation steps for Linux (Ubuntu, CentOS, RHEL, Debian, openSUSE) and Windows environments. Here is the Linux install process verbatim from the README:
# Step 1: Download the source code
cd /tmp/ && wget https://gitee.com/modernwms/ModernWMS/repository/archive/master.zip
# Step 2: Install .NET SDK and NodeJS
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update && sudo apt-get install -y dotnet-sdk-7.0
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
sudo apt-get install gcc g++ make
sudo npm install -g yarn
# Step 3: Compile frontend and backend
sudo apt install unzip
cd /tmp/ && unzip master.zip && cd ./ModernWMS-master
mkdir -p /ModernWMS/frontend/ /ModernWMS/backend/
cd /tmp/ModernWMS-master/frontend/
sed -i 's#http://127.0.0.1#http://IP address#g' ./.env.production
yarn && yarn build && cp -rf /tmp/ModernWMS-master/frontend/dist/* /ModernWMS/frontend/
cd /tmp/ModernWMS-master/backend/ && sudo dotnet publish && cp -rf /tmp/ModernWMS-master/backend/ModernWMS/bin/Debug/net7.0/publish/* /ModernWMS/backend/
cp -rf /tmp/ModernWMS-master/backend/ModernWMS/wms.db /ModernWMS/backend/
# Step 4: Install Nginx
cd /tmp/ && wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz && cd nginx-1.18.0
./configure --prefix=/etc/nginx --with-http_secure_link_module --with-http_stub_status_module --with-http_realip_module --without-http_rewrite_module --without-http_gzip_module
make && make install
cp -rf /ModernWMS/frontend/* /etc/nginx/html/
nohup /etc/nginx/sbin/nginx -g 'daemon off;' &
cd /ModernWMS/backend/ && dotnet ModernWMS.dll --urls
This process is comprehensive but requires familiarity with Linux command line, building software from source, and basic networking. The manual Nginx compilation is unusual today but might help keep the system lean and avoid unrelated modules.
Who benefits from ModernWMS and final thoughts
ModernWMS is well-suited for small and medium businesses that need a straightforward warehouse management system without the cost or complexity of enterprise solutions. It’s particularly useful when IT resources are limited, but there is some capacity to build and deploy software manually.
The main limitations are around scalability and automation. SQLite limits concurrent usage, and the manual deployment steps could slow down updates or scaling. There is no built-in clustering, multi-instance support, or advanced fault tolerance.
That said, the code is clean, the architecture is clear, and the tech stack is modern yet pragmatic. For teams comfortable with .NET and Vue.js, this repo offers a solid base to extend or customize.
If your warehouse operations fit within the constraints of a single-instance SQLite-backed system, and you want a self-hosted, open-source option that you can control fully, ModernWMS is worth exploring. It’s a good example of balancing simplicity against features and infrastructure overhead in SME tooling.
Related Articles
- Shopware 6: A flexible, API-first e-commerce platform built on Symfony and Vue.js — Shopware 6 is an open-source, API-first e-commerce platform leveraging Symfony 7 and Vue.js 3. It combines a full shoppi
- Under the hood of Monica: a personal CRM built with Laravel and Vue.js — Monica is a personal CRM built with Laravel and Vue.js, designed to help users manage relationships. This article explor
- Krayin CRM: A Laravel and Vue.js full-stack open-source CRM framework — Krayin CRM combines Laravel backend and Vue.js frontend in a modular open-source CRM tailored for SMEs. It offers email
- Colmena: A stateless, Rust-based deployment tool for NixOS with Nix Flakes support — Colmena is a lightweight Rust tool for stateless, parallel NixOS deployments using Nix Flakes. It wraps core Nix command
- Jan: a local-first desktop app for large language models with Tauri and Rust — Jan is an open-source desktop app that runs large language models locally using Tauri, Node.js, and Rust. It offers priv
→ GitHub Repo: fjykTec/ModernWMS ⭐ 1,484 · Vue