Skip to main content

Install ERPNext 15 on Ubuntu 24.04 Proxmox CT

Prerequisites

The below prerequisites are advised in order to get an optimal functionality of ERPNext on your server.

Software Requirements

  • Updated Ubuntu 24.04
  • Python 3.12+
  • A user with sudo privileges
  • pip 20+
  • MariaDB 10.3.x
  • Node.js 18
  • yarn 1.22+

Create Frappe user:

sudo apt-get update -y && sudo apt-get upgrade -y
sudo adduser frappe
sudo usermod -aG sudo frappe
su frappe
cd /home/frappe

Install Git and Python:

sudo apt-get install git
sudo apt-get install python3-dev
sudo apt-get install python3-setuptools python3-pip
sudo apt install python3.12-venv
sudo apt install -y python3-pip python3-dev python3-venv build-essential libffi-dev libssl-dev

Install MariaDB:

sudo apt-get install software-properties-common
sudo apt install mariadb-server
sudo systemctl status mariadb
sudo mysql_secure_installation
Enter current password for root: (Enter your SSH root user password)
-Switch to unix_socket authentication [Y/n]: Y
-Change the root password? [Y/n]: Y
It will ask you to set new MySQL root password at this step. This can be different from the SSH root user password.

-Remove anonymous users? [Y/n] Y
-Disallow root login remotely? [Y/n]: N
This is set as N because we might want to access the database from a remote server for using business analytics software like Metabase / PowerBI / Tableau, etc.

-Remove test database and access to it? [Y/n]: Y
-Reload privilege tables now? [Y/n]: Y

Add the below code block at the bottom of the file:

sudo nano /etc/mysql/my.cnf
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

Restart sql server

sudo service mysql restart

Install Redis

sudo apt-get install redis-server

Install Node.js 20.X package

sudo apt install curl 
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.profile
nvm install 20

Install Yarn

sudo apt-get install npm
sudo npm install -g yarn

Install wkhtmltopdf

sudo apt-get install xvfb libfontconfig wkhtmltopdf

Install frappe-bench

sudo -H pip3 install frappe-bench --break-system-packages
bench --version

Initilise the frappe bench & install frappe latest version

bench init frappe-bench --frappe-branch version-15
cd frappe-bench/
chmod -R o+rx /home/frappe

Create New Site

bench new-site domain.com

Get App ERPNext, Payment and HRMS

bench get-app erpnext --branch version-15
bench get-app payments
bench get-app hrms

Install App in site

bench --site domain.com install-app erpnext
bench --site domain.com install-app hrms

Disable maintenance mode and Enable scheduler

bench --site domain.com set-maintenance-mode off
bench --site domain.com enable-scheduler

Install production dependencies

sudo apt update
sudo apt install -y supervisor nginx

Install ansible from APT (simplest)

sudo apt install -y ansible-core
sudo bench setup production frappe

regenerate Supervisor config:

cd ~/frappe-bench
bench setup supervisor
sudo ln -s `pwd`/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf

Reload Supervisor so it reads the new config:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status

You should finally see ERPNext processes (web, worker, scheduler, etc.). 
If they aren’t running, start them:

sudo supervisorctl start all