Frappe Framework Installation
The Frappe Framework installation process equips you with a ready environment to build and customize ERPNext or any other Frappe-based applications. This guide walks ERP consultants, Python developers, and system administrators through setting up Frappe on a fresh machine for both development and production environments.
Overview
Frappe can be installed in two modes:
Development Setup: For building apps, testing, and local development.
Production Setup: For hosting live ERPNext instances with security, supervisor, and nginx configurations.
This documentation focuses on a clean and structured installation aligned with Frappe compatibility matrix cross-verified from Frappe GitHub.
Installation / Setup
1. System Prerequisites
Ensure the following are installed (details in prerequisites documentation):
- Python 3.10+
- Node.js 18+
- Yarn 1.22+
- MariaDB 10.6+
- Redis
- wkhtmltopdf (0.12.6 with patched Qt)
- pip and pipx
2. Install Bench CLI
Bench is the command-line tool to manage Frappe apps and sites.
# Install bench globally via pipx (recommended)
pip install pipx
pipx install frappe-bench
# Verify bench installation
bench --version
Source Reference: bench-repo
3. Initialize Bench Directory
Create a new bench folder with Frappe.
# Initialize bench with Frappe v15 branch
bench init frappe-bench --frappe-branch version-15
# Move into bench directory
cd frappe-bench
4. Create a New Site
Sites are where your apps run. Each site has its own database and configuration.
# Create a new site (will prompt for MySQL root password and admin password)
bench new-site yoursite.local
Example prompt output:
MySQL root password:
Set Administrator password:
Re-enter Administrator password:
5. Install ERPNext App (Optional)
If you want ERPNext along with Frappe:
# Get ERPNext app from v15 branch
bench get-app erpnext --branch version-15
# Install ERPNext app on your site
bench --site yoursite.local install-app erpnext
6. Start Development Server
Start the server to access your site locally.
bench start
Navigate to http://localhost:8000 and login with:
- Username: Administrator
- Password: (set during site creation)
Configuration
For production deployment:
1.Setup Production:
# Install production dependencies
sudo bench setup production [username]
2.This sets up supervisor and nginx for process management and reverse proxy.
Source Reference: bench/commands/setup.py
Tips, Best Practices & Pitfalls
Tips & Best Practices
- Always use pipx for global bench installations to avoid environment conflicts.
- Match your Python and Node.js versions exactly as per compatibility to prevent build failures.
- Use bench setup production only after thoroughly testing your development setup.
Pitfalls
- Skipping MariaDB secure installation may expose your server to security risks.
- Using non-patched wkhtmltopdf will break PDF headers and footers.
- Failing to set up swap memory on low-RAM servers (e.g., 1GB) may result in build failures.
Optional Metadata
- Industry Relevance: Manufacturing, Healthcare, Services, Education
- Use Case / Problem Solved: Rapid ERP application deployment and customization
- Target Users: Python Developers, ERP Consultants, System Administrators