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.