GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Odoo 14 di Ubuntu 20.04

Odoo adalah rangkaian aplikasi bisnis sumber terbuka populer yang membantu perusahaan mengelola dan menjalankan bisnis mereka. Ini mencakup berbagai aplikasi seperti CRM, e-Commerce, pembuat situs web, penagihan, akuntansi, manufaktur, gudang, manajemen proyek, inventaris, dan banyak lagi, semuanya terintegrasi dengan mulus.

Odoocan dapat diinstal dengan cara yang berbeda, tergantung pada kasus penggunaan dan teknologi yang tersedia. Cara termudah dan tercepat untuk menginstal Odoo adalah dengan menggunakan APTrepositories resmi Odoo.

Menginstal Odoo di lingkungan virtual, atau menerapkan sebagai Dockercontainer, memberi Anda lebih banyak kontrol atas aplikasi dan memungkinkan Anda menjalankan beberapa instans Odoo pada sistem yang sama.

Artikel ini menjelaskan cara menginstal dan menerapkan Odoo 14 di dalam lingkungan virtual Python di Ubuntu 20.04. Kami akan mengunduh Odoo dari repositori resmi GitHub dan menggunakan Nginx sebagai proxy terbalik.

Prasyarat Pemasangan #

Perintah berikut menginstal Git, Pip, Node.js, dan [alat yang diperlukan untuk membangun](https://linuxize.com/post/how-to-install-gcc-on-ubuntu-20-04/ Odoo dependensi:

sudo apt updatesudo apt install git python3-pip build-essential wget python3-dev python3-venv \    python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev \    python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev \    libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev \    liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

Membuat Pengguna Sistem #

Menjalankan Odoo di bawah pengguna root tidak diperbolehkan, karena ini merupakan risiko keamanan. Kami akan membuat pengguna dan grup sistem baru dengan direktori home /opt/odoo14 yang akan menjalankan layanan Odoo. Untuk melakukannya, masukkan perintah berikut:

sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14

Anda dapat memberi nama pengguna apa pun yang Anda inginkan, selama Anda membuat pengguna PostgreSQL dengan nama yang sama.

Menginstal dan Mengonfigurasi PostgreSQL #

Odoo menggunakan PostgreSQL sebagai back-end database. PostgreSQL termasuk dalam repositori standar Ubuntu. Untuk menginstalnya, jalankan:

sudo apt install postgresql

Ketika instalasi selesai, buat pengguna PostgreSQL dengan nama yang sama dengan pengguna sistem yang dibuat sebelumnya. Dalam contoh ini, yaitu odoo14 :

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

Menginstal wkhtmltopdf #

wkhtmltopdf adalah seperangkat alat baris perintah sumber terbuka untuk merender halaman HTML menjadi PDF dan berbagai format gambar. Untuk mencetak laporan PDF di Odoo, Anda harus menginstal wkhtmltox kemasan. Versi yang direkomendasikan untuk Odoo adalah versi 0.12.5 , yang dapat diunduh dari Github:

sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

Setelah file diunduh, instal dengan mengetik:

sudo apt install ./wkhtmltox_0.12.5-1.bionic_amd64.deb

Menginstal dan Mengonfigurasi Odoo 14 #

Kami akan menginstal Odoo dari sumber di dalam lingkungan virtual Python yang terisolasi.

Pertama, ubah ke pengguna“odoo14”:

sudo su - odoo14

Kloning kode sumber Odoo 14 dari GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo

Buat lingkungan virtual Python baru untuk Odoo:

cd /opt/odoo14python3 -m venv odoo-venv

Aktifkan lingkungan virtual:

source odoo-venv/bin/activate

Instal semua modul Python yang diperlukan dengan pip3:

pip3 install wheelpip3 install -r odoo/requirements.txt
Jika Anda menemukan kesalahan kompilasi selama penginstalan, pastikan semua dependensi yang diperlukan tercantum di Installing Prerequisites bagian dipasang.

Setelah selesai, nonaktifkan lingkungan dengan mengetik:

deactivate

Buat direktori baru yang akan berisi add-on pihak ke-3:

mkdir /opt/odoo14/odoo-custom-addons

Kami akan menambahkan direktori ini ke addons_path parameter. Parameter ini menentukan daftar direktori tempat Odoo mencari modul.

Beralih kembali ke pengguna sudo Anda:

exit

Buat file konfigurasi dengan konten berikut:

sudo nano /etc/odoo14.conf
/etc/odoo14.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
Jangan lupa ganti my_admin_passwd untuk sesuatu yang lebih aman.

Membuat File Unit Systemd #

Buka editor teks Anda dan buat file unit layanan bernama odoo14.service dengan isi sebagai berikut:

sudo nano /etc/systemd/system/odoo14.service
/etc/systemd/system/odoo14.service
[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target

Beri tahu systemd bahwa ada file unit baru:

sudo systemctl daemon-reload

Mulai layanan Odoo dan aktifkan untuk memulai saat boot dengan menjalankan:

sudo systemctl enable --now odoo14

Verifikasi status layanan:

sudo systemctl status odoo14

Outputnya akan terlihat seperti di bawah ini, menunjukkan bahwa layanan Odoo aktif dan berjalan:

● odoo14.service - Odoo14
     Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-10-16 19:05:32 UTC; 3s ago
...

Untuk melihat pesan yang dicatat oleh layanan Odoo, gunakan perintah di bawah ini:

sudo journalctl -u odoo14

Menguji Instalasi #

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

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

Mengonfigurasi Nginx sebagai Proksi Penghentian SSL #

Server web default Odoo melayani lalu lintas melalui HTTP. Untuk membuat penerapan Odoo lebih aman, kami akan menyetel 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) akan memproses dan mendekripsi koneksi TLS masuk (HTTPS), dan meneruskan permintaan tidak terenkripsi ke layanan internal (Odoo). Lalu lintas antara Nginx dan Odoo tidak akan dienkripsi (HTTP).

Menggunakan proxy terbalik memberi Anda banyak manfaat seperti Load Balancing, SSL Termination, Caching, Compression, Melayani Konten Statis, dan banyak lagi.

Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan ke bagian ini:

  • Nama domain yang menunjuk ke IP server publik Anda. Kami akan menggunakan example.com .
  • Nginx terpasang.
  • Sertifikat SSL untuk domain Anda. Anda dapat menginstal sertifikat SSL Let's Encrypt gratis.

Buka editor teks Anda dan buat/edit blok server domain:

sudo nano /etc/nginx/sites-enabled/example.com.conf

Konfigurasi berikut menyiapkan Penghentian SSL, pengalihan HTTP ke HTTPS, pengalihan WWW ke non-WWW, cache file statis, dan mengaktifkan GZipcompression.

/etc/nginx/sites-enabled/example.com.conf
# 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 mengatur jalur yang benar ke file sertifikat SSL. Cuplikan yang digunakan dalam konfigurasi ini dibuat dalam panduan ini.

Setelah selesai, mulai ulang layanan Nginx:

sudo systemctl restart nginx

Selanjutnya, kita perlu memberi tahu Odoo untuk menggunakan proxy. Untuk melakukannya, buka file konfigurasi dan tambahkan baris berikut:

/etc/odoo14.conf
proxy_mode = True

Mulai ulang layanan Odoo agar perubahan diterapkan:

sudo systemctl restart odoo14

Pada titik ini, proxy terbalik dikonfigurasi, dan Anda dapat mengakses instans Odoo Anda di https://example.com .

Mengubah Antarmuka Binding #

Langkah ini opsional, tetapi merupakan praktik keamanan yang baik.

Secara default, server Odoo mendengarkan port 8069 pada semua antarmuka. Untuk menonaktifkan akses langsung ke instance Odoo, Anda dapat memblokir port 8069 untuk semua antarmuka publik atau memaksa Odoo untuk mendengarkan hanya di antarmuka lokal.

Kami akan mengonfigurasi Odoo untuk mendengarkan hanya di 127.0.0.1 . Buka konfigurasi tambahkan dua baris berikut di akhir file:

/etc/odoo14.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 odoo14

Mengaktifkan Multiprosesor #

Secara default, Odoo bekerja dalam mode multithreading. Untuk penerapan produksi, disarankan untuk mengubah ke server multiprosesor karena meningkatkan stabilitas dan membuat penggunaan sumber daya sistem menjadi lebih baik.

Untuk mengaktifkan multiproses, Anda 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 dibutuhkan, Anda dapat menggunakan rumus dan asumsi berikut:

Penghitungan jumlah pekerja

  • Jumlah pekerja maksimum teoritis =(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, dan 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 =number_of_workers * ( (light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation) )

Jika Anda tidak tahu berapa banyak CPU yang Anda miliki di sistem Anda, gunakan grep berikut ini perintah:

grep -c ^processor /proc/cpuinfo

Katakanlah Anda 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, Anda dapat menggunakan 5 pekerja + 1 pekerja untuk cron pekerja yaitu total 6 pekerja.

Hitung konsumsi memori RAM berdasarkan jumlah pekerja:

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

Perhitungan menunjukkan bahwa instalasi Odoo akan membutuhkan sekitar 2GB RAM.

Untuk beralih ke mode multiproses, buka file konfigurasi dan tambahkan nilai yang dihitung:

/etc/odoo14.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 odoo14

Sisa sumber daya sistem akan digunakan oleh layanan lain yang berjalan di sistem ini. Dalam panduan ini, kami menginstal Odoo bersama dengan PostgreSQL dan Nginx di server yang sama. 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