GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menyebarkan Odoo 11 di Ubuntu 18.04

Odoo adalah perangkat lunak bisnis all-in-one paling populer di dunia. Ini menawarkan berbagai aplikasi bisnis termasuk CRM, situs web, e-Commerce, penagihan, akuntansi, manufaktur, gudang, manajemen proyek, inventaris, dan banyak lagi, semuanya terintegrasi dengan mulus.

Ada beberapa cara untuk menginstal Odootergantung pada kasus penggunaan yang diperlukan. Cara termudah dan tercepat untuk menginstal Odoo adalah dengan menggunakan repositori APT resmi mereka.

Jika Anda ingin memiliki lebih banyak fleksibilitas seperti menjalankan beberapa versi Odoo pada sistem yang sama, maka Anda dapat menggunakan komposisi buruh pelabuhan dan buruh pelabuhan atau menginstal Odoo di lingkungan virtual.

Panduan ini mencakup langkah-langkah yang diperlukan untuk menginstal dan mengonfigurasi Odoo untuk produksi menggunakan sumber Git dan lingkungan virtual Python pada sistem Ubuntu 18.04.

Sebelum memulai #

Masuk ke mesin Ubuntu Anda sebagai pengguna sudo dan perbarui sistem ke paket terbaru:

sudo apt update && sudo apt upgrade

Instal Git, Pip, Node.jsdan alat yang diperlukan untuk membangun dependensi Odoo:

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Buat pengguna Odoo #

Buat pengguna dan grup sistem baru dengan direktori home /opt/odoo yang akan menjalankan layanan Odoo.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
Anda dapat memberi nama pengguna apa pun yang Anda suka, pastikan Anda membuat pengguna postgres dengan nama yang sama.

Instal dan konfigurasikan PostgreSQL #

Instal PostgreSQLpackage dari repositori default Ubuntu:

sudo apt install postgresql

Setelah instalasi selesai, buat pengguna PostgreSQL dengan nama yang sama dengan pengguna sistem yang dibuat sebelumnya, dalam kasus kami odoo :

sudo su - postgres -c "createuser -s odoo"

Instal Wkhtmltopdf #

wkhtmltox package menyediakan seperangkat alat baris perintah sumber terbuka yang dapat membuat HTML menjadi PDF dan berbagai format gambar. Untuk mencetak laporan PDF, Anda memerlukan wkhtmltopdf alat. Versi yang direkomendasikan untuk Odoo adalah 0.12.1 yang tidak tersedia di repositori resmi Ubuntu 18.04.

Unduh paket menggunakan wgetcommand berikut:

wget https://builds.wkhtmltopdf.org/0.12.1.3/wkhtmltox_0.12.1.3-1~bionic_amd64.deb

Setelah unduhan selesai, instal paket dengan mengetik:

sudo apt install ./wkhtmltox_0.12.1.3-1~bionic_amd64.deb

Instal dan Konfigurasi Odoo #

Kami akan menginstal Odoo dari repositori GitHub di dalam lingkungan virtual Python yang terisolasi sehingga kami dapat memiliki kontrol lebih besar atas versi dan pembaruan.

Sebelum memulai proses instalasi, pastikan Anda beralih ke odoo pengguna.

sudo su - odoo

Untuk mengonfirmasi bahwa Anda masuk sebagai odoo pengguna Anda dapat menggunakan perintah berikut:

whoami

Sekarang kita bisa mulai dengan proses instalasi. Pertama-tama kloning odoo dari repositori GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11
  • Jika Anda ingin menginstal versi Odoo yang berbeda, cukup ubah nomor versi setelah --branch beralih.
  • Anda dapat memberi nama direktori sesuka Anda, misalnya odoo11 Anda dapat menggunakan nama domain Anda.

Untuk membuat lingkungan virtual baru untuk instance Odoo 11, jalankan:

cd /opt/odoopython3 -m venv odoo11-venv

aktifkan lingkungan dengan perintah berikut:

source odoo11-venv/bin/activate

dan instal semua modul Python yang diperlukan dengan pip3:

pip3 install wheelpip3 install -r odoo11/requirements.txt

pip3 adalah alat untuk menginstal dan mengelola paket Python.

Jika Anda menemukan kesalahan kompilasi selama penginstalan, pastikan Anda menginstal semua dependensi yang diperlukan yang tercantum di Before you begin bagian.

Setelah instalasi selesai, nonaktifkan lingkungan dan beralih kembali ke pengguna sudo Anda menggunakan perintah berikut:

deactivate
exit

Jika Anda berencana untuk menginstal modul khusus, yang terbaik adalah menginstal modul tersebut di direktori terpisah. Untuk membuat direktori baru untuk modul khusus kami, jalankan:

sudo mkdir /opt/odoo/odoo11-custom-addonssudo chown odoo: /opt/odoo/odoo11-custom-addons

Selanjutnya, kita perlu membuat file konfigurasi, kita dapat membuat yang baru dari awal atau menyalin file konfigurasi yang disertakan:

sudo cp /opt/odoo/odoo11/debian/odoo.conf /etc/odoo11.conf

Buka file dan edit sebagai berikut:

/etc/odoo11.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo11/addons
; If you are using custom modules
; addons_path = /opt/odoo/odoo11/addons,/opt/odoo/odoo11-custom-addons
Jangan lupa ganti my_admin_passwd ke sesuatu yang lebih aman dan sesuaikan addons_path jika Anda menggunakan modul khusus.

Buat file unit systemd #

Untuk menjalankan odoo sebagai layanan, kami akan membuat odoo11.service file unit di /etc/systemd/system/ direktori dengan isi sebagai berikut:

/etc/systemd/system/odoo11.service
[Unit]
Description=Odoo11
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo11
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Beri tahu systemd bahwa kami membuat file unit baru dan memulai layanan Odoo dengan menjalankan:

sudo systemctl daemon-reloadsudo systemctl start odoo11

Anda dapat memeriksa status layanan dengan perintah berikut:

sudo systemctl status odoo11
● odoo11.service - Odoo11
   Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-05-03 21:23:08 UTC; 3s ago
 Main PID: 18351 (python3)
    Tasks: 4 (limit: 507)
   CGroup: /system.slice/odoo11.service
           └─18351 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf

dan jika tidak ada kesalahan, Anda dapat mengaktifkan layanan Odoo untuk dimulai secara otomatis saat boot:

sudo systemctl enable odoo11

Jika Anda ingin melihat pesan yang dicatat oleh layanan Odoo, Anda dapat menggunakan perintah di bawah ini:

sudo journalctl -u odoo11

Uji Instalasi #

Buka browser Anda dan ketik:http://<your_domain_or_IP_address>:8069

Dengan asumsi instalasi berhasil, layar yang mirip dengan berikut akan muncul:

Konfigurasikan Nginx sebagai proxy terminasi SSL #

Jika Anda ingin menggunakan Nginx sebagai proxy terminasi SSL, pastikan Anda telah memenuhi prasyarat berikut:

  • Anda memiliki nama domain yang menunjuk ke IP server publik Anda. Dalam tutorial ini kita akan menggunakan example.com .
  • Anda telah menginstal Nginx dengan mengikuti petunjuk berikut.
  • Anda memiliki sertifikat SSL yang terpasang untuk domain Anda. Anda dapat memasang sertifikat SSL Let's Encrypt gratis dengan mengikuti petunjuk berikut.

Server web default Odoo melayani lalu lintas melalui HTTP. Untuk membuat penerapan Odoo kami lebih aman, kami akan mengonfigurasi Nginx sebagai proxy terminasi SSL yang akan melayani lalu lintas melalui HTTPS.

Proxy terminasi SSL adalah server proxy yang menangani enkripsi/dekripsi SSL. Ini berarti bahwa proxy terminasi (Nginx) kami akan menangani dan mendekripsi koneksi TLS masuk (HTTPS), dan akan meneruskan permintaan tidak terenkripsi ke layanan internal kami (Odoo) sehingga lalu lintas antara Nginx dan Odoo tidak akan dienkripsi (HTTP).

Kita perlu memberi tahu Odoo bahwa kita akan menggunakan proxy, buka file konfigurasi dan tambahkan baris berikut:

/etc/odoo11.conf
proxy_mode = True

Mulai ulang layanan Odoo agar perubahan diterapkan:

sudo systemctl restart odoo11

Menggunakan Nginx sebagai proxy memberi kami beberapa keuntungan. Dalam contoh ini kita akan mengonfigurasi Penghentian SSL, pengalihan HTTP ke HTTPS, pengalihan WWW ke non-WWW, cache file statis dan mengaktifkan GZipcompression.

/etc/nginx/sites-enabled/example.com
# Odoo servers
upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoochat {
 server 127.0.0.1:8072;
}

# HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;

    # Handle longpoll requests
    location /longpolling {
        proxy_pass http://odoochat;
    }

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://odoo;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    # Gzip
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}
Jangan lupa untuk mengganti example.com dengan domain Odoo Anda dan atur jalur yang benar ke file sertifikat SSL. Cuplikan yang digunakan dalam konfigurasi ini dibuat dalam panduan ini.

