Cara Install ERPNext di Ubuntu 18.04

Cara Install ERPNext di Ubuntu 18.04

ERPNext

ERPNext adalah Enterprise Resource Planning (ERP) yang memanfaatkan fleksibilitas dari teknologi open source untuk mengelola proses bisnis seperti finance, sales, human resources, manufacturing, purchases, dan lain-lain.

Benefit dari menggunakan ERP adalah sebagai berikut:

  1. Better productivity, maksudnya adalah baik untuk produktivitas karena ada automating repetitive business processes.
  2. Efficiency, peningkatan efisiensi karena sharing database untuk semua departemen.

ERPNext based Frappe, full-stack web application framework yang ditulis dengan bahasa pemrograman Python yang memanfaatkan sepenuhnya pada runtime environment JavaScript/Node dan menggunakan MariaDB sebagai database manager back-end nya. CLI Bench dapat menghemat waktu sysadmin, karena terdapat automating task seperti installing, updating, configuring, dan managing multiple Frappe.

Persyaratan

Ada beberapa persyaratan sebelum melakukan instalasi ERPNext di Ubuntu 18.04.

  • Memiliki VPS dengan OS Ubuntu 18.04.
  • Memiliki akses root.
  • Memiliki Domain yang sudah di pointing ke IP VPS.

Point

Terdapat point-point pada instalasi ERPNext ini.

  • Update Server
  • Install Firewall
  • Install MariaDB
  • Create Database
  • Configure MariaDB ERPNext
  • Setting ERPNext
  • Setting Node.js & Yarn
  • Install Redis
  • Install Frappe Bench-CLI
  • Setting Frappe Framework Environment
  • Install ERPNext 12
  • Setting ERPNext 12
  • Setting ERPNext Production
  • Testing

Cara Install ERPNext di Ubuntu 18.04

Update Server

Login sebagai root ke server, kemudian update server dan reboot.

$ apt-get update -y
$ reboot

Install package yang dibutuhkan.

$ apt-get install perl git nano wget -y

Install Firewall

Pada Firewall ini kami menggunakan Config Security & Firewall (CSF).

$ cd /usr/src
$ wget https://download.configserver.com/csf.tgz
$ tar -xzf csf.tgz
$ cd csf/
$ install.sh
Edit csf.conf lalu ubah value make TESTING menjadi 0.

$ nano /etc/csf/csf.conf
make TESTING=’0’

Save dan exit.

Reload csf dengan perintah di bawah ini.

$ csf -r

Install MariaDB

Karena pada ERPNext database managernya menggunakan MariaDB, maka perlu melakukan instalasi MariaDB terlebih dahulu seperti di bawah ini. Namun, perlu menambahkan repository agar version yang akan di-install menjadi 10.4.

$ apt-get install software-properties-common && sudo apt-key adv –fetch-keys ‘https://mariadb.org/mariadb_release_signing_key.asc’ && sudo add-apt-repository ‘deb [arch=amd64,arm64,ppc64el] http://mirror.klaus-uwe.me/mariadb/repo/10.4/ubuntu bionic main’

$ apt install mariadb-server -y

Install beberapa package yang dibutuhkan.

$ apt-get install libmysqlclient-dev python3-mysqldb -y

Start dan enable on-boot untuk MariaDB services dan kemudian lakukan secure installation

$ systemctl enable mariadb
$ systemctl start mariadb

$ mysql_secure_installation

Enter current password for root (enter for none):
OK, successfully used password, moving on…

Switch to unix_socket authentication [Y/n] n
... skipping.

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
... skipping.

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!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Cek status MariaDB sudah aktif atau belum:

$ systemctl status mariadb

● mariadb.service - MariaDB 10.4.22 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf

Active: active (running) since Thu 2021-11-25 03:01:52 UTC; 3min 5s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/

Main PID: 4053 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 32 (limit: 1150)
CGroup: /system.slice/mariadb.service
└─4053 /usr/sbin/mysqld

Create Database

Untuk keperluan koneksi ERPNext ke database, maka diperlukan pembuatan database dengan privileges super admin.
$ mysql

# CREATE DATABASE erpnext;
# GRANT ALL PRIVILEGES ON *.* TO 'erpnext'@'%' IDENTIFIED BY 'dewaweb123' WITH GRANT OPTION;
# FLUSH PRIVILEGES;

Pengecekan database.

$ mysql

# SHOW DATABASES;

Maka outputnya:

+--------------------+
| Database |
+--------------------+
| erpnext |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)

Pengecekan user.
$ mysql

# SELECT host, user, Super_priv FROM mysql.user;

Maka outputnya:

