Docker environment for developing, deploying, and running Frappe applications (ERPNext and custom apps) in production and development
Find a file
ubden 6485b93da7 fix: Keep node_modules for runtime dependencies and add troubleshooting guide
Critical fix:
- Dockerfile: Do not delete node_modules folders (socket.io needed at runtime)
- Only remove .git folders and Python cache
- Preserve all npm packages for WebSocket functionality

New documentation:
- dokploy/TROUBLESHOOTING.md: Common issues and solutions
  * WebSocket host not found
  * socket.io module not found
  * Frontend restart loop
  * Site not found errors

This fixes:
- Frontend restart loop
- WebSocket container crashes
- socket.io MODULE_NOT_FOUND errors

WebSocket requires socket.io, redis, socket.io-redis packages at runtime.
These must NOT be deleted in Dockerfile cleanup.
2025-10-14 09:12:51 +03:00
.github chore: Remove remaining unnecessary documentation files 2025-10-14 09:03:18 +03:00
.vscode chore(lint): Run prettier 2021-12-10 11:53:43 +03:00
devcontainer-example chore(deps): update MariaDB to v11.8 (LTS) (#1715) 2025-09-29 11:37:17 +05:30
development chore: Add configuration for Bench Default Worker in launch.json (#1652) 2025-07-04 11:22:35 +05:30
docs Revert "Use docker compose instead of docker-compose (#1702)" (#1708) 2025-09-16 08:19:27 +05:30
dokploy fix: Keep node_modules for runtime dependencies and add troubleshooting guide 2025-10-14 09:12:51 +03:00
images chore: Update EOL NodeJS to 20.19.2 (#1638) 2025-05-29 17:33:28 +05:30
overrides chore(deps): update MariaDB to v11.8 (LTS) (#1715) 2025-09-29 11:37:17 +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 Update .pre-commit-config.yaml to expand exclusion patterns for linting hooks 2025-10-13 23:57:08 +03:00
.shellcheckrc chore(lint): Take hooks configs out so linting works without pre-commit too (#609) 2021-12-10 12:31:44 +03: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-10-08 15:05:10 +00:00
FINAL_SETUP.md chore: Remove remaining unnecessary documentation files 2025-10-14 09:03:18 +03: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-10-08 15:05:10 +00:00
README.md refactor: Simplify to 4 essential apps and clean up documentation 2025-10-14 09:01:15 +03: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 Build Dokploy GitHub release Docker Image

Everything about Frappe and ERPNext in containers.

Getting Started

To get started you need Docker, docker-compose, and git setup on your machine. For Docker basics and best practices refer to Docker's documentation.

Once completed, chose one of the following two sections for next steps.

🚀 Deploy to Dokploy (Production Ready)

Hızlı ve verimli ERPNext deployment - 4 temel uygulama ile 10-15 dakikada hazır!

Repository: https://github.com/ubden/frappe_docker
Branch: main
Compose Path: dokploy/docker-compose.yml
Frontend Port: 8088
SSL: Auto (Let's Encrypt)

📚 Quick Start: dokploy/QUICKSTART.md
📖 Docs: dokploy/README.md
🔒 SSL Setup: dokploy/SSL_SETUP.md

Included Apps (4):

  • ERPNext (ERP Core - Accounting, Inventory, Sales, Manufacturing)
  • CRM (Customer Relations - Lead, Deal Management)
  • Helpdesk (Support System - Tickets, SLA, Knowledge Base)
  • Payments (Payment Gateways - Stripe, PayPal, Razorpay)

Features:

  • Fast deployment (10-15 min)
  • Minimal disk usage (3-4 GB)
  • Auto SSL/HTTPS (Let's Encrypt)
  • Production-ready config
  • Port 8088 with HTTPS support

Try in Play With Docker

To play in an already set up sandbox, in your browser, click the button below:

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

Dokploy Deployment 🚀

ERPNext with essential business apps, optimized for Dokploy:

Included Apps: ERPNext, CRM, Helpdesk, Payments
Port: 8088 (HTTPS otomatik)
Build Time: 10-15 min
Disk: 3-4 GB

Production

Custom Images

Development

Troubleshoot

Contributing

If you want to contribute to this repo refer to CONTRIBUTING.md

This repository is only for container related stuff. You also might want to contribute to: