Lewati ke isi

Panduan Instalasi Odoo 10

Proses instalasi Odoo akan lebih banyak difokuskan dengan menggunakan metode paket instalasi untuk distro berbasis debian (.deb). Seperti yang dijelaskan pada laman instalasi Packaged installer, metode ini dipilih karena kemudahan dalam proses pembaruan, dan juga penggunaan dalam jangka waktu yang lama.

Proses instalasi Ubuntu 16.04 LTS

Sekilas tentang LTS

LTS adalah kepanjangan dari Long Term Support yang berarti Ubuntu versi *.LTS memiliki masa perwatan cukup panjang, rata-rata 4 tahun semenjak versi tersebut dirilis.

Memulai server pertama kali

Setelah VPS dibuat, dan kita memiliki akses ke server jalankan perintah-perintah di bawah sercara berurutan. Rangkaian perintah ini dapat dikumpulkan dan dijadikan satu skrip bash yang dapat disimpan lalu dieksekusi dengan sudo bash postServerSetup.sh untuk menyederhanakan

Paket .deb

Versi yang digunakan adalah Community atau dalam dunia Open source sering kali disebut dengan Community Edition (CE)

#!/bin/bash
# instalasi
# jalankan perintah di bawah sebagai pengguna root `sudo su`
sudo -i
cd /tmp
wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/10.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
apt update && apt install odoo npm

## menautkan nodejs ke node, agar dapat menjalankan dengan perintah node
ln -s /usr/bin/nodejs /usr/bin/node
## instalasi less via npm
npm install -g less less-plugin-clean-css

# membuka aplikasi odoo melalui peramban
ufw allow 8069
# setelah instalasi selesai silakan kunjungi domain atau alamat ip dengan port 8069 http://odoo2.proxsis.com

exit

# memberikan akses bagi pengguna odoo agar dapat menjalankan perintah sudo
#sudo su
#echo 'odoo ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/odoo
#echo 'postgres ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/postgres
#exit

#--------------------------------------------------
# Install Wkhtmltopdf if needed
#--------------------------------------------------
# wkhtmltopdf
#wget -O- http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
sudo apt update && sudo apt install gdebi -y
sudo gdebi --n http://download.gna.org/wkhtmltopdf/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin
sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin

# lokasi berkas konfigurasi /etc/odoo/odoo.conf
# perintah restart layanan odoo
service odoo restart

Setelah proses instalasi selesai, secara otomatis ini akan membuat pengguna odoo dan postgres. Untuk mengakses masing-masing pengguna tersebut, jalankan perintah sudo su - odoo -s /bin/bash, ganti odoo dengan postgres untuk masuk dengan penggunan postgres

Lokasi odoo dan postgresql

/usr/lib/python2.7/dist-packages/odoo
/etc/odoo/odoo.conf #config
/usr/bin/odoo
/etc/postgresql/9.5/main #config
/var/lib/postgresql/9.5/main #data
/var/run/postgresql #socket

/etc/postgresql-common/createcluster.conf
/etc/logrotate.d/postgresql-common

# direktori data
/var/lib/odoo
/var/lib/postgresql

odoo.conf

[options]
; This is the password that allows database operations:
admin_passwd =
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password =
dbfilter = ^proxsis.*$
addons_path = /usr/lib/python2.7/dist-packages/odoo/addons,/var/lib/odoo/smartiso-moduls/addons
;manambahkan berkas log untuk melacak status server
logfile = /var/log/odoo/odoo-server.log

Kode sumber .git

#!/bin/bash
# klon dari sumber
adduser --system --home=/opt/odoo --group odoo
echo 'odoo ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/odoo
sudo su - odoo -s /bin/bash
git clone https://github.com/odoo/odoo --depth 1 --branch 10.0 --single-branch /opt/odoo/odoo-server
exit

# python
## memeriksa versi python yang ada, disarankan lebih dari 2.7.9. Versi 3.x tidak disarankan
python --version

#--------------------------------------------------
# postgresql
#--------------------------------------------------
apt install postgresql -y
# membuat pengguna odoo
#sudo su - odoo -s /bin/bash
#sudo su - postgres -c "createuser -s $USER"
sudo su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt $USER"
# password=Proxsis@odoo
#createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
exit

