Menyiapkan OpenERP (Odoo) 9 dengan Nginx di RHEL/CentOS dan Debian/Ubuntu


Odoo, sebelumnya dikenal sebagai OpenERP, adalah perangkat lunak bisnis berbasis web ERP Perencanaan Sumber Daya Perusahaan Sumber Terbuka yang ditulis dengan Python dan dilengkapi dengan serangkaian web aplikasi yang dirancang untuk setiap bisnis, seperti Pembuat Situs Web, modul eCommerce, Penagihan dan Akuntansi, Sumber Daya Manusia, Tempat Penjualan, Manajemen Hubungan Pelanggan, modul Inventaris, Obrolan Langsung, dan banyak aplikasi dan fitur lainnya.

Tutorial ini akan memandu Anda tentang cara menginstal versi stabil terbaru Odoo (versi 9) di RHEL/CentOS/Fedora atau < sistem berbasisDebian/Ubuntu dengan server Nginx yang bertindak sebagai proxy terbalik di frontend untuk mengakses antarmuka web dengan lebih cepat, aman, dan dari port penjelajahan web standar, tanpa perlu membebani pengguna untuk menggunakan port pengalihan browser.

Langkah 1: Instal dan Amankan Basis Data PostgreSQL

1. Sebelum Anda mulai melanjutkan instalasi Odoo, pastikan terlebih dahulu bahwa sistem Anda dilengkapi dengan paket yang disediakan oleh repositori Epel untuk menginstal database PostgreSQL backend .

Pastikan juga server mutakhir dengan paket dan patch keamanan terbaru dengan mengeluarkan perintah di bawah ini:

----------- On RedHat/CentOS based systems ----------- 
yum update
yum install -y epel-release

----------- On Debian/Ubuntu based systems ----------- 
apt-get update && sudo apt-get upgrade # On Debian 

2. Selanjutnya, lanjutkan dan instal server basis data PostgreSQL, yang merupakan basis data default yang digunakan oleh Odoo untuk menyimpan informasi.

----------- On RedHat/CentOS based systems -----------
yum install postgresql-server

----------- On Debian/Ubuntu based systems -----------
apt-get install postgresql postgresql-client

Inisialisasi basis data PostgreSQL.

postgresql-setup initdb	

Sekarang akhirnya mulai database PostgreSQL dengan mengeluarkan perintah di bawah ini:

----------- On SystemD systems -----------
systemctl start postgresql

----------- On SysVinit systems -----------
service postgresql start

Sebagai langkah tambahan untuk mengamankan pengguna default PostgreSQL, yang memiliki kata sandi kosong, jalankan perintah di bawah ini dengan hak akses root untuk mengubah kata sandi:

sudo -u postgres psql
postgres=# \password postgres

Langkah 2: Instal Odoo 9 – OpenERP

3. Untuk menginstal Odoo 9 dari repositori resmi, pertama-tama buat file repositori yum baru untuk Odoo dengan konten berikut:

Pada Sistem CentOS/RHEL

vi /etc/yum.repos.d/odoo.repo

Tambahkan kutipan berikut ke file odoo.repo.

[odoo-nightly]
name=Odoo Nightly repository
baseurl=http://nightly.odoo.com/9.0/nightly/rpm/
enabled=1
gpgcheck=1
gpgkey=https://nightly.odoo.com/odoo.key

Pada Sistem Debian/Ubuntu

Di Debian/Ubuntu jalankan perintah berikut untuk menambahkan repositori Odoo:

wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list

4. Selanjutnya instal perangkat lunak Odoo 9 dari biner.

----------- On RedHat/CentOS based systems -----------
yum install odoo

----------- On Debian/Ubuntu based systems -----------
apt-get update && sudo apt-get install odoo

Selanjutnya, jalankan dan periksa status daemon dengan menjalankan perintah di bawah ini:

----------- On SystemD systems -----------
systemctl start odoo
systemctl status odoo

----------- On SysVinit systems -----------
service odoo start
service odoo status

Sebagai langkah tambahan, Anda dapat memverifikasi port pendengaran layanan Odoo dengan menjalankan perintah ss atau netstat:

ss -tulpn
OR
netstat -tulpn

Secara default, Odoo mendengarkan koneksi jaringan pada port 8069/TCP.

Langkah 3: Konfigurasikan Odoo dari Antarmuka Web

5. Untuk mengonfigurasi Odoo lebih lanjut, jalankan browser dan akses antarmuka web Odoo di URI berikut:

http://host-or-IP-address:8069/

6. Selanjutnya Anda akan diminta untuk membuat database baru untuk Odoo dan menetapkan kata sandi yang kuat untuk akun admin.

7. Setelah database dibuat, Anda akan diarahkan ke panel web administrasi tempat Anda dapat menginstal aplikasi lebih lanjut dan mengonfigurasi ERP Anda. Untuk saat ini biarkan aplikasi sebagai default dan logout.

8. Setelah kembali ke layar login, tekan tautan Kelola Basis Data dan Tetapkan kata sandi utama untuk mengamankan pengelola basis data Odoo.

