Erpnext 14 Installation DEVELOPMENT & PRODUCTIONS [UBUNTU/SERVER 22.04]

Disclaimar

:small_blue_diamond: THIS IS NOT SAME AS OTHER VERSIONS INSTALLATION :small_blue_diamond:

Some of app dependencies are different from version 12 & 13. so mostly we do mistakes with same apps and different ERPNext Versions. As i always do… :joy:

.

ERPNext 12 Installation Guide

ERPNext 13 Installation Guide

.

:boom: NOTES :boom:

:small_blue_diamond: SHOULD USE SUGGESTED SYSTEM

because of python versions and frappe dependencies other systems might dont work

:small_blue_diamond: SHOULD BE ONLY 2 USERS IN SYSTEM [ root & frappe ]

you can use any other user other then frappe

:small_blue_diamond: ROOT & FRAPPE PASSWORDS SHOULD BE SAME AS MARIADB

you can use any other password other then frappe07

:small_blue_diamond: SERVER SHOULD BE UPGRADED BEFORE START INSTALLATION

.
.

:anger: DEVELOPMENT SETUP

sudo apt-get clean -y
sudo apt-get autoremove -y
sudo apt --fix-broken install -y
sudo dpkg --configure -a
sudo apt-get install -f
sudo apt-get update && sudo apt-get upgrade

root@server22

su - root

:small_blue_diamond: FIREWALL

ufw allow 22,25,143,80,443,3306,3022,8000/tcp
ufw enable

:small_blue_diamond: REQUIRED TOOLS

apt-get install git python3-dev python3.10-dev python3-setuptools python3-pip python3-distutils redis-server -y
apt install python3.10-venv -y
sudo apt-get update -y
apt-get install xvfb libfontconfig wkhtmltopdf -y

:small_blue_diamond: MARIADB

SET YOUR ROOT PASSWORD HERE

sudo passwd root
password: frappe07

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

mysql_secure_installation

Change the root password? [Y/n] n
Change the root password? [Y/n] y
password: frappe07
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 root password. THIS IS MUST

mysql -u root -p
USE mysql;
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
SET PASSWORD = PASSWORD(‘frappe07’);
***GIVE THE PASSWORD AS ABOVE IN mysql_secure_installation SETUP
FLUSH PRIVILEGES;
exit

nano /etc/mysql/my.cnf

**add these lines @end of the file

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

service mysql restart
sudo reboot

frappe@server22

SET YOUR USER PASSWORD HERE

sudo passwd frappe
password: frappe07

sudo su - frappe
sudo chmod o+x $HOME
tee -a ~/.bashrc<<EOF
PATH=$PATH:~/.local/bin/
EOF
source ~/.bashrc

:small_blue_diamond: NODE JS & NPM

sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

:small_blue_diamond: BENCH DIRECTORY

sudo mkdir /home/bench
sudo chown -R frappe /home/bench
cd /home/bench
sudo npm install -g yarn

:small_blue_diamond: FRAPPE

sudo pip3 install frappe-bench

Dont use other versions or something else

bench init frappe --verbose --frappe-branch v14.0.0

cd frappe
bench start

OPEN NEW SESSION

:small_blue_diamond: SITE CREATION

sudo su - frappe
cd /home/bench/frappe
bench new-site site1.local
bench use site1.local
bench migrate

:small_blue_diamond: ERPNEXT & HRMS

bench get-app payments

make sure bench is runing in other terminal

bench get-app erpnext --branch v14.0.0

make sure bench is runing in other terminal

bench get-app hrms

make sure bench is runing in other terminal

bench --site site1.local install-app erpnext

make sure bench is runing in other terminal

bench --site site1.local install-app hrms
bench use site1.local
bench migrate
make sure bench is runing in other terminal

.
.
.

:partying_face: GO TO [SERVER IP]:8000 SETUP YOUR DEVELOPMENT SYSTEM :partying_face:

.
.
.

:anger: PRODUCTION SETUP

bench --site site1.local enable-scheduler
bench --site site1.local add-to-hosts
bench --site site1.local set-maintenance-mode off
bench --site site1.local scheduler resume
sudo snap install --classic certbot
sudo bench setup production frappe

bench setup supervisor
sudo ln -s pwd/config/supervisor.conf /etc/supervisor/conf.d/frappe.conf​
sudo bench setup sudoers $(whoami)

STOP BENCH ++> ctrl+c

sudo service supervisor stop
sudo service nginx stop
sudo service supervisor start
sudo service nginx start
sudo bench setup production frappe

.
.
.

:partying_face: GO TO [SERVER IP] YOUR PRODUCTION SYSTEM IS UP :partying_face:

.
.
.

5 Likes

Thank you so much!!!

After whole days trying, this worked on the first attempt!!!

Please note the single quotation marks in the password parenthesis appear to be the wrong kind.

Once again, thank you so much!!

1 Like

Just a hint :innocent: Password should be in single quotes. as per mariadb 10.6.x requirements.

Everything is updated in this setup.

Once again, and I won’t get tired of saying it, thank you @Usman_Ali !!

Sorry for being ambiguous in my earlier comment, I meant to say -’- instead of -‘- but I’m not 100% sure :man_shrugging:

I went through so many guides, none worked. Yours did. :pray:Highly appreciated!

You would not happen to have at hand a guide to install an SSL certificate for local installations manually? (no automatic let’s encrypt/certbot) :grin:

:scream: :scream: it’s the forum, it replaces the quotation marks!!

This is what I wrote:
image

This is what it shows:
image

Straight instead of curly. Does it matter? Do we need to notify someone to avoid confusions?

edit: to avoid confusions system wide, I mean, not only in this post (again, in case it matters)

which password being confusions?

Not the passwords, but the quotes being changed by this platform, like in the images I posted above.

like that?

Quote marks appear being changed from straight to curly quote marks.

make another install and find if without single quotes it works?

It’s the style of single quote marks the risk for confusion, straight style being changed to curly style by the forum platform. But I’m not sure if it matters to report it or not?

@Usman_Ali I have some questions to clarify things, if you may:

  1. Can ERPNext be installed on Ubuntu desktop version?
  2. Can it work without internet access?

should be work in desktop. coz all requirements will be install on setup.
for installation u need internet connection. after Production up. as i know. after installation. should be no need of internet. but never try.

for internet. please any one can help?

Hi @Usman_Ali I think giving execution permission on the entire /home directory is a serious security issue.

I would suggest that instead of installing bench in /home/bench/, it is better to install it in the frappe user’s home directory i.e. /home/[frappe-user]/bench/

This way the entire /home directory is not exposed.

yes that time after almost 40 plus installations. and check the whole web. i found that way to install without errors. soon latest dev versions installation will be share. and will finish HOME permissions.