Everything about Frappe and ERPNext in containers, with integrated industrial automation capabilities through EpiBus.
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.
First clone the repo:
git clone https://github.com/frappe/frappe_docker
cd frappe_dockerThis setup includes industrial automation capabilities through EpiBus, OpenPLC, and PLC Bridge integration.
# Build custom Docker image with EpiBus included
./development/build-epibus-image.shCopy and configure environment file:
cp example.env .env
# Edit .env to set:
# CUSTOM_IMAGE=frappe-epibus
# CUSTOM_TAG=latest
# PULL_POLICY=neverFor Mac M-series (ARM64):
docker compose \
-f compose.yaml \
-f overrides/compose.mariadb.yaml \
-f overrides/compose.redis.yaml \
-f overrides/compose.mac-m4.yaml \
-f overrides/compose.openplc.yaml \
-f overrides/compose.plc-bridge.yaml \
up -dFor x86_64 systems:
docker compose \
-f compose.yaml \
-f overrides/compose.mariadb.yaml \
-f overrides/compose.redis.yaml \
-f overrides/compose.openplc.yaml \
-f overrides/compose.plc-bridge.yaml \
up -d# Wait for services to be ready, then create site
# CRITICAL: Use --mariadb-user-host-login-scope=% for Docker network compatibility
docker compose exec backend \
bench new-site intralogistics.localhost \
--admin-password admin \
--db-root-password 123 \
--mariadb-user-host-login-scope=% \
--install-app erpnext \
--install-app epibus- Find the frontend port: Use
docker compose psto find the auto-assigned port for the frontend service - Access web interface: Open
http://localhost:<port>/in your browser - Login credentials: Username:
Administrator, Password:admin
To view container logs:
docker compose logs -f configurator
docker compose logs -f backend- EpiBus Dashboard: Navigate to "EpiBus" module after login
- OpenPLC Web Interface: Use
./get-openplc-port.shto get port number - PLC Bridge API: Available on port 7654 for real-time PLC communication
- MODBUS Communication: Monitor and control PLC signals through EpiBus interface
If you encounter database connection issues after restarting containers, run:
# Get current backend container IP
BACKEND_IP=$(docker compose exec backend hostname -i)
# Grant database access (adjust user/password as needed)
docker compose exec db mysql -u root -p123 -e "GRANT ALL PRIVILEGES ON *.* TO 'site_user'@'$BACKEND_IP'; FLUSH PRIVILEGES;"- List of containers
- Single Compose Setup
- Environment Variables
- Dynamic Port Mapping
- Single Server Example
- Setup Options
- Site Operations
- Backup and Push Cron Job
- Port Based Multi Tenancy
- Migrate from multi-image setup
- running on linux/mac
- TLS for local deployment
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: