This content originally appeared on DEV Community and was authored by Aditya
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
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
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/
Closing Note
At first, setting up Frappe on Windows feels confusing — but once you understand WSL as your Linux bubble, it all clicks.
This content originally appeared on DEV Community and was authored by Aditya