[Odoo 14] Instalasi Odoo 14 Pada Ubuntu Server 20.04

Bismillah …

Ada banyak cara untuk menginstall Odoo, dari mulai yang simple sampai yang complex. InsyaAllah dalam kesempatan kali ini, penulis akan menjelaskan tahapan instalasi Odoo yang biasa penulis lakukan. Sebelum kita menginstall, ada yang harus di persiapkan yaitu Server itu sendiri. Dari mulai dedicated, colocation sampai cloud server semua memiliki kelebihan dan kekurangan. Kali ini penulis memilih untuk menggunakan cloud server. Ada banyak penyedia cloud server yang terkenal seperti :

1. Amazon Web Services (AWS)
2. Google Cloud
3. Alibaba
4. Microsoft Azure
5. Digital Ocean
6. Linode

Akan tetapi untuk tutorial ini, penulis memilih Exabytes yang relatif mudah prosesnya (tidak menggunakan Credit Card, dll) dan respon CS yang cepat dengan bahasa indonesia.

Setelah kita melakukan pembayaran, maka kita akan menerima email informasi yang berkaitan dengan server terkait seperti IP Address, Port, Username, Password, dll. Selanjutnya kita tinggal melakukan SSH agar kita bisa meremote server tersebut dan melakukan penginstalan Odoo. Contoh perintah SSH seperti berikut :

ssh root@207.180.242.36

Setelah kita berhasil login kedalam server cloud kita, maka selanjutnya adalah menambahkan repository default dengan repository dalam negeri seperti Kambing UI, Ftp ITB, Kebo PENS dll. Kali ini saya memilih repository Kambing UI. Kita tambahkan repo dengan perintah :

nano /etc/apt/sources.list

# # # replace isi file dengan baris dibawah ini # # #

deb http://kebo.pens.ac.id/ubuntu/ focal main restricted universe multiverse
deb http://kebo.pens.ac.id/ubuntu/ focal-updates main restricted universe multiverse
deb http://kebo.pens.ac.id/ubuntu/ focal-security main restricted universe multiverse
deb http://kebo.pens.ac.id/ubuntu/ focal-backports main restricted universe multiverse
deb http://kebo.pens.ac.id/ubuntu/ focal-proposed main restricted universe multiverse
 
deb http://security.ubuntu.com/ubuntu focal-security main restricted 
deb http://security.ubuntu.com/ubuntu focal-security universe 
deb http://security.ubuntu.com/ubuntu focal-security multiverse

# # #

Untuk menyimpannya tekan Ctrl+O lalu Enter
Untuk keluar dari editor nano tekan Ctrl+X
Lakukan kedua hal ini jika selesai membuka editor nano pada point-point berikutnya

apt update

Setelah kita berhasil mengganti reporsitory dan mengupdatenya, maka selanjutnya ikuti tahapan-tahapan berikut ini :

A. Membuat User Odoo Untuk Ubuntu

adduser odoo
usermod -aG sudo odoo
su - odoo

B. Install Database

sudo apt install -y postgresql

C. Membuat User Odoo Untuk Postgres

sudo su postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
exit

D. Download Source Odoo Community v14

wget https://nightly.odoo.com/14.0/nightly/src/odoo_14.0.latest.tar.gz

E. Tentukan Path Source Odoo

sudo mkdir /opt/odoo
cd /opt/odoo
sudo tar xvf ~/odoo_14.0.latest.tar.gz
sudo mv odoo-14.0.GANTI_SESUAI_NAMA_FOLDER/ odoo-server
sudo mkdir addons
sudo chown -R odoo: *

F. Install Library Odoo

sudo apt install -y git python3-pip python3-polib 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

sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6-1.bionic_amd64.deb

sudo pip3 install -r /opt/odoo/odoo-server/requirements.txt

G. Membuat File Config Odoo

sudo nano /etc/odoo-server.conf

# # # replace isi file dengan baris dibawah ini # # #

[options]
admin_passwd = superadmin
db_host = False
db_port = False
db_user = odoo
db_password = odoo
logfile = /var/log/odoo/odoo-server.log
addons_path = /opt/odoo/odoo-server/odoo/addons,/opt/odoo/addons

# # #

Catatan : Jangan lupa gunakan password superadmin untuk membuat database baru

H. Membuat File Log

sudo mkdir /var/log/odoo
sudo touch /var/log/odoo/odoo-server.log
sudo chown -R odoo:odoo /var/log/odoo

I. Membuat Service Odoo

sudo cp /opt/odoo/odoo-server/setup/odoo /opt/odoo/odoo-server/odoo-bin
sudo chmod a+x /opt/odoo/odoo-server/odoo-bin

sudo nano /etc/systemd/system/odoo-server.service

# # # replace isi file dengan baris dibawah ini # # #

[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target

# # #

sudo systemctl daemon-reload
sudo systemctl enable odoo-server

J. Jalankan Server

sudo systemctl start odoo-server

sudo systemctl status odoo-server # melihat status service odoo
sudo systemctl stop odoo-server # menghentikan service odoo
sudo systemctl restart odoo-server # merestart service odoo

K. Install Free SSL

SSL merupakan kebutuhan yang wajib bagi website kita, ada beberapa issue di Odoo jika kita tidak menggunakan SSL diantaranya adalah terciptanya duplicate data transaksi pada waktu yang sama. Oleh karna itu, selain alasan security kita juga harus menggunakan SSL pada server Odoo untuk mengatasi issue di atas dan lainnya. Ada banyak SSL yang gratis dan powerfull seperti Let’s Encrypt, Comodo, Cloudflare, dll. Untuk tutorial kali ini, saya memilih Let’s Encrypt yang sudah biasa saya gunakan. Tahapannya seperti dibawah ini :

sudo apt install -y nginx
sudo apt install -y python3-certbot-nginx
sudo apt install -y software-properties-common

sudo rm /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/odoo-server

# # # replace isi file dengan baris dibawah ini # # #

# Odoo servers
upstream odoo-server {
 server 127.0.0.1:8069;
}

upstream odoo-chat {
 server 127.0.0.1:8072;
}

# HTTP -> HTTPS
server {
    listen 80;
    server_name ismata.co.id;

    include snippets/letsencrypt.conf;
    return 301 https://ismata.co.id$request_uri;
}

# WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name ismata.co.id;

    ssl_certificate /etc/letsencrypt/live/ismata.co.id/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ismata.co.id/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/ismata.co.id/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://ismata.co.id$request_uri;
}

server {
    listen 443 ssl http2;
    server_name ismata.co.id;

    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/ismata.co.id/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ismata.co.id/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/ismata.co.id/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://odoo-chat;
    }

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

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

    # Gzip
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

# # #

sudo ln -s /etc/nginx/sites-available/odoo-server /etc/nginx/sites-enabled/

sudo systemctl restart nginx
sudo certbot --nginx -d ismata.co.id
sudo systemctl restart nginx
sudo systemctl restart odoo-server
sudo certbot renew --dry-run

Jangan lupa untuk mengganti ismata.co.id dengan nama domain yang diinginkan.

Alhamdulillah akhirnya kita bisa menyelesaikan tahapan instalasi Odoo 14 pada Ubuntu Server 20.04. Untuk pesan error, saran dan kritik yang membangun silahkan disampaikan pada kolom komentar. Semoga bermanfaat.

Wassalamu’alaikum …

2 thoughts on “[Odoo 14] Instalasi Odoo 14 Pada Ubuntu Server 20.04

Leave a comment