How to Install ERPNext with Docker
Want to try ERPNext without manually installing MariaDB, Redis, Node.js, Python, and other dependencies?
Docker makes this much easier. Instead of installing everything directly on your server, Docker runs ERPNext and its required services inside containers.
In this guide, we’ll use the official Frappe Docker project to run ERPNext.
You don’t need to be a Docker expert to follow this guide. We’ll go step by step and explain what each command does.
Important: This guide uses the official
pwd.ymlquick-start setup from Frappe Docker. It is designed for testing and trying ERPNext. It is not a production setup for a real business.
What You Will Install
You only need a few things before starting:
- Docker
- Docker Compose
- Git
The official Frappe Docker project provides the rest of the ERPNext environment.
You do not need to manually install:
- MariaDB
- Redis
- Node.js
- Python
- Yarn
- Frappe Bench
when using the Docker quick-start setup.
Prerequisites
This guide assumes you are using a Linux server such as Ubuntu.
You should also have:
- A working internet connection
- A user account that can run
sudo - Enough disk space for Docker images and ERPNext data
Step 1: Install Docker
If Docker is already installed, you can skip this step.
If you need Docker, follow the official Docker installation guide:
After installing Docker, check that it is working:
docker --version
You should see something similar to:
Docker version 28.x.x
The exact version may be different.
Step 2: Check Docker Compose
The current Frappe Docker project uses Docker Compose v2.
Check whether Docker Compose is installed:
docker compose version
You should see something similar to:
Docker Compose version v2.x.x
Important: Use
docker composewith a space.Older tutorials often use
docker-composewith a hyphen. The current Frappe Docker documentation uses Docker Compose v2.
If the command works, you are ready to continue.
Step 3: Install Git
Git is used to download the official Frappe Docker project.
Check whether Git is already installed:
git --version
If Git is not installed, install it on Ubuntu:
sudo apt update
Then:
sudo apt install -y git
Check again:
git --version
You should now see the installed Git version.
Step 4: Download Frappe Docker
Now we will download the official Frappe Docker project.
Run:
git clone https://github.com/frappe/frappe_docker
This downloads the project into a new folder called frappe_docker.
Move into that folder:
cd frappe_docker
You can check the files inside the folder:
ls
You should see files and folders including:
compose.yaml
pwd.yml
docs
overrides
The important file for this beginner-friendly setup is:
pwd.yml
This is the quick-start configuration provided by the Frappe Docker project.
Step 5: Start ERPNext
Now we are ready to start ERPNext.
Run:
docker compose -f pwd.yml up -d
Let’s understand this command:
docker compose
Tells Docker to use Docker Compose.
-f pwd.yml
Tells Docker to use the pwd.yml configuration file.
up
Tells Docker to create and start the required containers.
-d
Runs everything in the background.
So, in simple terms, this command means:
“Start the ERPNext environment using the official quick-start configuration.”
Step 6: Wait for ERPNext to Start
The first time you run the command, Docker needs to download the required images.
This can take some time.
You may see Docker downloading several images and creating containers.
Do not worry if it takes a few minutes.
After the containers start, ERPNext still needs to create the site.
So don’t open the browser immediately.
Wait a few minutes first.
Step 7: Check if the Containers Are Running
You can check the containers with:
docker ps
You should see several containers running.
You can also check the Docker Compose services:
docker compose -f pwd.yml ps
Look at the STATUS column.
You should see containers that are running.
For example:
Up
The exact container names and number of containers can change between versions of the Frappe Docker project.
Step 8: Check if ERPNext Has Finished Creating the Site
The ERPNext site needs to be created before you can log in.
If you are not sure whether the site is ready, first list all containers:
docker ps -a
Look for the container related to:
create-site
Then check its logs.
For example:
docker logs <create-site-container>
Replace:
<create-site-container>
with the actual container name.
You can also watch the logs live:
docker logs -f <create-site-container>
When you are finished watching the logs, press:
Ctrl+C
Tip: If you’re unsure whether ERPNext is ready, waiting a few minutes and checking the
create-sitelogs is usually the easiest approach.
Step 9: Open ERPNext
Once the site has been created, open your web browser.
If ERPNext is running on your own computer, open:
http://localhost:8080
You should see the ERPNext login screen.
Using a Remote Server
If ERPNext is running on a remote server, use the server’s IP address instead of localhost.
For example:
http://YOUR_SERVER_IP:8080
Replace:
YOUR_SERVER_IP
with your server’s actual IP address.
For example:
http://192.168.1.100:8080
If you cannot access the page from another computer, check your server firewall and make sure port 8080 is accessible.
Step 10: Log in to ERPNext
For the official quick-start environment, the default login credentials are:
Username:
Administrator
Password:
admin
Enter these credentials on the ERPNext login screen.
You should now be inside ERPNext.
🎉 Congratulations! Your ERPNext Docker environment is running.
Step 11: Check ERPNext Logs
If something isn’t working, Docker logs are usually the first place to look.
First, see your running containers:
docker ps
Find the container you want to check.
Then run:
docker logs <container_name>
Replace:
<container_name>
with the actual container name.
For example:
docker logs <container_name>
To continuously watch the logs:
docker logs -f <container_name>
Press:
Ctrl+C
to stop watching the logs.
Step 12: View Logs for the Whole ERPNext Setup
You can also view the logs for the entire Docker Compose project.
Run:
docker compose -f pwd.yml logs
To continuously watch the logs:
docker compose -f pwd.yml logs -f
This can be useful if you are not sure which container is causing a problem.
Step 13: Stop ERPNext
When you want to stop the ERPNext Docker environment, run:
docker compose -f pwd.yml down
This stops and removes the containers created by the Compose project.
Your Docker setup can be started again later.
Step 14: Start ERPNext Again
If you stopped ERPNext and want to start it again, run:
docker compose -f pwd.yml up -d
Then check the containers:
docker compose -f pwd.yml ps
If everything is running, open:
http://localhost:8080
again.
Useful Docker Commands
Here are the most useful commands from this guide in one place.
Start ERPNext
docker compose -f pwd.yml up -d
Stop ERPNext
docker compose -f pwd.yml down
Check ERPNext Containers
docker compose -f pwd.yml ps
Check All Running Containers
docker ps
Check All Containers
docker ps -a
View All ERPNext Logs
docker compose -f pwd.yml logs
Follow ERPNext Logs
docker compose -f pwd.yml logs -f
View a Specific Container’s Logs
docker logs <container_name>
Follow a Specific Container’s Logs
docker logs -f <container_name>
What If ERPNext Doesn’t Open?
If this address does not open:
http://localhost:8080
don’t panic.
Start by checking whether the containers are running:
docker ps
Then check the Compose services:
docker compose -f pwd.yml ps
If a container is not running, check all containers:
docker ps -a
Then check its logs:
docker logs <container_name>
You can also check all logs:
docker compose -f pwd.yml logs
Common things to check are:
- Is Docker running?
- Are the containers running?
- Has the
create-siteprocess finished? - Is port
8080accessible? - Is your server firewall blocking the port?
- Did any container stop or restart?
Important: This Is Not a Production Setup
The pwd.yml configuration is designed to make it easy to try ERPNext quickly.
It is useful for:
- Learning ERPNext
- Testing ERPNext
- Demonstrations
- Temporary environments
- Exploring Docker
It is not intended to be your production ERPNext server.
For example, you should not simply run:
docker compose -f pwd.yml up -d
on a production server and assume that you now have a production-ready ERPNext installation.
A production ERPNext deployment needs additional configuration for things such as:
- HTTPS/SSL
- Domain names
- Backups
- Security
- Persistent storage
- Monitoring
- Custom applications
- Production configuration
- Database management
- Updates
- Disaster recovery
The official Frappe Docker project provides a separate production deployment approach using compose.yaml and the appropriate configuration overrides.
Quick Demo vs Production
The easiest way to remember the difference is:
For Trying ERPNext
Use:
pwd.yml
Start it with:
docker compose -f pwd.yml up -d
This is the setup used in this tutorial.
For Production
Use the production deployment approach documented by the official Frappe Docker project.
The production setup is based around:
compose.yaml
and the appropriate files in:
overrides/
You can read the official production documentation here:
Official Frappe Docker Documentation
Can I Install Custom Frappe Apps?
The quick-start pwd.yml environment is intended for testing and is not designed for installing custom applications.
If your ERPNext project requires applications such as:
- HRMS
- Custom Frappe applications
- Private applications
- Custom integrations
- Industry-specific apps
- Your own custom app
you should use the appropriate production/custom-image approach from the official Frappe Docker documentation.
For a custom application, Docker images are generally built with the required applications included.
This gives you a much more controlled and repeatable environment.
Can I Use This on a VPS?
Yes, you can run the Docker quick-start environment on a VPS for testing.
For example, you could use an Ubuntu VPS with Docker installed.
After connecting to the VPS, the basic process is:
git clone https://github.com/frappe/frappe_docker
Then:
cd frappe_docker
Then:
docker compose -f pwd.yml up -d
Check the containers:
docker compose -f pwd.yml ps
Then access:
http://YOUR_SERVER_IP:8080
However, if the VPS will host a real company’s ERPNext system, use the official production deployment method instead of treating pwd.yml as a production configuration.
Conclusion
Installing ERPNext with Docker is much easier than manually installing all of its dependencies.
For a quick ERPNext test environment, the process is simple:
1. Install Docker
docker --version
2. Check Docker Compose
docker compose version
3. Install Git
sudo apt update
sudo apt install -y git
4. Download Frappe Docker
git clone https://github.com/frappe/frappe_docker
5. Enter the directory
cd frappe_docker
6. Start ERPNext
docker compose -f pwd.yml up -d
7. Check the containers
docker compose -f pwd.yml ps
8. Open ERPNext
http://localhost:8080
9. Log in
Username: Administrator
Password: admin
That’s it! 🎉
You now have ERPNext running through Docker.
Remember that this setup is intended for quick testing and evaluation. If you are deploying ERPNext for a real business, you should use the production deployment method provided by the official Frappe Docker project and configure the server properly for security, backups, HTTPS, persistent data, updates, and production workloads.



Comments
Start the conversation — be the first to share your thoughts.