Skip to main content

Frappe Framework Version 15 Installation Guide: Complete Setup Tutorial

Installing Frappe Framework Version 15 creates the foundation for building robust ERPNext applications with enhanced performance, modern architecture, and streamlined development workflows.​

System Requirements and Compatibility

Supported Operating Systems

Frappe Framework v15 officially supports Unix-based systems, including Linux distributions and macOS, with specific recommendations for optimal performance :​

Officially Supported Platforms:

  • Ubuntu 22.04+ (recommended for production deployments)
  • Debian 12+ (stable server environments)
  • macOS (development environments)
  • Windows via WSL (Ubuntu in Windows Subsystem for Linux)

Hardware Specifications

Production-grade Frappe v15 installations require adequate system resources to ensure optimal performance and scalability :​

Minimum Requirements:

  • RAM: 4GB (8GB recommended for production)
  • Storage: 40GB available disk space (SSD preferred)
  • CPU: 2 cores minimum (4 cores recommended)
  • Network: Stable internet connection for package downloads

Production Recommendations:

  • RAM: 8GB+ for multiple concurrent users
  • Storage: 100GB+ SSD for database and application files
  • CPU: 4+ cores for optimal concurrent processing
  • Backup: Automated backup system with redundancy

Essential Dependencies and Prerequisites

Core System Dependencies

Frappe Framework v15 requires specific versions of essential software components for proper functionality :​

Required Software Stack:

  • MariaDB 10.6.6+ (MariaDB 11.3 recommended for development)
  • Python 3.10+ (Python 3.11+ preferred for latest features)
  • Node.js 18+ (updated from v14 requirement in previous versions)
  • Redis 6+ (caching and real-time updates)
  • yarn 1.12+ (JavaScript dependency management)
  • pip 20+ (Python package management)

Additional System Tools

PDF Generation and Automation:

  • wkhtmltopdf 0.12.5 with patched Qt (PDF document generation)
  • cron (scheduled tasks: certificate renewal, automated backups)

Ubuntu/Debian Installation Process

System Preparation and User Setup

Begin Frappe v15 installation by preparing the Ubuntu system with proper user configuration and system updates :​

bash
# Update system packages
sudo apt update && sudo apt upgrade -y
# Create dedicated frappe user
sudo adduser frappe
sudo usermod -aG sudo frappe
# Switch to frappe user
su - frappe
cd /home/frappe

Database Server Installation

MariaDB Configuration

Install and configure MariaDB with Frappe-optimized settings for Version 15 compatibility :​

bash
# Install MariaDB and dependencies
sudo apt install git python-is-python3 python3-dev python3-pip redis-server libmariadb-dev mariadb-server mariadb-client pkg-config
# Secure MariaDB installation
sudo mariadb-secure-installation

MariaDB Configuration for Frappe v15:

For versions before Frappe v15.21.0, configure MariaDB with UTF8MB4 support :​

bash
# Edit MariaDB configuration
sudo nano /etc/mysql/my.cnf
# Add configuration block
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4
# Restart MariaDB service
sudo systemctl restart mariadb

Node.js and JavaScript Environment

Node Version Manager Installation

Install Node.js 18+ using Node Version Manager for flexible version management :​

bash
# Install NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# Reload terminal or source profile
source ~/.profile
# Install Node.js 18
nvm install 18
nvm use 18
# Verify installation
node -v # Should show v18.x.x
# Install Yarn globally
npm install -g yarn

PDF Generation Dependencies

Install wkhtmltopdf for PDF generation capabilities required by Frappe applications :​

bash
# Install system dependencies
sudo apt install xvfb libfontconfig
# Download and install wkhtmltopdf
# Visit https://wkhtmltopdf.org/downloads.html for latest version
sudo dpkg -i wkhtmltox_file.deb

macOS Installation Process

Developer Tools and Homebrew

Set up essential development tools and package management for macOS Frappe v15 installation :​

bash
# Install Xcode command line tools
xcode-select --install
# Install Homebrew package manager
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install required packages via Homebrew
brew install python@3.12 git redis mariadb@10.6 node@18 postgresql pkg-config mariadb-connector-c

wkhtmltopdf for macOS

Install PDF generation tools specifically for macOS environment :​

bash
# Download and install wkhtmltopdf for macOS
curl -L https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-2/wkhtmltox-0.12.6-2.macos-cocoa.pkg -O
installer -pkg wkhtmltox-0.12.6-2.macos-cocoa.pkg -target ~

MariaDB Configuration on macOS

Configure MariaDB for optimal Frappe Framework v15 performance on macOS :​

