
Prerequisites
- Docker Desktop:Download and install.
- 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:
- Open your browser and go to:
http://localhost:8080 - Username:
Administrator - 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: