GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Perangkat Lunak ERP Odoo 14 di Ubuntu 20.04

Odoo (sebelumnya dikenal sebagai OpenERP) adalah suite yang dihosting sendiri dengan lebih dari 10.000 aplikasi open source yang cocok untuk berbagai kebutuhan bisnis termasuk CRM, eCommerce, akuntansi, inventaris, manajemen proyek, dan titik penjualan. Aplikasi ini sepenuhnya terintegrasi dan diakses melalui antarmuka web umum.

Dalam tutorial ini, kita akan belajar menginstal Odoo 14 Stack di server berbasis Ubuntu 20.04.

Prasyarat

  1. Server berbasis Ubuntu 20.04 dengan minimal 2GB RAM untuk menghosting Odoo Stack.

  2. Server berbasis Ubuntu 20.04 kedua dengan minimal 2GB RAM untuk menghosting database PostgreSQL. Namun Anda dapat menginstal database di server yang sama dengan Odoo tetapi untuk lingkungan produksi, sangat disarankan agar Anda menginstalnya di server terpisah. Anda juga dapat memilih salah satu opsi database terkelola yang tersedia dari penyedia pilihan Anda.

  3. Persyaratan RAM akan tergantung pada jumlah pengguna bersamaan yang akan menggunakan tumpukan. Panduan mendetail tentang cara menghitung persyaratan sistem dapat ditemukan di dokumentasi Odoo.

  4. Selalu perbarui sistem Anda.

    $ sudo apt update
    $ sudo apt upgrade
    
  5. Pengguna non-root dengan hak sudo di kedua server.

Konfigurasikan aturan Firewall

Untuk tujuan tutorial ini, kami akan menganggap Anda memiliki ufw firewall terpasang di kedua server.

Di server Odoo, kita membutuhkan port 22, 80, 443, 6010, 5432 dan 8069 untuk dibuka. 22 digunakan untuk SSH, 80 untuk HTTP, 443 untuk HTTPS, 6010 digunakan untuk komunikasi Odoo, 5432 digunakan oleh PostgreSQL dan 8069 digunakan oleh aplikasi server Odoo.

Jalankan perintah berikut untuk membuka port yang diperlukan di server Odoo.

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

Di server PostgreSQL, kita perlu membuka port 22, 6010, dan 5432. Buka menggunakan perintah yang baru saja kita bahas.

Tetapkan Nama Host

Anda dapat menggunakan alamat IP server atau menggunakan Fully Qualified Domain Names (FQDN), jika tersedia. Untuk tutorial kami, kami akan menggunakan FQDN dan untuk itu, kami perlu mengatur nama host di kedua server.

Di server Odoo, buka /etc/hosts berkas.

$ sudo nano /etc/hosts

Pastikan tampilannya seperti berikut.

127.0.0.1 	localhost
127.0.0.1	odoo.yourdomain.com		odoo
10.1.1.10	postgresql.yourdomain.com	postgresql

Di server PostgreSQL, buka file dan pastikan tampilannya seperti berikut.

127.0.0.1 	localhost
127.0.0.1	postgresql.yourdomain.com	postgresql
10.1.2.10	odoo.yourdomain.com		odoo

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

Instal dan Konfigurasi PostgreSQL

Ubuntu 20.04 dikirimkan dengan PostgreSQL 12 secara default dan kami akan menginstalnya. Jalankan perintah berikut di server PostgreSQL.

$ sudo apt install postgresql-12 postgresql-server-dev-12

Selanjutnya, kita perlu membuat pengguna database odoo.

$ sudo -u postgres createuser odoo -U postgres -dP

Opsi -u mengeksekusi perintah sebagai postgres pengguna.

Opsi -U tunjukkan nama pengguna yang akan dihubungkan sebagai.

Opsi -d memberikan izin kepada pengguna untuk membuat database.

Opsi -p meminta kata sandi pengguna baru.

Konfigurasikan Otentikasi Berbasis Host

Kami perlu memberikan izin kepada layanan PostgreSQL untuk dapat terhubung ke server Odoo.

Pertama, hentikan layanan PostgreSQL.

$ sudo systemctl stop postgresql

Buka file /etc/postgresql/12/main/pg_hba.conf untuk diedit.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Tempel baris berikut di akhir.

host		all		odoo		odoo.yourdomain.com		md5

Baris ini memberikan izin ke odoo pengguna untuk terhubung ke semua database dalam server ini. Anda juga dapat menentukan nama database daripada menggunakan all kata kunci.

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

Konfigurasi alamat Mendengarkan PostgreSQL

Selanjutnya, kita perlu mengizinkan server database untuk mendengarkan koneksi jarak jauh. Buka file /etc/postgresql/12/main/postgresql.conf untuk diedit.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Ubah baris listen_addresses dari

#listen_addresses = 'localhost' # what IP address(es) to listen on;

untuk.

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

* berarti akan mendengarkan semua alamat IP. Anda dapat mengubahnya ke alamat IP instance odoo Anda.

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

Aktifkan dan Mulai layanan PostgreSQL

Karena konfigurasi kita telah selesai, sekarang saatnya untuk memulai dan mengaktifkan layanan PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Instal Odoo

Instal dependensi dan Siapkan instalasi

Buat pengguna sistem baru untuk mengelola proses Odoo di server Odoo.

$ sudo adduser --system --home=/opt/odoo --group odoo

Kita perlu menginstal beberapa dependensi sistem tetapi pertama-tama, kita perlu mengaktifkan repositori sumber. Untuk melakukannya, buat cadangan daftar sumber asli lalu aktifkan semua repositori sumber dan perbarui daftar repositori.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Instal dependensi sistem yang diperlukan untuk penyiapan Odoo 14.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Instal Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Instal paket Less CSS menggunakan Node.

$ sudo npm install -g less less-plugin-clean-css

Unduh wkhtmltopdf paket versi 0.12.6.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Instal paket.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Untuk memastikan bahwa wkhtmltopdf berfungsi dengan benar, salin binari ke /usr/bin dan beri mereka izin yang sesuai.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Unduh File Odoo

Klon repositori Github Odoo ke sistem Anda.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Untuk tujuan kami, kami menyalin Odoo ke /opt/odoo direktori dari mana ia akan diinstal.

Menyiapkan Lingkungan Python Virtualenv

Langkah ini opsional tetapi disarankan karena lingkungan python virtual untuk Odoo akan membantu menghindari konflik dengan modul Python dari sistem Operasi, terutama saat melakukan peningkatan OS.

Untuk ini, kita akan menggunakan virtualenv .

  1. Buat virtualenv baru lingkungan untuk Odoo.

    $ python3 -m venv /home/<username>/odoo-env
    
  2. Aktifkan lingkungan virtual. Kami menciptakan lingkungan di bawah direktori home pengguna sistem. Anda bebas memilih lokasi mana pun yang Anda suka.

    $ source /home/<username>/odoo-env/bin/activate
    
  3. Perbarui PIP untuk berjaga-jaga.

    (odoo-env) $ pip3 install --upgrade pip
    
  4. Instal roda Python di lingkungan virtual.

    $ pip3 install wheel
    

Instal Ketergantungan Python

Instal dependensi Python yang diperlukan oleh Odoo 14.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

Persyaratan akan memakan waktu untuk dipasang, jadi bersabarlah.

Periksa apakah persyaratan telah diinstal dengan benar dengan memeriksa daftar modul Python yang diinstal.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Keluar dari lingkungan virtual Python.

$ deactivate

Konfigurasikan Odoo

Salin file konfigurasi default Odoo untuk membuat yang baru.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Buka file untuk diedit.

$ sudo nano /etc/odoo-server.conf

Edit file tersebut sehingga terlihat seperti berikut ini.

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

Opsi admin_passwd adalah kata sandi yang memungkinkan operasi administratif dalam GUI Odoo. Pastikan untuk memilih kata sandi yang aman.

Opsi db_host adalah FQDN atau alamat IP server PostgreSQL.

Opsi db_port disetel ke false karena port default PostgreSQL 5432 sedang digunakan. Jika Anda ingin menggunakan port lain, Anda perlu memperbarui nilai ini.

Opsi db_user adalah nama pengguna PostgreSQL.

Opsi db_password adalah kata sandi pengguna 'odoo' PostgreSQL yang kita buat sebelumnya di server PostgreSQL.

Opsi addons_path adalah jalur Addons default. Anda juga dapat menambahkan jalur khusus untuk Addons yang memisahkannya dengan koma.

Opsi xmlrpc_port adalah port tempat Odoo mendengarkan.

Buat layanan Odoo

Untuk memastikan Odoo tetap berjalan bahkan setelah sistem dimulai ulang, kita perlu membuat layanan untuk itu.

Buat file /lib/systemd/system/odoo-server.service dan buka untuk diedit.

$ sudo nano /lib/systemd/system/odoo-server.service

Tempelkan kode berikut di dalamnya.

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home/<username>/odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Ganti /home/<username> dengan lokasi yang Anda pilih untuk menginstal Python Virtual Environment.

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

Setel izin File

Setel izin pada odoo-server.service file sehingga hanya pengguna Odoo yang dapat membaca atau menjalankannya.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Tetapkan kepemilikan pada lingkungan Python dan direktori instalasi Odoo.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home/<username>/odoo-env

