DEV Community

Aditya
Aditya

Posted on

Running Frappe/ERPNext on Windows with WSL — A Web Developer’s Perspective

🚀 How It Started

I’m a MERN-stack developer exploring ERP software then I come to know about ERNnext based on Frappe, an open-source Python + MariaDB framework.
While trying to set it up on Windows, I quickly learned:

Frappe runs perfectly on Linux/Mac, but fails on native Windows.

So I had to learn why, and how to make it work using WSL (Windows Subsystem for Linux).

⚙️ Why Frappe Doesn’t Run on Windows Directly

Unlike Node.js (which runs anywhere), Frappe depends on:

MariaDB (SQL database)

Redis (caching + background jobs)

Gunicorn/Werkzeug (Python web server)

Supervisor/Nginx (process control)

These tools are Linux-native.
They expect a Linux-style filesystem, bash commands, and POSIX permissions — things Windows doesn’t provide.

💻 What WSL Does

WSL (Windows Subsystem for Linux) acts like a lightweight virtual Linux computer inside Windows.

It gives you:

a real Linux kernel

Ubuntu filesystem (/home/)

package manager (apt)

shared network + hardware

So you can run sudo apt install, redis-server, mysql, and other Linux tools — directly inside Windows.

📂 The Linux files actually live inside:

C:\Users<Name>\AppData\Local\Packages...\ext4.vhdx
Windows just mounts it for you.

🏗️ Installing Frappe in WSL (Simplified Steps)

# open Ubuntu (WSL)

sudo apt update && sudo apt upgrade

sudo apt install python3-pip redis-server mariadb-server

pip install frappe-bench

bench init frappe-bench

cd frappe-bench

source env/bin/activate

bench new-site dev.localhost #new site name 

bench start

Enter fullscreen mode Exit fullscreen mode

Now open http://localhost:8000 or http://dev.localhost:8000/

🧠 Why “bench” Exists

bench is a command-line tool that:

Initializes new Frappe projects

Starts servers (web, Redis, workers)

Handles database migrations

Installs apps like ERPNext

Basically, it’s your Frappe DevOps manager.

So think of:

Bench = npm + pm2 + nodemon for Python

💡 How VS Code Fits In

You can open your WSL folder in VS Code:

\\wsl$\Ubuntu\home\<user>\frappe-bench

Enter fullscreen mode Exit fullscreen mode

and then run bench start in VS Code’s WSL terminal.
The editor runs in Windows, but the code executes inside Ubuntu — the best of both worlds.

⚡ Key Takeaways

Frappe = full-stack Python framework with its own ecosystem.

Windows can’t run it directly → needs WSL (Linux inside Windows).

WSL shares your PC’s CPU, RAM, and disk but acts like Ubuntu.

bench manages everything — like npm + pm2 for Frappe.

You can code in VS Code and run in WSL seamlessly.

✅ Example Setup Recap

# Activate virtual env
source ~/frappe-bench/env/bin/activate

# Start Frappe
bench start

# Access site
http://localhost:8000 or http://dev.localhost:8000/

Enter fullscreen mode Exit fullscreen mode

✨ Closing Note
At first, setting up Frappe on Windows feels confusing — but once you understand WSL as your Linux bubble, it all clicks.

Top comments (0)