Docker environment for developing, deploying, and running Frappe applications (ERPNext and custom apps) in production and development
Find a file
2025-09-25 13:57:58 +07:00
.github Upgrade node version (#1706) 2025-09-16 12:39:26 +05:30
.vscode chore(lint): Run prettier 2021-12-10 11:53:43 +03:00
devcontainer-example Improve devcontainer behaviour on ARM Macs (#1707) 2025-09-23 13:30:48 +05:30
development update README and add wrapper script bench.sh 2025-09-25 13:49:28 +07:00
docs Revert "Use docker compose instead of docker-compose (#1702)" (#1708) 2025-09-16 08:19:27 +05:30
images chore: Update EOL NodeJS to 20.19.2 (#1638) 2025-05-29 17:33:28 +05:30
overrides Add Docker Secrets Support for Database Password & fixed missing boto3 dependency in tests (#1657) 2025-07-19 08:27:10 +05:30
resources fix: pwd SocketIO Origin in nginx conf (#1552) 2025-01-24 12:36:30 +05:30
tests Add Docker Secrets Support for Database Password & fixed missing boto3 dependency in tests (#1657) 2025-07-19 08:27:10 +05:30
.dockerignore Global refactoring (#617) 2022-03-14 11:23:03 +05:30
.editorconfig chore: Use pre-commit framework (#604) 2021-12-10 11:48:00 +03:00
.gitignore fix: gitignore (#1391) 2024-05-01 12:25:49 +05:30
.pre-commit-config.yaml chore(deps): Update pre-commit hooks (#1576) 2025-02-28 12:56:36 +05:30
.shellcheckrc chore(lint): Take hooks configs out so linting works without pre-commit too (#609) 2021-12-10 12:31:44 +03:00
bench.sh update README and add wrapper script bench.sh 2025-09-25 13:49:28 +07:00
CODE_OF_CONDUCT.md #1402 Environment variables for custom image (#1403) 2024-06-08 00:21:17 +05:30
compose.yaml Compose with restart (#1567) 2025-02-15 12:03:57 +05:30
CONTRIBUTING.md ci: refactor (#1158) 2023-06-26 11:54:37 +05:30
docker-bake.hcl Upgrade node version (#1706) 2025-09-16 12:39:26 +05:30
example.env chore: Update example.env 2025-09-23 14:07:48 +00:00
install_x11_deps.sh Cypress UI Test service and updates to installer.py (#1250) 2023-10-26 08:35:31 +05:30
LICENSE chore: Rename LICENSE.md to LICENSE (#608) 2021-12-10 16:25:57 +05:30
pwd.yml chore: Update example.env 2025-09-23 14:07:48 +00:00
README.md Update readme 2025-09-25 13:57:58 +07:00
requirements-test.txt chore(deps): bump pytest from 8.4.1 to 8.4.2 (#1694) 2025-09-08 07:30:37 +05:30
setup.cfg Use pytest (#705) 2022-03-24 10:40:56 +03:00

Build Stable Build Develop

Frappe Docker

Everything about Frappe and ERPNext in containers.

Production-ready containerized setup for Frappe and ERPNext applications. This repository provides Docker images and deployment configurations for running Frappe/ERPNext in both development and production environments.

Table of Contents

Overview

Frappe Docker provides a complete containerized solution for deploying the Frappe framework and ERPNext ERP system. It includes:

  • Pre-built Docker images for Frappe and ERPNext (versions 13, 14, and 15)
  • Multiple deployment configurations (development, production, single-server)
  • Docker Compose setups for easy orchestration
  • Support for custom apps and extensions
  • Built-in backup and restore capabilities
  • TLS/SSL support via Traefik reverse proxy
  • Multi-tenancy support with port-based routing
  • Development containers with VSCode integration

Prerequisites

Before you begin, ensure you have:

Quick Start

Choose one of the following options to get started quickly:

Option 1: Try in Browser (Play With Docker)

Click below to instantly spin up a Frappe/ERPNext instance in your browser:

Try in PWD

Try on your Dev environment

First clone the repo:

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

Then run: docker compose -f pwd.yml up -d

To run on ARM64 architecture follow this instructions

After you clone the repo and cd frappe_docker, run this command to build multi-architecture images specifically for ARM64.

docker buildx bake --no-cache --set "*.platform=linux/arm64"

and then

  • add platform: linux/arm64 to all services in the pwd.yml
  • replace the current specified versions of erpnext image on pwd.yml with :latest

Then run: docker compose -f pwd.yml up -d

Final steps

Wait for 5 minutes for ERPNext site to be created or check create-site container logs before opening browser on port 8080. (username: Administrator, password: admin)

If you ran in a Dev Docker environment, to view container logs: docker compose -f pwd.yml logs -f create-site. Don't worry about some of the initial error messages, some services take a while to become ready, and then they go away.

Documentation

Frequently Asked Questions

Production

Production Deployment

Development

Customization

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.