9. Setelah Anda mengamankan pengelola basis data Odoo, Anda dapat masuk ke aplikasi Anda dan mulai mengonfigurasinya lebih lanjut dengan aplikasi dan pengaturan yang diperlukan.

Langkah 4: Akses Odoo dari Nginx Frontend

Anda dapat mengonfigurasi sistem sehingga pengguna dapat mengakses panel web Odoo melalui proxy balik Nginx. Hal ini dapat memfasilitasi pengguna untuk menavigasi antarmuka web Odoo lebih cepat, karena beberapa cache frontend Nginx, pada port HTTP standar tanpa perlu memasukkan port http 8069 secara manual di browser mereka .

Untuk mengonfigurasi pengaturan ini terlebih dahulu Anda perlu menginstal dan mengonfigurasi Nginx di sistem Anda dengan melakukan langkah-langkah berikut.

10. Pertama-tama instal server web Nginx dengan perintah berikut:

----------- On RedHat/CentOS based systems -----------
yum install nginx

----------- On Debian/Ubuntu based systems -----------
apt-get install nginx

11. Selanjutnya, buka file konfigurasi utama Nginx dengan editor teks dan masukkan blok berikut setelah baris yang menentukan lokasi akar dokumen Nginx.

----------- On RedHat/CentOS based systems -----------
vi /etc/nginx/nginx.conf 

----------- On Debian/Ubuntu based systems -----------
nano /etc/nginx/sites-enabled/default

Tambahkan kutipan konfigurasi berikut ke file nginx.conf:

 location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

Juga, komentari pernyataan location Nginx dengan menempatkan # di depan baris berikut. Gunakan tangkapan layar di bawah ini sebagai panduan.

#location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #       try_files $uri $uri/ =404;
        #}

12. Setelah Anda melakukan semua perubahan di atas, restart daemon Nginx tetapi jangan sebelum Anda menjalankan perintah getenforce untuk memeriksa apakah Selinux diaktifkan pada mesin Anda.

Pada Sistem CentOS/RHEL

Jika kebijakan disetel ke Diberlakukan, nonaktifkan kebijakan tersebut dengan mengeluarkan perintah di bawah ini:

setenforce 0
getenforce

Untuk menonaktifkan Selinux sepenuhnya, buka file /etc/selinux/config dengan editor teks dan setel baris SELINUX ke nonaktif.

Jika Anda tidak ingin sepenuhnya menonaktifkan kebijakan Seliux dan hanya ingin melonggarkan aturan untuk memberikan proxy Nginx akses permisif ke soket jaringan, jalankan perintah berikut:

setsebool httpd_can_network_connect on -P
getsebool -a | grep httpd 

Kemudian, restart daemon Nginx untuk mencerminkan perubahan yang dibuat di atas:

systemctl restart nginx
OR
service nginx restart

13. Langkah selanjutnya ini merupakan fitur opsional keamanan dan menyiratkan perubahan soket jaringan yang didengarkan aplikasi Odoo, mengubah alamat pengikatan dari semua antarmuka (atau alamat) menjadi hanya host lokal.

Perubahan ini harus dilakukan hanya bersamaan dengan proksi terbalik Nginx karena pengikatan aplikasi pada localhost hanya menyiratkan bahwa Odoo tidak akan dapat diakses oleh pengguna di dalam LAN atau jaringan lain.

Untuk mengaktifkan perubahan ini, buka file /etc/odoo/openerp-server.conf dan edit baris xmlrpc_interface untuk diikat di localhost seperti yang disarankan pada gambar di bawah.

xmlrpc_interface = 127.0.0.1

Untuk mencerminkan perubahan, restart layanan Odoo dengan menjalankan perintah di bawah ini:

systemctl restart odoo.service
OR
service odoo restart

14. Jika mesin Anda memiliki garis pertahanan jaringan yang disediakan oleh firewall, jalankan perintah berikut untuk membuka port firewall ke dunia luar untuk proksi Nginx:

----------- On FirewallD based systems -----------
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
----------- On IPTables based systems -----------
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
----------- On UFW Firewall systems -----------
ufw allow http

15. Selesai! Sekarang Anda berhasil mengakses aplikasi ERP Odoo Anda dengan mengunjungi Alamat IP server atau nama domain Anda.

http://192.168.1.40
http://domain.tld

16. Untuk menjalankan layanan secara otomatis setelah reboot sistem, jalankan perintah berikut untuk mengaktifkan semua daemon di seluruh sistem dengan satu kali.

------------ On SystemD Systems ------------  
systemctl enable postgresql.service 
systemctl enable odoo.service
systemctl enable nginx.service
------------ On SysVinit Systems ------------ 

chkconfig postgresql on
chkconfig odoo on
chkconfig nginx on

CATATAN: Untuk laporan PDF, Anda harus mengunduh dan menginstal paket biner wkhtmltopdf secara manual untuk distribusi Anda sendiri dengan mengunjungi tautan berikut Instal wkhtmltopdf untuk Mengonversi Halaman HTML ke PDF.