Docker is the fastest way to get ERPNext running. No manual dependency installation, no version conflicts. This guide uses the official Frappe Docker images to set up a complete ERPNext environment.

Pre-requisites

Docker Engine 20.10+
Docker Compose v2
Git

STEP 1 Install Docker

On Ubuntu:

sudo apt-get update
sudo apt-get install -y docker.io docker-compose-v2
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

On Mac:

brew install --cask docker

STEP 2 Clone the Frappe Docker Repository

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

STEP 3 Copy the Example Environment File

cp example.env .env

Edit the .env file to set your passwords and site name:

nano .env

STEP 4 Start the Containers

For a development setup:

docker compose -f compose.yaml 
  -f overrides/compose.noproxy.yaml 
  -f overrides/compose.erpnext.yaml 
  up -d

STEP 5 Create a New Site

docker compose exec backend bench new-site mysite.localhost 
  --mariadb-root-password 123 
  --admin-password admin123 
  --install-app erpnext

STEP 6 Set the Default Site

docker compose exec backend bench --site mysite.localhost set-config developer_mode 1
docker compose exec backend bench --site mysite.localhost clear-cache
docker compose restart backend

Your ERPNext instance is now running at:

http://mysite.localhost:8080

Useful Commands

# View logs
docker compose logs -f backend

# Run bench commands
docker compose exec backend bench --help

# Stop everything
docker compose down

# Stop and delete all data
docker compose down -v

# Backup site
docker compose exec backend bench --site mysite.localhost backup

Docker makes ERPNext setup a 5-minute job instead of an hour. The trade-off is you need to understand Docker basics for debugging, but for development and testing it’s the way to go.

Share this article

Comments

Join the discussion. Got a question, found an issue, or want to share your experience?

Leave a Comment

Your email stays private. We just use it for replies.

Nothing to preview yet.

Use **bold**, *italic*, `code`, ```code blocks```, [link](url), > quote, - list