Batasi file konfigurasi Odoo.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Mulai server Odoo

Mulai dan aktifkan server Odoo.

$ sudo systemctl start odoo-server
$ sudo systemctl enable odoo-server

Periksa status server.

$ sudo systemctl status odoo-server

Di browser Anda, buka URL http://<yourIPaddress>:8069 atau http://odoo.yourdomain.com:8069 . Jika semuanya berfungsi dengan baik, Anda akan melihat layar pembuatan basis data Odoo.

Isi semua bidang. Periksa Demo Data untuk mengisi database dengan data sampel, lalu klik Buat database tombol.

Selanjutnya, Anda akan diperlihatkan daftar aplikasi yang dapat Anda pilih dan pilih.

Pertama kali Anda membuat database, halaman add-on akan membutuhkan waktu untuk dimuat, jadi jangan segarkan halaman.

Instal dan Konfigurasi Nginx

Sampai sekarang, kami telah menggunakan server Odoo untuk menjalankan stack. Tapi idealnya, lebih baik menjalankannya di Nginx menggunakan proxy karena itu akan memungkinkan kita untuk menginstal SSL di dalamnya.

Instal Nginx.

$ sudo apt install nginx

Untuk menjalankannya melalui Nginx, kita perlu menjalankan Odoo di localhost. Untuk mengubahnya, hentikan layanan Odoo.

$ sudo systemctl stop odoo-server

Buka file konfigurasi server Odoo.

$ sudo nano /etc/odoo-server.conf

Tambahkan baris berikut ke dalamnya.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Buat file konfigurasi Nginx untuk Odoo.

$ sudo nano /etc/nginx/sites-available/odoo.conf

Tempelkan kode di bawah ini.

#odoo server
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

# http -> https
server {
   listen 80;
   server_name odoo.yourdomain.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.yourdomain.com;
 proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for odoo proxy mode
 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/odoo.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/privkey.pem;
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
 ssl_session_tickets off;
 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
 ssl_prefer_server_ciphers off;
 ssl_dhparam /etc/ssl/certs/dhparam.pem;

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

 # Redirect longpoll requests to odoo longpolling port
 location /longpolling {
 proxy_pass http://odoochat;
 }

 # Redirect requests to odoo backend server
 location / {
   proxy_redirect off;
   proxy_pass http://odoo;
 }

 # common gzip
 gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

Aktifkan file konfigurasi ini dengan menautkannya ke sites-enabled direktori.

$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/

Uji konfigurasi Nginx.

$ sudo nginx -t

Instal SSL

Kami akan menginstal SSL menggunakan layanan Let's Encrypt.

Untuk itu, instal Certbot.

$ sudo apt install certbot

Hentikan Nginx karena akan mengganggu proses Certbot.

$ sudo systemctl stop nginx

Menghasilkan sertifikat. Kita juga perlu membuat sertifikat DHParams.

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Kami juga perlu menyiapkan tugas cron untuk memperbarui SSL secara otomatis. Untuk membuka editor crontab, jalankan perintah berikut.

$ sudo crontab -e

Rekatkan baris berikut di bagian bawah.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

Pekerjaan cron di atas akan menjalankan certbot pada pukul 2:25 pagi setiap hari. Anda dapat mengubahnya menjadi apa pun yang Anda inginkan.

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Mulai Odoo

Sekarang semuanya sudah diatur, kita dapat memulai server Odoo lagi.

$ sudo systemctl start odoo-server

Luncurkan Odoo di browser Anda melalui https://odoo.yourdomain.com . Anda akan mendapatkan layar yang dijelaskan sebelumnya. Masukkan detail yang diperlukan untuk membuat database dan Anda harus masuk ke Odoo dan melihat layar seperti ini.

Kesimpulan

Ini menyimpulkan tutorial kami tentang menginstal Odoo di server Ubuntu 20.04. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Ubuntu
  1. Bagaimana Cara Menginstal Perangkat Lunak Audacity Di Ubuntu??

  2. Instal Odoo 9 di Ubuntu 14.04

  3. Cara menginstal Odoo 15 di Ubuntu 22.04

  1. Cara Menginstal Odoo di Ubuntu

  2. Cara Menginstal Odoo 15 di Ubuntu 20.04

  3. Cara menginstal Odoo 13 di Ubuntu 20.04

  1. Cara Menginstal Odoo 11 di Ubuntu 16.04

  2. Cara Menginstal Odoo 13 di Ubuntu 18.04

  3. Cara Menginstal Odoo 14 di Ubuntu 20.04