#--------------------------------------------------
# dependencies
#--------------------------------------------------
apt install -y \
    python-dev \
    postgresql-contrib \
    postgresql-server-dev-9.5 \
    libxml2-dev \
    libxslt1-dev \
    libevent-dev \
    libsasl2-dev \
    libldap2-dev

#--------------------------------------------------
# pip
#--------------------------------------------------
apt install python-pip -y
easy_install pip
# pip install -r /opt/odoo/odoo-server/requirements.txt
pip install -r /usr/lib/python2.7/dist-packages/odoo-10.0_20170508.egg-info/requires.txt
pip install psycogreen

#--------------------------------------------------
# npm
#--------------------------------------------------
## menautkan nodejs ke node, agar dapat menjalankan perintah dengan node
apt install nodejs npm -y
ln -s /usr/bin/nodejs /usr/bin/node
npm install -g less less-plugin-clean-css

#--------------------------------------------------
# wkhtmltopdf
#--------------------------------------------------
wget https://nightly.odoo.com/extra/wkhtmltox-0.12.1.2_linux-jessie-amd64.deb
dpkg -i wkhtmltox-0.12.1.2_linux-jessie-amd64.deb
apt install -f -y
dpkg -i wkhtmltox-0.12.1.2_linux-jessie-amd64.deb
cp /usr/local/bin/wkhtmltopdf /usr/bin
ln -s /usr/local/bin/wkhtmltopdf /usr/bin
ln -s /usr/local/bin/wkhtmltoimage /usr/bin

Nginx frontend

Langkah ini untuk mengarahkan permintaan port 8069 ke port standar http (80) atau https (443).

sudo su
# Repositori nginx
apt install apt-transport-https lsb-release ca-certificates
wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo "deb http://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx" > /etc/apt/sources.list.d/nginx.list
exit

## Install Nginx
sudo apt update
sudo apt install nginx -y
sudo /etc/init.d/nginx start
sudo nginx -v # menguji versi yang digunakan

Pengaturan Nginx dan FastCGI

nginx.conf

Buka berkas konfigurasi Nginx

sudo chown :deploy /etc/nginx/nginx.conf
sudo chmod g+w /etc/nginx/nginx.conf
sudo nano /etc/nginx/nginx.conf

# masuk sebagai root
# menyunting berkas konfigurasi bawaan nginx
nano /etc/nginx/sites-available/wow.proxsis.com.conf
# nano /etc/nginx/sites-available/odoo2-dev.proxsis.com
# salin rekatkan isi dari berkas nginx-odoo2.proxsis.com

Let’s Encrypt

#
sudo add-apt-repository ppa:certbot/certbot
#
sudo apt update
#
sudo apt install certbot
sudo apt-get install letsencrypt
#
#
sudo nano /etc/nginx/sites-available/pgs.proxsis.com.conf
#
    location ~ /.well-known {
        allow all;
    }
#
sudo nginx -t
#
sudo /etc/init.d/nginx restart
#
sudo certbot certonly --agree-tos --email [email protected] --webroot --webroot-path=/usr/share/nginx/html -d wow.proxsis.com
#
sudo mkdir /etc/nginx/ssl

#
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

# auto renew with crontab
sudo crontab -e
# tambahkan
15 3 * * * /usr/bin/certbot renew --quiet --renew-hook "/bin/systemctl reload nginx"
#
sudo /etc/init.d/cron reload

# membuat berkas log
touch /var/log/nginx/odoo2.access.log
touch /var/log/nginx/odoo2.error.log

# aktifkan blok server dengan membuat tautan simbolik
ln -s /etc/nginx/sites-available/wow.proxsis.com.conf /etc/nginx/sites-enabled/wow.proxsis.com

# menguji jika konfigurasi memiliki kesalahan
sudo nginx -t
# jika sudah tidak ada
sudo /etc/init.d/nginx restart

TODO

  1. Logrotate
  2. DB & filestore backup
  3. SSL renewal