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:
- Better productivity, maksudnya adalah baik untuk produktivitas karena ada automating repetitive business processes.
- 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.
Untuk informasi login nya seperti berikut.
Email Address: Administrator
Password: (admin-password yang sudah kamu buat sebelumnya).
Lalu akan ada setup wizard.
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!