Skip to main content

Command Palette

Search for a command to run...

Frappe Education ERP V15 Setup

Updated
4 min read
V

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 container

  • mariadb — database

  • redis-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 ps

Look for the container with frappe in 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.localhost

  • MariaDB 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: Administrator

  • Password: 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.localhost to your hosts file if the URL doesn't resolve: open C:\Windows\System32\drivers\etc\hosts as Administrator and add 127.0.0.1 education.localhost

  • On Mac/Linux, add to /etc/hosts: 127.0.0.1 education.localhost