The following guide is a step by step instruction to setup an ERP-Next instance of your own. The Guide assumes that you have basic understanding of linux commands and have installed a DB earlier and used the DB shell.
We would be performing all the operations on a linux OS, preferably Ubuntu v20.04. If not you may want to tweak in the commands a bit to adjust according to your OS if the commands differ.
Before getting started with the installtion, we recommend you to head over to the offical site of Frappe to understand how it operates and why is it necessary for ERP Next installation.
Following link guides us to setup mariadb on our machine perfectly
https://computingforgeeks.com/how-to-install-mariadb-on-ubuntu-focal-fossa/
Execute the follwing commands one after the other post entering to DB shell
CREATE DATABASE <REPLACE_WITH_DB_NAME_OF_YOUR_CHOISE>;GRANT ALL PRIVILEGES ON *.* TO '<REPLACE_WITH_YOUR_DB_USER_CREATED_WHILE_INSTALLING_MARIADB>'@'%' IDENTIFIED BY '<REPLACE_WITH_YOUR_STRONG_PASSWORD>' WITH GRANT OPTION;SELECT host, user, Super_priv FROM mysql.user;FLUSH PRIVILEGES;Stop the running DB server using the following command
sudo systemctl stop mariadbView the following file in the edit mode using your preferred editor.
sudo vim /etc/mysql/conf.d/settings.cnfPaste the below code as is and save the file
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /var/lib/mysql/mysql.sock
pid-file = /var/lib/mysql/mysql.pid
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP
# SAFETY #
max-allowed-packet = 256M
max-connect-errors = 1000000
innodb = FORCE
# DATA STORAGE #
datadir = /var/lib/mysql/
# BINARY LOGGING #
log-bin = /var/lib/mysql/mysql-bin
expire-logs-days = 14
sync-binlog = 1
# REPLICATION #
server-id = 1
# CACHES AND LIMITS #
tmp-table-size = 32M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 500
thread-cache-size = 50
open-files-limit = 65535
table-definition-cache = 4096
table-open-cache = 10240
# INNODB #
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-log-file-size = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 5462M
innodb-file-format = barracuda
innodb-large-prefix = 1
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
character-set-client-handshake = FALSE
max_allowed_packet = 256M
# LOGGING #
log-error = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes = 0
slow-query-log = 1
slow-query-log-file = /var/lib/mysql/mysql-slow.log
[mysql]
default-character-set = utf8mb4
[mysqldump]
max_allowed_packet=256M
!includedir /etc/mysql/mariadb.conf.d/View the following file in the edit mode using your preferred editor. Here we shall have the config related to ERP-Next
sudo vim /etc/mysql/mariadb.conf.d/erpnext.cnfPaste the below code as is and save the file
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
bind-address = 0.0.0.0
collation-server = utf8mb4_unicode_ciRestart the DB server in-order for all our configurations to get into action
sudo systemctl start mariadbTest the DB connection with the user the was created
mysql --user <REPLACE_WITH_YOUR_USER> --password <REPLACE_WITH_YOUR_PASSWORD> --host=localhost --protocol=tcp --port=3306 testEnable the DB service for further usage
sudo systemctl enable mariadbsudo apt install libmysqlclient-dev python3-mysqldbsudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential mariadb-client python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libssl-dev python3-mysqldb libdate-manip-perl logwatchupdate pip3 and then install the latest versions of three additional Python modules required by ERPNext:
sudo apt install python3-testresourcessudo -H python3 -m pip install --upgrade setuptools cryptography psutilcurl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.shsudo bash nodesource_setup.shsudo apt install nodejssudo npm install -g yarncd /tmpwget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.focal_amd64.debsudo dpkg -i wkhtmltox_0.12.5-1.focal_amd64.debsudo cp /usr/local/bin/wkhtmlto* /usr/bin/sudo chmod a+x /usr/bin/wk*sudo apt install redis-serversudo systemctl enable redis-serversudo useradd -m -s /bin/bash <USER_OF_YOUR_CHOICE>sudo passwd <PASSWORD_OF_YOUR_CHOICE>sudo usermod -aG sudo <EARLIER_CREATED_USER>su - <YOUR_USER>sudo -H pip3 install frappe-benchbench --versionecho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -psudo mkdir /opt/benchsudo chown -R <SYSTEM_USER_CREATED_EARLIER>:<SYSTEM_USER_CREATED_EARLIER> /opt/benchcd /opt/benchbench init erpnext --frappe-branch version-12cd /opt/bench/erpnextSet DB host in common config unless you have not changed any of the installation paths specified in the guide
View the below file path in the edit mode
vi /opt/bench/erpnext/sites/common_site_config.jsonAdd the below line of code only if not present else update only the value
"db_host": "127.0.0.1"Let us now get the ERP-Next app
RUN THE BELOW COMMANDS IN TMUX SESSION
On ubuntu 20, you have to install specific versions of numpy/pandas
pip3 install numpy==1.18.5pip3 install pandas==0.24.2cd /opt/bench/erpnextbench get-app erpnext https://github.com/frappe/erpnext --branch version-12Create ERP-Next site
bench new-site <YOUR_SITE_NAME> --admin-password '<YOUR_ADMIN_PASSWORD>' --mariadb-root-username <DB_USER> --mariadb-root-password '<DB_PASSWORD>'Insall ERP-Next app on site
bench --site <YOUR_SITE_NAME> install-app erpnextSetting up ERP-Next for production
sudo bench setup production <YOUR_USER_NAME> --yesGetting the right configuration supervisor and nginx config files and symbolic linking them
bench setup supervisor && sudo ln -s `pwd`/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.confbench setup nginx && sudo ln -s `pwd`/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf