Frappe Education ERP V15 Setup
Hi, I’m Vaishnavi Padwal, I’m passionate about DevOps, AWS cloud, and Linux. I love learning how to automate infrastructure, deploy applications seamlessly, and solve real-world problems using modern tools and technologies. Through this blog, I share my learning journey, practical tutorials, tips, and projects to help others explore the world of DevOps and cloud computing. I’m always eager to connect with fellow tech enthusiasts and grow together. Let’s simplify complex tech and build cool things!
Prerequisites
Docker Desktop installed and running on your machine (Windows/Mac/Linux)
Git installed
Internet connection for the first-time setup
PHASE 1 — ONE-TIME SETUP (Do this only once)
STEP 1 — Clone the official Frappe Docker repo
Open a terminal (PowerShell on Windows / Terminal on Mac/Linux):
git clone https://github.com/frappe/frappe_docker.git
cd frappe_docker
STEP 2 — Copy the devcontainer config files
cp -r devcontainer-example .devcontainer
This sets up the development container configuration.
STEP 3 — Start the containers with Docker Compose
docker compose -f .devcontainer/docker-compose.yml up -d
This starts 4 containers in the background:
frappe— the main app containermariadb— databaseredis-cache,redis-queue,redis-socketio— caching/queuing
Wait about 1–2 minutes for all containers to be healthy.
STEP 4 — Enter the main container
docker exec -it -u frappe frappe_docker-frappe-1 bash
Note: The container name might differ slightly. Check the exact name with:
docker psLook for the container with
frappein its name.
STEP 5 — Initialize Frappe Bench (inside the container)
bench init --skip-redis-config-generation --frappe-branch version-15 frappe-bench
cd frappe-bench
This creates a frappe-bench directory with Frappe v15 installed.
STEP 6 — Configure services to point to Docker containers
bench set-mariadb-host mariadb
bench set-redis-cache-host redis-cache:6379
bench set-redis-queue-host redis-queue:6379
bench set-redis-socketio-host redis-socketio:6379
STEP 7 — Create a new site
bench new-site education.localhost \
--mariadb-root-password 123 \
--admin-password admin \
--no-mariadb-socket
Site name:
education.localhostMariaDB root password:
123(default in devcontainer)Admin password:
admin(you can change this)
STEP 8 — Get ERPNext app (required base for Education module)
bench get-app --branch version-15 --resolve-deps erpnext
This downloads ERPNext. It will take a few minutes.
STEP 9 — Get Frappe Education app
bench get-app https://github.com/frappe/education
STEP 10 — Install both apps on your site
bench --site education.localhost install-app erpnext
bench --site education.localhost install-app education
Each install will run migrations and take a few minutes.
STEP 11 — Set the site as default
bench use education.localhost
STEP 12 — Start Frappe bench
bench start
You will see logs in the terminal. Now open your browser and go to:
http://education.localhost:8000
Login with:
Username:
AdministratorPassword:
admin
PHASE 2 — DAILY USAGE (Every time you want to use it)
After the one-time setup, here's all you need to do on any future day:
Step 1 — Open Docker Desktop → Start the containers
Either click Start on your frappe_docker containers in Docker Desktop UI, or run:
cd frappe_docker
docker compose -f .devcontainer/docker-compose.yml up -d
Step 2 — Enter the container
docker exec -it -u frappe frappe_docker-frappe-1 bash
Step 3 — Navigate to bench and start
cd frappe-bench
bench start
Step 4 — Open in browser
http://education.localhost:8000
That's it!
To Stop
Press Ctrl + C in the terminal to stop bench start, then stop containers:
docker compose -f .devcontainer/docker-compose.yml stop
Or just stop them from Docker Desktop UI.
Important Notes
| Item | Value |
|---|---|
| Site URL | http://education.localhost:8000 |
| Admin user | Administrator |
| Admin password | admin |
| MariaDB root password | 123 |
| Bench folder | /home/frappe/frappe-bench (inside container) |
| Frappe version | v15 |
Your data is safe — it lives in Docker volumes, not the container itself. Even if you restart Docker Desktop, your site and data persist.
Don't delete the volumes from Docker Desktop — that will erase your data.
On Windows, add
education.localhostto yourhostsfile if the URL doesn't resolve: openC:\Windows\System32\drivers\etc\hostsas Administrator and add127.0.0.1 education.localhostOn Mac/Linux, add to
/etc/hosts:127.0.0.1 education.localhost