+-----------+-------------+------------+
| Host | User | Super_priv |
+-----------+-------------+------------+
| localhost | mariadb.sys | N |
| localhost | root | Y |
| localhost | mysql | Y |
| % | erpnext | Y |
+-----------+-------------+------------+
4 rows in set (0.007 sec)

Jika sudah, exit.

Configure MariaDB ERPNext

Dengan sudah di-installnya MariaDB, maka perlu tuning untuk ERPNext.

Stop mariadb terlebih dahulu.

$ systemctl stop mariadb

$ nano /etc/mysql/conf.d/settings.cnf

Pastekan script di bawah ini.

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

Save dan exit.

Lalu buat kembali file baru dengan nama erpnext.cnf.

$ nano /etc/mysql/mariadb.conf.d/erpnext.cnf

Pastekan script di bawah ini.

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
bind-address = 0.0.0.0

Setting ERPNext

Start kembali pada services MariaDB nya.

$ systemctl start mariadb

Install packages-packages yang dibutuhkan pada ERPNext 12.

$ DEBIAN_FRONTEND=noninteractive apt-get 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 libssl1.0-dev python3-mysqldb libdate-manip-perl logwatch -y

Update pip3 dan install latest version dari module-module python.

$ sudo -H python3 -m pip install –upgrade setuptools cryptography psutil

Setting Node.js & Yarn

ERPNext 12 bisa berjalan dengan version 8+ pada Node.js, namun versi tersebut sudah memasuki End Of Life (EOL), sehingga kami akan menginstall versi 12.

$ curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh

Jalankan scriptnya.

$ bash nodesource_setup.sh

Kemudian install node.js.

$ apt-get install nodejs -y

Install yarn dengan menggunakan npm package manager.

$ npm install -g yarn

ERPNext juga menggunakan wkhtmltopdf, yaitu tool konversi html ke pdf yang bersifat open source menggunakan Qt WebKit rendering engine.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
$ sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

Copy ke /usr/bin.

$ cp /usr/local/bin/wkhtmlto* /usr/bin/

Kemudian chmod untuk executable.

$ sudo chmod a+x /usr/bin/wk*

Install Redis

ERPNext menggunakan Redis untuk meningkatkan performa MariaDB terutama pada sistem caching.

$ apt-get install redis-server -y
$ systemctl enable redis-server

Install Frappe Bench CLI

Setelah kamu sudah menginstall semua requirement ERPNext, kemudian kamu perlu install Frappe Bench CLi atau command-line utility.

Create user terlebih dahulu untuk erpnext.

$ adduser erpnext

Kemudian clone frappe/bench repository ke directory erpnext.

$ git clone https://github.com/frappe/bench /home/erpnext/.bench –depth 1 –branch master

Install bench CLI.

$ sudo pip3 install -e /home/erpnext/.bench

Setting Frappe Framework Environment

Untuk menghindari file watch limit pada Ubuntu kamu, perlu ubah default value nya.

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Kemudian, inisialisasi Frappe Framework 12 nya.

$ su erpnext
$ bench init /home/erpnext/frappe-bench –frappe-path https://github.com/frappe/frappe –frappe-branch version-12 –python python3

Install ERPNext 12

Pada section ini, kamu akan menginstal ERPNext 12.

Ke directory frappe-bench di dalam user

$ cd /home/erpnext/frappe-bench/
$ bench get-app erpnext https://github.com/frappe/erpnext –branch version-12
$ bench new-site vps146.dewiweb.net –admin-password ‘dewaweb123’ –mariadb-root-username erpnext –mariadb-root-password ‘dewaweb123’

Pada new-site ubah dengan nama domain kamu, lalu pada admin password, username dan root password mariadb ubah sesuai dengan data-data kamu.

Install ERPNext.

$ bench –site vps146.dewiweb.net install-app erpnext

Jika instalasi sudah selesai, kamu bisa start.

$ bench start

Setting ERPNext Production

Setting ERPNext agar dapat bisa production.

$ cd /home/erpnext/frappe-bench
$ sudo bench setup production erpnext –yes

Testing

Jika sudah selesai proses setup, kamu bisa akses domain yang kamu setting sebelumnya, maka hasilnya akan seperti di bawah ini.

testing - cara install erpnext di ubuntu

Untuk informasi login nya seperti berikut.

Email Address: Administrator
Password: (admin-password yang sudah kamu buat sebelumnya).

Lalu akan ada setup wizard.

setup wizard - cara install erpnext di ubuntu

Jika kamu sudah menyelesaikan setupnya, maka tampilan interface nya akan seperti di atas.

Kesimpulan

Jika kamu mengikuti artikel ini dari awal sampai akhir, artinya kamu sudah berhasil melakukan Instalasi ERPNext di Ubuntu 18.04.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!