bash
# Edit MariaDB configuration (Intel Macs)
nano /usr/local/etc/my.cnf
# Edit MariaDB configuration (Apple Silicon)
nano /opt/homebrew/etc/my.cnf
# Add Frappe-optimized configuration
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
bind-address = 127.0.0.1
[mysql]
default-character-set = utf8mb4
# Restart MariaDB service
brew services restart mariadb@10.6

Bench CLI Installation and Setup

Installing Frappe Bench

Install the Bench CLI tool for managing Frappe applications and development environments :​

bash
# Install bench via pip
pip install frappe-bench
# Handle externally-managed-environment error (if needed)
pip install frappe-bench --break-system-packages

Alternative Installation Methods

UV Package Manager Method

For systems with externally-managed-environment restrictions, use UV package manager :​

bash
# Install UV package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create shell alias for bench
echo "alias bench='uvx --from frappe-bench bench'" >> ~/.bashrc
source ~/.bashrc

PATH Configuration

Ensure bench command is accessible system-wide by configuring PATH variables :​

bash
# Add bench to PATH (if required)
echo "export PATH=/path/to/bin:$PATH" >> ~/.profile
source ~/.profile
# Verify bench installation
bench --version

Creating Your First Frappe Environment

Initializing Frappe Bench

Create a new Frappe bench environment specifically configured for Version 15 :​

bash
# Navigate to home directory
cd ~
# Initialize bench with Frappe v15
bench init frappe-bench --frappe-branch version-15
# Navigate to bench directory
cd frappe-bench/
# Set proper directory permissions
chmod -R o+rx /home/frappe/

Site Creation and Configuration

Creating Your First Site

Establish a new site within the Frappe bench environment for application deployment :​

bash
# Create new site
bench new-site site1.local
# Set as default site (optional)
bench use site1.local
# Start development server
bench start

ERPNext Installation

Adding ERPNext to Your Site

Install ERPNext application on your newly created Frappe site :​

bash
# Get ERPNext from repository
bench get-app erpnext --branch version-15
# Install ERPNext on site
bench --site site1.local install-app erpnext
# Migrate database changes
bench --site site1.local migrate

Production Deployment Considerations

Docker-Based Installation

For production deployments or containerized development environments, use Frappe Docker :​

bash
# Clone frappe_docker repository
git clone https://github.com/frappe/frappe_docker
cd frappe_docker
# Start Docker environment
docker compose -f pwd.yml up -d
# Wait for site creation (approximately 5 minutes)
docker compose -f pwd.yml logs -f create-site

Security and Performance Optimization

Database Security Configuration

Implement security best practices for production MariaDB installations :​

bash
# Secure MySQL installation with enhanced security
sudo mysql_secure_installation
# Configure additional security parameters
sudo tee -a /etc/mysql/my.cnf <<EOF
[mysqld]
innodb_file_per_table = 1
innodb_buffer_pool_size = 1G
innodb_log_file_size = 128M
innodb_log_buffer_size = 256M
EOF
sudo systemctl restart mysql

Development Environment Verification

Testing Installation Success

Verify successful Frappe Framework v15 installation through comprehensive testing :​

bash
# Check bench status
bench --version
# Verify site accessibility
bench browse site1.local
# Test database connectivity
bench --site site1.local console
# Run development server
bench start

Common Installation Issues

Permission and Path Problems

Address common installation challenges encountered during Frappe v15 setup :​

Externally-Managed-Environment Error:

  • Use –break-system-packages flag with pip
  • Consider virtual environment isolation
  • Implement UV package manager alternative

PATH Configuration Issues:

  • Manually add bench directory to system PATH
  • Source profile files after installation
  • Verify environment variable persistence

Next Steps and Development Resources

Post-Installation Configuration

Complete your Frappe Framework v15 setup with essential configuration steps :​

  • SSL Certificate Setup: Configure HTTPS for production environments
  • Email Configuration: Set up SMTP for automated notifications
  • Backup Configuration: Implement automated backup procedures
  • Custom App Development: Begin building custom applications

Community Resources and Support

Access comprehensive learning materials and community support through GoERPNext platform :​

  • Enhanced Documentation: Access meticulously restructured guides
  • Active Community Forum: Connect with developers and users
  • Best Practices: Learn from community-contributed solutions
  • Troubleshooting Support: Get help with installation challenges

Frappe Framework Version 15 installation establishes a powerful foundation for building scalable, modern web applications with enhanced performance and developer experience, enabling rapid development of comprehensive business solutions through the ERPNext ecosystem.

Click to rate this post!
[Total: 1 Average: 5]