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
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