A complete Guide to Install Frappe/ERPNext version 15 in Ubuntu 22.04 LTS
Python 3.11+
Node.js 18+
Redis 5 (caching and real time updates)
MariaDB 10.3.x / Postgres 9.5.x (to run database driven apps)
yarn 1.12+ (js dependency manager)
pip 20+ (py dependency manager)
wkhtmltopdf (version 0.12.6 with patched qt) (for pdf generation)
cron (bench's scheduled jobs: automated certificate renewal, scheduled backups)
NGINX (proxying multitenant sites in production)
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install python3.11
python3.11 --version
sudo apt install python3.11-full
sudo apt-get install git
sudo apt-get install python3-dev
sudo apt-get install python3-setuptools python3-pip
sudo apt install python3.11-venv
sudo apt-get install software-properties-common
sudo apt install mariadb-server
sudo mysql_secure_installation
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): # PRESS ENTER
OK, successfully used password, moving on...
Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
... Success!
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] Y
... Success!
Disallow root login remotely? [Y/n] Y
... Success!
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] Y
... Success!
sudo apt-get install libmysqlclient-dev
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
add this to the 50-server.cnf file
[server]
user = mysql
pid-file = /run/mysqld/mysqld.pid
socket = /run/mysqld/mysqld.sock
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
bind-address = 127.0.0.1
query_cache_size = 16M
log_error = /var/log/mysql/error.log
[mysqld]
innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4
Now press (Ctrl-X) to exit
sudo service mysql restart
sudo apt-get install redis-server
sudo apt install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.profile
nvm install 18.16.1
nvm use 18.16.1
sudo apt-get install npm
sudo npm install -g yarn
sudo apt-get install xvfb libfontconfig wkhtmltopdf
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb -y
rm wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo -H pip3 install frappe-bench
bench --version
bench init frappe-bench-v15 --frappe-branch version-15
cd frappe-bench/
bench start
bench new-site frappe.site.local
bench use frappe.site.local
Open url http://frappe.site.local:8000 to login
bench get-app erpnext --branch version-15
###OR
bench get-app https://github.com/frappe/erpnext --branch version-15
bench --site frappe.site.local install-app erpnext
bench start