Table of Contents
ERPNext Dev Container is a single-container Docker setup for Frappe/ERPNext v15 development. It initializes a complete bench on first run, installs configured apps, creates a site, and provides a fast, repeatable workflow for local development on macOS, Linux, and Windows with Docker Desktop.
- Docker Desktop with Compose v2
- At least 4 GB RAM available to Docker
- 10+ GB free disk space
-
Clone the repository
git clone https://github.com/washmoredevelopment/erpnext-dev-container.git cd erpnext-dev-container -
Copy the example environment file
cp env.example .env
-
(Optional) Edit
.env:SITE_NAME(default:development.localhost)DB_ROOT_PASSWORDADMIN_PASSWORDSSH_KEY_PATH(for private repos)
-
Build and start
docker compose build docker compose up -d
-
First run takes ~10–15 minutes to initialize
-
After installation completes, restart
docker compose down docker compose up -d
-
Access ERPNext: http://localhost:8000
- Username:
Administrator - Password: value of
ADMIN_PASSWORD(defaultadmin)
- Username:
docker compose up -d # start
docker compose down # stop
docker compose logs -f # logsdocker compose exec frappe zsh
docker compose exec frappe zsh -lc "cd /home/frappeuser/frappe-bench && bench <command>"# Check container health
docker ps # Shows health: starting/healthy/unhealthy
# View detailed health status
docker exec -it frappe-dev cat /tmp/container_health
# Manual health check
docker exec -it frappe-dev /usr/local/bin/health-check- Single-container setup on Ubuntu 24.04 LTS
- Flexible app configuration via
APPSindocker-compose.yml - Optional private repo access via
SSH_KEY_PATH - All dependencies included (MariaDB, Redis, Python, Node)
- Developer mode and
bench watchenabled - Persistent volumes:
frappe-dataandfrappe-mysql - Health checks with clear status and logs
- ARM64 and AMD64 supported
Contributions are welcome. If you have ideas or find issues, please open an issue or submit a pull request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Questions or feedback? Please open an issue on GitHub.
Repo: https://github.com/washmoredevelopment/erpnext-dev-container