Installing ERPNext version 15 on Ubuntu 23+
ERPNext 15 has been released, and here the updated installation document. Ubuntu becomes the de-facto OS for ERPNext hosting. These are the steps to install Frappe & ERPNext
( If Ubuntu version of your instance is 20+, most probably your Python is 3.8 and node is 12. For Frappe and ERPNext version 14, it is mandatory to have Python 3.10 and Node 16+. We have explained the upgrading procedures in this document ( https://cloud.erpgulf.com/blog/support-forum/erpnext-upgrade-from-version-13-to-version-14-ubnutu . Use that document to prepare server. Please do that and come back here to continue. If you are not sure about Ubuntu version please type this command cat /etc/os-release )
**A video version we previously uploaded for Version 14 can tremendously help on ERPNext version 15 also. Please watch it here. ( https://youtu.be/RU9lXV1sTlI )
**If you are using beta version of version-15 , ( bench switch-to-branch version-15 frappe erpnext --upgrade
bench update --patch --reset
bench update --reset
)
( commands are in blue letters )
apt-get update -y
init 6 ( will restart )
sudo apt-get install python3-dev python3.11-dev python3-setuptools python3-pip python3-distutils software-properties-common xvfb libfontconfig wkhtmltopdf libmysqlclient-dev -y
sudo apt-get install python3.11-venv -y
sudo apt install python-is-python3 -y
Test python installation and version at this stage
python3 -V ( result Python 3.11.X )
python -V ( resulat Python 3.11.X )
--------------Node 21 installation ---------
sudo apt install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_21.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt update
sudo apt install nodejs -y
node --version
v21.1.0
--------------------------------------------
apt-get install nodejs redis-server -y
apt-get install cron git -y
Test NODE version at this stage, to make sure you have properly installed Node-16
node --version ( result must be above : v20.XXX )
npm install -g yarn
npm install -g npm@10.2.4 ( this may vary, check the output of previous command )
Check NPM version at this statem and make sure you installed npm properly
npm --version ( result must be above : 9.XX.X )
Install Mariadb
apt-get install mariadb-server mariadb-client -y
check MariaDB version here
mariadb --version ( result must be mariadb Ver 15.1 Distrib 10.6.7-MariaDB, )
Set Mariadb security features correct
mysql_secure_installation
Enter current password for root (enter for none): Press your [Enter] key, there is no password set by default
Switch to unix_socket authentication N
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
Set Mariadb formats.
vim /etc/mysql/mariadb.conf.d/erpnext.cnf
Add these lines
[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
systemctl restart mariadb
Next, we are going to create a user called "erpgulf" . Set its password, usermod, and sudo prvilege.
useradd -m -s /bin/bash erpgulf
passwd erpgulf
usermod -aG sudo erpgulf
su - erpgulf
Now you are inside the new user. Now let us set it's path.
vim ~/.bashrc
add this line
PATH=$PATH:~/.local/bin/
source ~/.bashrc
su - erpgulf
sudo mkdir /opt/bench
sudo chown -R erpgulf:erpgulf /opt/bench
cd /opt/bench
yarn add node-sass
Check yarn and node-sass at this point
yarn --version ( result must be:1.22.19 )
/opt/bench/node_modules/.bin/node-sass -v ( result must be:
node-sass 9.0.1 (Wrapper) [JavaScript]
libsass 3.5.5 (Sass Compiler) [C/C++] )
npm node-sass -v ( Result must be: 8.19.1 )
Check pip3 version
pip3 -V ( Result must be pip 23.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) )
pip -V ( Result must be pip 23.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) )
Now we are entering to Frappe installation. Before that finish all the following tests ( in violet letters ) . Otherwise installation will fail
****************************************************
python -V ( result Python 3.11.4 )
node --version ( result must be : v20.17.0 )
npm --version ( result must be : 9.8.1 )
mariadb --version ( result must be mariadb Ver 15.1 Distrib 10.6.7-MariaDB, )
yarn --version ( result must be:1.22.19 )
/opt/bench/node_modules/.bin/node-sass -v ( result must be:
node-sass 9.0.1 (Wrapper) [JavaScript] libsass 3.5.5 (Sass Compiler) [C/C++] )
npm node-sass -v ( Result must be: 9.8.1 )
pip3 --version ( Result must be pip 23.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) )
pip --version ( Result must be pip 23.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) )
redis-server --version (Redis server v=7.0.16 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=a3fdef44459b3ad6)
wkhtmltopdf -V ( wkhtmltopdf 0.12.6 )
git -v (git version 2.39.1)
***************************************************
Once you start using pip , you may get error "This environment is externally managed" in that case, either use following command, or use pipx
- remove file
/usr/lib/python3.x/EXTERNALLY-MANAGED
,
sudo apt install pipx
pip3 install frappe-bench ( or pipx install frappe-bench , if you havent removed EXTERNALLY-MANAGED )
sudo apt install python3.10-venv
bench init frappe-bench --frappe-branch version-15
cd frappe-bench
sed -i '/web:/ s/$/ --noreload/' Procfile
pip3 install honcho
bench start &
While you are running the above command , you can see below
* Running on http://127.0.0.1:8000
14:29:30 web.1 | * Running on http://45.56.78.183:8000 (Press CTRL+C to quit)
Also, you can telnet to port 8000 to this server from outside.
telnet v14.erpgulf.com 8000 ( port will show open )
Press CTRL+C to return to CLI
bench new-site yourhost.erpgulf.com
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-15
bench get-app payments --branch version-15
bench get-app hrms --branch version-15
bench --site yourhost.erpgulf.com install-app erpnext
( before running hrms, make sure you are running bench in the background. use this command bench start &
bench --site yourhost.erpgulf.com install-app hrms
Now you have ERPNext on port 8000. ( http://yourhost.example.com:8000 )
You can run the setup-wizard on the browser.
----- NOW deploy it in production mode - on nginx server -------
Continues in this article ( https://cloud.erpgulf.com/blog/blogs/erpnext-version-14-install-in-production-mode-nginx-supervirso-gunicorn )
Team ERPGulf
The team behind ERPGulf blogs here, expresses their thoughts, shares the experience, often show the frustrations. Contact us on support@ERPGulf.com
am getting the bellow error when trying to install the frappe bench
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8) error: 6765 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet fatal: early EOF fatal: fetch-pack: invalid index-pack output subprocess.CalledProcessError: Command 'git clone --branch version-15 --depth 1 --origin upstream' returned non-zero exit status 128.
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/bench/commands/make.py", line 75, in init init( File "/usr/local/lib/python3.11/dist-packages/bench/utils/render.py", line 105, in wrapperfn return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/bench/utils/system.py", line 87, in init getapp( File "/usr/local/lib/python3.11/dist-packages/bench/app.py", line 765, in getapp app.get() File "/usr/local/lib/python3.11/dist-packages/bench/utils/render.py", line 126, in wrapperfn return fn(args, *kwargs) ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/bench/app.py", line 204, in get self.bench.run( File "/usr/local/lib/python3.11/dist-packages/bench/bench.py", line 48, in run return execcmd(cmd, cwd=cwd or self.cwd, _raise=raise) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/bench/utils/init.py", line 169, in execcmd raise CommandFailedError(cmd) from subprocess.CalledProcessError(returncode, cmd) bench.exceptions.CommandFailedError: git clone --branch version-15 --depth 1 --origin upstream
ERROR: There was a problem while creating frappe-bench Do you want to rollback these changes? [y/N]: n Aborted!
same happening with me as raja
After bench start While you are running the above command , you can see below
14:29:30 web.1 | * Running on 192.168.43.196:8000 (my vm ip) (Press CTRL+C to quit) -- This is not coming..which results i cannot access erpnext from any other system in my network. even inside vm i cannot access using ip address. pls help to solve this
after bench --site yourhost.erpgulf.com install-app hrms Installation for Frappe HR app failed due to an error. Please try re-installing the app or report the issue