How to Install ERPNext on Ubuntu with the Easy Install Script
Install ERPNextStep-by-step guide to installing a production-ready ERPNext instance on Ubuntu using the official `install.py` script. Covers different versions and common troubleshooting.
Installing ERPNext can seem daunting, but the Frappe team provides an 'Easy Install' script that automates most of the process on a fresh Ubuntu server. This script, `install.py`, handles the setup of all necessary dependencies like Python, Nginx, MariaDB, and Redis.
This guide walks you through using the script to set up a production-ready ERPNext instance, including options for specifying versions and handling common installation errors.
1 # Step 1: Install Python and required packages 2 sudo apt update && sudo apt upgrade -y 3 sudo apt install python3-minimal build-essential python3-setuptools python3-pip 4
5 # Step 2: Download the Easy Install script 6 wget https://raw.githubusercontent.com/frappe/bench/master/playbooks/install.py 7
8 # Step 3: Run the script for a production setup (replace 'ubuntu' with your non-root username) 9 sudo python3 install.py --production --user ubuntu 10
11 # --- OPTIONAL FLAGS --- 12
13 # To install a specific version (e.g., version 13) 14 sudo python3 install.py --production --user ubuntu --version 13 15
16 # To specify site name, passwords, and bench name 17 sudo python3 install.py --production --version 13 --user ubuntu --site erp.example.com --bench-name mybench --mysql-root-password 'your_sql_password' --admin-password 'your_admin_password' 18
19 # --- TROUBLESHOOTING --- 20
21 # In case of Ansible/Cryptography errors, run this before the install script: 22 sudo -H python3 -m pip install setuptools cryptography ansible==2.8.5
Understanding This Code
What It Does
The script automates the installation of the entire Frappe and ERPNext stack, including system dependencies, bench CLI, a new Frappe site, and configuring Nginx and Supervisor for production use.
When To Use
Use this on a clean, fresh installation of a Debian-based Linux distribution like Ubuntu to set up a new ERPNext instance. It is the recommended method for new production or development environments.
Prerequisites
- •A fresh Ubuntu 20.04/22.04 server.
- •Root or sudo access.
- •A non-root user with sudo privileges.
Key Concepts
Important ideas to understand in this code
Bench CLI
Bench is the command-line interface for managing Frappe Framework applications. It's used for creating new sites, installing apps, updating, and running various administrative tasks.
Learn moreEasy Install Script (install.py)
A Python script provided by Frappe that uses Ansible playbooks to automate the entire setup process, ensuring all dependencies and configurations are correctly applied.
Learn moreProduction vs. Develop Mode
The '--production' flag sets up Nginx, Supervisor, and Fail2Ban for a live, secure environment. The '--develop' flag is for a developer setup, which is easier to debug but not meant for public access.
Learn moreStep-by-Step Tutorial
Follow along to understand how this code works
Prepare the System & Install Dependencies
First, ensure your system is up-to-date and install the necessary Python packages and build tools required by the installation script.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-minimal build-essential python3-setuptools python3-pipDownload the Easy Install Script
Download the official 'install.py' script from the Frappe Bench GitHub repository using 'wget'.
wget https://raw.githubusercontent.com/frappe/bench/master/playbooks/install.pyExecute the Installation Script
Run the script using 'sudo python3'. The '--production' flag is crucial for a live server. Replace 'your_user' with your non-root OS username. The script will install the latest version of ERPNext by default.
sudo python3 install.py --production --user your_userOptional: Installing a Specific Version
If you need a specific version, like version 13, you can use the '--version' flag. You can also pre-define the site name, MySQL root password, and admin password directly.
sudo python3 install.py --production --version 13 --user ubuntu --site erp.example.com --mysql-root-password 'your_sql_password' --admin-password 'your_admin_password'Common Issues & Solutions
Troubleshoot problems you might encounter