Setelah selesai, restart layanan Nginx dengan:

sudo systemctl restart nginx

Ubah antarmuka pengikatan #

Langkah ini opsional, tetapi ini adalah praktik keamanan yang baik. Secara default, server Odoo mendengarkan port 8069 di semua antarmuka, jadi jika Anda ingin menonaktifkan akses langsung ke instans Odoo, Anda dapat memblokir port 8069 untuk semua antarmuka publik atau memaksa Odoo untuk mendengarkan hanya di antarmuka lokal.

Dalam panduan ini kami akan memaksa Odoo untuk mendengarkan hanya di 127.0.0.1 , buka konfigurasi Odoo tambahkan dua baris berikut di akhir file:

/etc/odoo11.conf
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1

Simpan file konfigurasi dan mulai ulang server Odoo agar perubahan diterapkan:

sudo systemctl restart odoo

Aktifkan multiproses #

Secara default, Odoo bekerja dalam mode multithreading. Untuk penerapan produksi, disarankan untuk beralih ke server multiprosesor karena ini meningkatkan stabilitas, dan memanfaatkan sumber daya sistem dengan lebih baik. Untuk mengaktifkan multiprosesor, kita perlu mengedit konfigurasi Odoo dan menyetel jumlah proses pekerja yang bukan nol.

Jumlah pekerja dihitung berdasarkan jumlah inti CPU dalam sistem dan memori RAM yang tersedia.

Menurut dokumentasi resmi Odoo untuk menghitung jumlah pekerja dan ukuran memori RAM yang diperlukan, kami akan menggunakan rumus dan asumsi berikut:

Penghitungan jumlah pekerja

  • jumlah maksimum teoritis pekerja =(system_cpus * 2) + 1
  • 1 pekerja dapat melayani ~=6 pengguna bersamaan
  • Pekerja Cron juga membutuhkan CPU

Penghitungan ukuran memori RAM

  • Kami akan mempertimbangkan bahwa 20% dari semua permintaan adalah permintaan yang berat, sedangkan 80% adalah permintaan yang lebih ringan. Permintaan berat menggunakan sekitar 1 GB RAM sedangkan yang lebih ringan menggunakan sekitar 150 MB RAM
  • RAM yang dibutuhkan =jumlah_pekerja * ( (rasio_pekerja ringan * estimasi_pekerja_ringan) + (rasio_pekerja berat * estimasi_pekerja_berat) )

Jika Anda tidak tahu berapa banyak CPU yang Anda miliki di sistem Anda, Anda dapat menggunakan perintah berikut:

grep -c ^processor /proc/cpuinfo

Katakanlah kita memiliki sistem dengan 4 inti CPU, memori RAM 8 GB, dan 30 pengguna Odoo secara bersamaan.

  • 30 users / 6 = **5** (5 adalah jumlah teoritis pekerja yang dibutuhkan )
  • (4 * 2) + 1 = **9** ( 9 adalah jumlah maksimum teoritis pekerja)

Berdasarkan perhitungan di atas kita dapat menggunakan 5 pekerja + 1 pekerja untuk pekerja cron yang berjumlah 6 pekerja.

Hitung konsumsi memori RAM berdasarkan jumlah pekerja:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

Perhitungan di atas menunjukkan kepada kita bahwa instalasi Odoo kita akan membutuhkan sekitar 2GB RAM.

Untuk beralih ke mode multiproses, buka file konfigurasi dan tambahkan baris berikut:

/etc/odoo11.conf
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 5

Mulai ulang layanan Odoo agar perubahan diterapkan:

sudo systemctl restart odoo11

Sumber daya sistem lainnya akan digunakan oleh layanan lain yang berjalan di mesin kami. Dalam panduan ini kami menginstal Odoo bersama dengan PostgreSQL dan Nginx di server yang sama dan tergantung pada pengaturan Anda, Anda mungkin juga memiliki layanan lain yang berjalan di server Anda.


Ubuntu
  1. Cara Menginstal Odoo 10 di Ubuntu 16.04

  2. Cara Menginstal Odoo 12 di Ubuntu 16.04

  3. Cara Menginstal Odoo 13 di Ubuntu 18.04

  1. Cara Menginstal Odoo 13 di Ubuntu 20.04

  2. Cara menginstal Odoo 15 di Ubuntu 22.04

  3. Cara menginstal Odoo 13 di Ubuntu 20.04

  1. Cara Menginstal Odoo di Ubuntu

  2. Cara Menginstal Odoo 15 di Ubuntu 20.04

  3. Cara Menginstal Odoo 11 di Ubuntu 16.04