Noureddine RAMDI / ModernWMS: A straightforward open-source warehouse management system for SMEs

Created Tue, 05 May 2026 13:37:39 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

fjykTec/ModernWMS

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.


→ GitHub Repo: fjykTec/ModernWMS ⭐ 1,484 · Vue