Oct 7, 2017

ERPNext For Production

ERPNext, sangat menjanjikan sebagai salah satu aplikasi ERP yang mendapatkan banyak perhatian. Berikut panduan menginstall ERPNext diatas system operasi Ubuntu 16.04 amd64. Instalasi ERPNext tergantung pada situasi mesin saat ini, apabila PC sudah diinstall ubuntu 16.04 dengan repository standar, situasinya sedikit berbeda dibanding dengan "Fresh Install" pada ubuntu 16.04 yang masih "kosong". Sedikit perbedaan hanya pada versi dependensi. Secara umum fungsi dan kapabilitas tidak berbeda sama sekali. Pemilihan versi dependensi mungkin lebih banyak dipengaruhi faktor selera, karena pada dasarnya tokh aplikasi berfungsi normal dan dapat dipergunakan dengan baik. Demikian pula pemilihan distro linux dan versi distro. Ubuntu 16.04 merupakan versi LTS, dan secara resmi mendapat dukungan Canonical s/d tahun 2021. Pengguna ubuntu sangat luas sehingga lebih mudah dan cepat dalam menemukan bantuan.

Instalasi Ubuntu 16.04
Meskipun PC akan diinstall Ubuntu desktop, untuk instalasi pertama kali ada baiknya diinstall base system saja, atau dikenal dengan command-line mode, hal ini penting untuk menghindari diinstallnya paket aplikasi lain dengan versi yang tidak diharapkan. Untuk ERPNext, secara umum paket yang dibutuhkan :
  • Python 2.7
  • MariaDB ( disarankan versi 10.1 atau 10.2 stable )
  • Redis server ( disarankan versi 4.0.x stable )
  • WKHTMLtoPDF dengan QT Patch
  • supervisor
  • Nginx webserver ( disarankan versi 1.13 stable )

Setelah selesai menginstall ubuntu 16.04 basic system, sebaiknya memperbaiki repository, dimana tidak memilih repository standar.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential python-minimal curl git-core software-properties-common dirmngr libssl-dev
Install repository MariaDB 10.1 sesuai dengan SITUS MARIADB FOUNDATION
Install repository Redis-server untuk ubuntu 16.04
Install WKHTMLtoPDF dengan QT Pathced
Install Repository NGINX stable via PPA
lakukan update dan upgrade
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install mariadb-server mariadb-client libmariadbclient-dev nginx redis-server supervisor python-pip nodejs
Setelah semua terinstall, server siap diinstal ERPNext, khusus untuk Mariadb server membutuhkan sedikit tambahan konfigurasi pada file /etc/mysql/my.cnf pastekan file berikut [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

Intalasi ERPNext dan Opsi
  1. User login ubuntu 16.04 juga dapat digunakan tanpa harus menambah user. Meskipun bisa saja anda menyimpan folder ERPNext di path manapun, ada baiknya menyimpan folder ERPNext di /home/user .
  2. Apabila system yang akan diinstall hanya untuk kebutuhan lokal, misal 1 pc laptop/desktop untuk sebuah toko, ada baiknya menambahkan 1 (satu) non system user khusus untuk ERPNext diluar user untuk Login sehari-hari. Ide ini ada baiknya juga dilakukan pada server dengan banyak aplikasi selain ERPNext, dengan menambahkan 1 user untuk ERPNext akan memudahkan dalam mengadministrasi, trouble shouting, maintenance ERPNext. Dalam banyak Tutorial disarankan menggunakan user dengan username frappe : $ sudo adduser frappe
    $ sudo usermod -aG sudo frappe
  3. Log in dengan user frappe $ sudo su frappe
    $ cd
    $ git clone https://github.com/frappe/bench bench
    Tunggu hingga selesai dan muncul folder bench
    $ sudo -H pip install -e bench
    >
  4. Sampai disini, maka bench sudah terinstall dengan baik
  5. Install bench untuk production ( masih login dengan user frappe ): $ bench init xxx-bench
    pilih nama yang mudah diingat, sependek mungkin untuk mudah mengingatnya
    $ cd xxx-bench
    $ bench get-app erpnext https://github.com/frappe/erpnext
  6. Sampai disini bench, frappe platform dan ERPNext system sudah terinstall dengan baik, lanjutkan dengan mengaktifkan nginx web server, mariadb database dan supervisor
  7. Tetap login dengan user frappe : $ sudo systemctl enable nginx
    $ sudo systemctl enable mariadb $ sudo systemctl enable supervisor
  8. login ke mysql shell : $ mysql -u root -p
    ubuntu biasanya meminta user memberikan root password ketika pertama kali menginstall Mariadb
    MariaDB [(none)]> CREATE DATABASE erpnext;
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON erpnext.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
    MariaDB [(none)]> \q;
  9. buat site dan install ERPNext : $ bench new-site namasite.local --db-name erpnext --mariadb-root-username root --mariadb-root-password password --install-app erpnext --verbose --force
    Apabila tidak terjadi sesuatu ERPNext akan diinstal pada situs
    $ bench setup procfile
    $ bench setup nginx
    $ bench setup supervisor
    command $ sudo bench setup production frappe <-- nama login username pada dasarnya hanya mengubah port webserver nginx untuk ERPNext dari default ( port 80 ) ke Port 8000
  10. Semua bench command, bench setup nginx dan bench setup supervisor pada dasarnya membuat symlink dari .../xxx-bench/config/nginx.conf ke /etc/nginx/conf.d/xxx-bench-nginx.conf dan .../xxx-bench/config/supervisor.conf ke /etc/supervisor/conf.d/xxx-bench.conf ini penting dipahami untuk melakukan check dan trouble shouting ketika ada masalah dengan ERPNext system
Redis Server
Ada baiknya membaca Artikel Tentang Redis Server PerformanceTips, satu-satunya keraguan adalah melakukan tindakan NON AKTIF secara permanen pada system linux kernel Transparent Huge Page ( THP ), karena teknologi THP ini membantu sangat banyak dalam menjaga performance OS secara keseluruhan.

Real Multilib Userland on Linux

Read multilib requirement on Android rom building and other stuff. About two years absent from getting rid with android rom. I have time to...