ERPNext
Full-featured open-source ERP system.
Overview
ERPNext is a comprehensive open-source Enterprise Resource Planning (ERP) system built on the Frappe framework, designed to handle all aspects of business operations from accounting and HR to manufacturing and project management. Originally developed by Frappe Technologies in India, ERPNext has grown into one of the most feature-complete open-source ERP solutions available, offering modules for accounting, inventory management, CRM, human resources, manufacturing, asset management, and project tracking. This Docker stack combines ERPNext with MariaDB as the primary database backend and Redis for caching and queue management, creating a robust three-tier architecture optimized for business operations. MariaDB provides the transactional reliability needed for financial data and business records, while Redis handles session management, real-time notifications, and background job queues that power ERPNext's workflow automation. This configuration is ideal for small to medium-sized businesses looking to implement a complete ERP solution, development teams building custom business applications on the Frappe framework, or organizations migrating from proprietary ERP systems to an open-source alternative that can be fully customized and extended.
Key Features
- Complete business suite with 15+ integrated modules including accounting, inventory, HR, manufacturing, and CRM
- Frappe framework foundation enabling custom app development and workflow automation
- MariaDB backend with Aria storage engine optimized for business transaction processing
- Redis-powered real-time notifications and background job processing for workflow automation
- Multi-company and multi-currency support with automated exchange rate updates
- Role-based permissions system with granular access control for business data
- Built-in REST API and webhook system for third-party integrations
- Responsive web interface with offline-capable Progressive Web App features
Common Use Cases
- 1Small to medium manufacturing companies needing integrated production planning and inventory management
- 2Service-based businesses requiring project management with time tracking and billing integration
- 3Retail operations needing point-of-sale integration with inventory and accounting systems
- 4Growing startups transitioning from spreadsheets to integrated business management software
- 5Educational institutions managing student records, fee collection, and academic planning
- 6Non-profit organizations tracking donors, grants, and program management
- 7Development agencies building custom ERP solutions for clients on the Frappe framework
Prerequisites
- Minimum 4GB RAM (8GB+ recommended for production environments with multiple users)
- Docker and Docker Compose installed with adequate storage for business data growth
- Port 8080 available for ERPNext web interface access
- Basic understanding of ERP concepts and business process workflows
- MariaDB administration knowledge for backup and maintenance procedures
- Familiarity with Frappe bench commands for site management and app installation
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 erpnext: 3 image: frappe/erpnext:latest4 container_name: erpnext5 restart: unless-stopped6 environment: 7 DB_HOST: mariadb8 DB_PORT: 33069 REDIS_CACHE: redis://redis:6379/010 REDIS_QUEUE: redis://redis:6379/111 SOCKETIO_PORT: 900012 volumes: 13 - erpnext_sites:/home/frappe/frappe-bench/sites14 ports: 15 - "8080:8080"16 depends_on: 17 - mariadb18 - redis19 networks: 20 - erpnext2122 mariadb: 23 image: mariadb:10.624 container_name: erpnext-mariadb25 environment: 26 MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}27 volumes: 28 - mariadb_data:/var/lib/mysql29 networks: 30 - erpnext3132 redis: 33 image: redis:alpine34 container_name: erpnext-redis35 networks: 36 - erpnext3738volumes: 39 erpnext_sites: 40 mariadb_data: 4142networks: 43 erpnext: 44 driver: bridge.env Template
.env
1DB_ROOT_PASSWORD=changemeUsage Notes
- 1Docs: https://frappeframework.com/docs/, https://docs.erpnext.com/
- 2Access at http://localhost:8080 after bench setup
- 3Initialize: bench new-site site1.local, bench install-app erpnext
- 4Modules: accounting, HR, manufacturing, CRM, projects, assets
- 5Frappe framework underneath - extensible with custom apps
- 6Resource intensive: recommend 4GB+ RAM for production
Individual Services(3 services)
Copy individual services to mix and match with your existing compose files.
erpnext
erpnext:
image: frappe/erpnext:latest
container_name: erpnext
restart: unless-stopped
environment:
DB_HOST: mariadb
DB_PORT: 3306
REDIS_CACHE: redis://redis:6379/0
REDIS_QUEUE: redis://redis:6379/1
SOCKETIO_PORT: 9000
volumes:
- erpnext_sites:/home/frappe/frappe-bench/sites
ports:
- "8080:8080"
depends_on:
- mariadb
- redis
networks:
- erpnext
mariadb
mariadb:
image: mariadb:10.6
container_name: erpnext-mariadb
environment:
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- mariadb_data:/var/lib/mysql
networks:
- erpnext
redis
redis:
image: redis:alpine
container_name: erpnext-redis
networks:
- erpnext
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 erpnext:5 image: frappe/erpnext:latest6 container_name: erpnext7 restart: unless-stopped8 environment:9 DB_HOST: mariadb10 DB_PORT: 330611 REDIS_CACHE: redis://redis:6379/012 REDIS_QUEUE: redis://redis:6379/113 SOCKETIO_PORT: 900014 volumes:15 - erpnext_sites:/home/frappe/frappe-bench/sites16 ports:17 - "8080:8080"18 depends_on:19 - mariadb20 - redis21 networks:22 - erpnext2324 mariadb:25 image: mariadb:10.626 container_name: erpnext-mariadb27 environment:28 MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}29 volumes:30 - mariadb_data:/var/lib/mysql31 networks:32 - erpnext3334 redis:35 image: redis:alpine36 container_name: erpnext-redis37 networks:38 - erpnext3940volumes:41 erpnext_sites:42 mariadb_data:4344networks:45 erpnext:46 driver: bridge47EOF4849# 2. Create the .env file50cat > .env << 'EOF'51DB_ROOT_PASSWORD=changeme52EOF5354# 3. Start the services55docker compose up -d5657# 4. View logs58docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/erpnext/run | bashTroubleshooting
- Site creation fails with database connection error: Ensure MariaDB container is fully started and DB_ROOT_PASSWORD environment variable is set correctly
- ERPNext shows 'Redis connection failed' error: Verify Redis container is running and accessible on the configured ports 6379/0 and 6379/1
- Bench commands not working after container restart: Re-run 'bench new-site' and 'bench install-app erpnext' commands to properly initialize the site
- Performance issues with large datasets: Increase MariaDB memory allocation and enable Redis persistence for better caching performance
- Module installation fails with permission errors: Check that erpnext_sites volume has proper ownership and the frappe user can write to the sites directory
- Background jobs not processing: Restart the Redis container and verify REDIS_QUEUE connection string points to the correct Redis database index
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download