⚙️📊 How to Install ERPNext on Windows (Docker)

Prerequisites

  1. Docker Desktop:Download and install.
  2. Git for Windows: Download and install.


Step-by-Step Installation

1. Clone the Official Repository

Open CMD or PowerShell and navigate to where you want to store the project (e.g., D:/ERP):

D:
cd ERP
git clone https://github.com/frappe/frappe_docker.git
cd frappe_docker

2. The Quick Setup

Frappe provides a pwd.yml (Play With Docker) file designed for rapid deployment. This will spin up the database, redis, and the ERPNext application in one go.

docker compose -f pwd.yml up -d

3. Wait for the Site Creation

Even after the containers “start,” ERPNext needs a few minutes to build the database and install the site. You can watch the progress by tracking the logs:

docker compose -f pwd.yml logs -f create-site

Wait until you see a message saying the site has been successfully created.

4. Access ERPNext

Once the logs stop moving:

  1. Open your browser and go to: http://localhost:8080
  2. Username: Administrator
  3. Password: admin


How to Install Frappe HR / HRMS on Existing ERPNext (Docker)

1. Access the “Backend” Container

ERPNext commands must be run inside the container where the Python environment (Bench) lives. Open PowerShell in your frappe_docker folder and run:

PowerShell

docker exec -it frappe_docker-backend-1 bash

You are now “inside” the Linux environment of your ERPNext server.

2. Fetch the HRMS App

Now you need to tell the system to download the HRMS code from GitHub into your local “apps” folder:

Bash

bench get-app hrms

3. Install HRMS to your Site

You have to “install” it into your database. Replace frontend with your actual site name (usually frontend or localhost in the pwd.yml setup):

Bash

bench --site frontend install-app hrms
  • What happens here: The system runs database migrations, creates the HR-specific tables, and adds the “Payroll,” “HR,” and “Attendance” workspaces to your dashboard.

4. Restart the Containers

For the changes to take effect in the browser, exit the container and restart:

Bash

exit
docker compose restart


How to Setup Cloudflare Tunnel

1. Install cloudflared on Windows

Download the installer from: 👉 https://github.com/cloudflare/cloudflared/releases/latest
Grab cloudflared-windows-amd64.msi and install it.

2. Login to Cloudflare

cloudflared tunnel login

A browser window opens => select your domain => authorize. This saves a cert to your PC.

3. Create the tunnel

cloudflared tunnel create erpnext-tunnel

Note the **tunnel ID** it gives you (looks like a UUID).

4. Create the config file

Create a file at: C:\Users\<YourUser>\.cloudflared\config.yml with this content

tunnel: <your-tunnel-id>
credentials-file: C:\Users\<YourUser>\.cloudflared\<your-tunnel-id>.json

ingress:
  - hostname: erp.your-domain.my.id
    service: http://localhost:8080
  - service: http_status:404

Replace <your-tunnel-id> with the id Cloudflare generates automatically when you run Step 3. Adjust the hostname into your domain/subdomain.

5. Create the DNS record

cloudflared tunnel route dns erpnext-tunnel erp.your-domain.my.id

This auto-creates a CNAME on Cloudflare pointing to your tunnel. No manual DNS editing needed.

6. Run the tunnel

cloudflared tunnel run erpnext-tunnel

Then visit https://erp.your-domain.my.id — it should load your ERPNext. HTTPS is automatic, Cloudflare handles the cert.

7. Run as Windows Service (Optional but Recommended)

cloudflared service install

So the tunnel starts automatically on boot:

Leave a Reply

Your email address will not be published. Required fields are marked *