Installing ERPNext version 13 on Ubuntu 20.10 ( 20+ or 21+ )

ERPNext 13 released, and here the updated installation document. As CentOS dead ( or killed by IBM), Ubuntu becomes the de-facto OS for ERPNext hosting. These are the steps to install Frappe and ERPNe

 · 2 min read

Updated document on ERPNext 14 is available on this link ( )

apt-get update -y
init 6  ( will restart )

apt-get install libffi-dev python3-pip python3-dev  python3-testresources libssl-dev wkhtmltopdf gcc g++ make -y

curl -sL | bash -

apt-get install nodejs redis-server -y

apt-get install cron git -y

npm install -g yarn

apt-get install mariadb-server mariadb-client -y


Enter current password for root (enter for none): Press your [Enter] key, there is no password set by default
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

mysql -u root -p

MariaDB [(none)]>USE mysql;
MariaDB [(none)]>UPDATE user SET plugin='mysql_native_password' WHERE User='root';
MariaDB [(none)]> EXIT;

vim /etc/mysql/mariadb.conf.d/erpnext.cnf

Add these lines
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

default-character-set = utf8mb4

systemctl restart mariadb

useradd -m -s /bin/bash erpnext

passwd erpnext

usermod -aG sudo erpnext

su - erpnext

vim ~/.bashrc
add this line

source ~/.bashrc

su - erpnext
sudo mkdir /opt/bench

sudo chown -R erpnext:erpnext /opt/bench

cd /opt/bench
yarn add node-sass
sudo apt install python3.8-venv

pip3 install --user frappe-bench
 bench init frappe-bench --frappe-branch version-13

cd frappe-bench
 sed -i '/web:/ s/$/ --noreload/' Procfile
 bench start >/tmp/bench_log &

bench new-site

At this point we have a frappe site running - bench start and you will get the website on port 8000. But ERPNext not yet installed. Let's continue

bench get-app erpnext --branch version-13
 bench install-app erpnext  ( if you have more than one site mention site name like " bench --site site1.local install-app erpnext "

bench start

Now you have ERPNext on port 8000. ( )

You can run the setup-wizard on the browser. ( Setup-wizard often fail. Restart it again and again. This issue has been there since ages and yet to be fixed )

----- NOW deploy it in production mode - on nginx server -------

sudo apt install nginx supervisor
sudo vim /etc/supervisor/supervisord.conf
Under [unix_http_server] section and also under [supervisord]
uncomment or add chown=erpnext:erpnext
bench setup supervisor --yes
 bench setup nginx

sudo ln -s `pwd`/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf
 sudo ln -s `pwd`/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf

sudo systemctl enable supervisor
 sudo systemctl enable nginx


Make changes on site_config.json ( inside site/site_name folder )
To make it non-development mode
 "developer_mode": 0,
To reflect the hostname and port

sample below.
"db_name": "_7beb69e70202137e",
"db_password": "GiZeZxy4GPxfTzFA",
"db_type": "mariadb",
"developer_mode": 0,
"encryption_key": "iVahvGBPKPWWYQwqyxxxxxx7dMazzSX4SEClEtDzdQ=",
"user_type_doctype_limit": {
 "employee_self_service": 10
 "host_name": ""


restart the system - init 6 


Now Letsencrypt and SSL


It's explained here

Team ERPGulf

The team behind ERPGulf blogs here, expresses their thoughts, shares the experience, often show the frustrations. Contact us on

Peter October 27, 2022

Thank you!!! This is an excellent install routine and is really helpful.

Chris July 28, 2022

First tut to actually work correctly.

Needed addition of apt install python3.10-venv

Add Comment