Instalasi Multi Odoo Ubuntu 16.04 LTS¶
Persyaratan
- VPS Ubuntu 16.04 LTS
- private & public SSH key untuk otentikasi
- Lakukan hardening tahap awal dengan menggunakan skrip praUbuntu1604-do.sh
- Jika ingin gunakan skrip terminal-extras.sh untuk mempermudah interaksi dengah CLI/terminal
Hardening tahap awal¶
# dari mesin sendiri
ssh -v -i ~/.ssh/ssh-private-key [email protected]
# server
nano /tmp/pre.sh
# tempelkan praUbuntu1604-do.sh
bash /tmp/pre.sh
# yang perlu dimasukkan manual adalah:
# - sandi root
# - sandi pengguna
# - ssh-public-key
# Aktifkan firewall
sudo ufw enable
Setelah selesai tanpa menutup sesi pengguna root yang masih terbuka lakukan koneksi dengan pengguna biasa non-sudo yang baru dibuat ssh -v -i ~/.ssh/ssh-private-key [email protected].
Jika berhasil restart mesin dengan sudo shutdown -r now. Hardening tahap awal sudah selesai.
Persiapan instalasi Odoo¶
Alat tambahan dan basis data¶
#
sudo apt update && sudo apt -y upgrade
#
sudo apt install -y git wkhtmltopdf python-pip python-dev \
python-virtualenv libevent-dev gcc libjpeg-dev libxml2-dev \
libssl-dev libsasl2-dev node-less libldap2-dev libxslt-dev
# Instalasi PostgreSQL
sudo apt install -y postgresql-9.5 postgresql-server-dev-9.5
sudo systemctl enable postgresql.service
#
sudo systemctl start postgresql.service
# penentuan nama instalasi layanan
instalasi="smarthr"
# Membuat pengguna dan direktori bagi instalasi tiap Odoo
sudo adduser --system --group $instalasi --home /opt/$instalasi
# Membuat pengguna PostgreSQL untuk masing-masing Odoo
sudo su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser $instalasi"
# su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser odoo"
Install Odoo¶
Odoo versi 10¶
# proses untuk Odoo 10
sudo su - $instalasi -s /bin/bash
# penentuan nama instalasi layanan
instalasi="smarthr"
# Kloning dari repo
git clone https://www.github.com/odoo/odoo --depth 1 --branch 10.0 --single-branch /opt/$instalasi
# membuat direktori addons tambahan
mkdir -p /opt/$instalasi/custom-addons
# Gunakan virtual environment untuk instalasi
cd /opt/$instalasi
virtualenv ./venv
. venv/bin/activate
pip install -r requirements.txt
exit
Berkas konfigurasi Odoo 10¶
# membuat direktori konfigurasi odoo
sudo mkdir -p /etc/odoo
# membuat berkas konfigurasi odoo
sudo nano /etc/odoo/$instalasi.conf
[options]
# addons
addons_path = /opt/$instalasi/addons,/opt/$instalasi/custom-addons
# general
lang = en_US
timezone = Asia/Jakarta
;demo = {}
dev_mode = True
debug_mode = True
reportgz = True
server_wide_modules = web,web_kanban
csv_internal_sep = ,
# db
admin_passwd = sandi_acak_aman_anda
db_host = False
db_port = 5432
db_user = $instalasi
db_password = False
db_template = template1
;dbfilter = ^%h$
db_name = False
without_demo = True
list_db = True
# performance
auto_reload = True
db_maxconn = 64
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 120
limit_time_real = 240
limit_time_real_cron = -1
max_cron_threads = 2
workers = 3
osv_memory_age_limit = 1.0
osv_memory_count_limit = False
# logs
logfile = /var/log/odoo/$instalasi.log
syslog = False
logrotate = True
log_level = info
log_db = True
log_db_level = warning
log_handler = :INFO
# proxy and connectivity
;proxy_mode = True
xmlrpc = True
xmlrpc_interface = 127.0.0.1
xmlrpc_port = 8069
longpolling_port = 8072
xmlrpcs = True
xmlrpcs_interface = 127.0.0.1
xmlrpcs_port = 8072
netrpc_interface = 127.0.0.1
Skrip SystemD
#
sudo -i
instalasi="smarthr"
#
cat << EOF > /lib/systemd/system/$instalasi.service
[Unit]
Description=Odoo 10 - $instalasi
Requires=postgresql.service
After=postgresql.service
[Service]
Type=simple
PermissionsStartOnly=true
User=$instalasi
Group=$instalasi
SyslogIdentifier=$instalasi
ExecStart=/opt/$instalasi/venv/bin/python2 /opt/$instalasi/odoo-bin -c /etc/odoo/$instalasi.conf
[Install]
WantedBy=multi-user.target
EOF
#
exit
Finalisasi Odoo 10¶
# membuka port layanan
portInstalasi="8079"
#
sudo ufw allow $portInstalasi/tcp
sudo ufw reload
# menyiapkan direktori log pertama kali
sudo mkdir -p /var/log/odoo
sudo touch /var/log/odoo/$instalasi.log
sudo chown root:$instalasi /var/log/odoo/$instalasi.log
sudo chmod g+w /var/log/odoo/$instalasi.log
# Mengatur agar layanan odoo10 berjalan saat booting
sudo systemctl enable $instalasi.service
# Menjalankan layanan odoo10
sudo systemctl start $instalasi.service
sudo systemctl status $instalasi.service
Odoo versi 8¶
# login sebagai pengguna odoo8
sudo su - odoo8 -s /bin/bash
# Kloning dari repo
git clone https://www.github.com/odoo/odoo --depth 1 --branch 8.0 --single-branch /opt/odoo8
# Gunakan virtual environment untuk instalasi
cd /opt/odoo8
virtualenv ./venv
source ./venv/bin/activate
pip install -r requirements.txt
exit
Berkas konfigurasi Odoo 8¶
# sudo mkdir -p /etc/odoo
sudo nano /etc/odoo/odoo8.conf
[options]
# addons
addons_path = /opt/odoo8/addons
# db
admin_passwd = sandi_acak_aman_anda
db_host = False
db_port = False
db_user = odoo8
db_password = False
# performance
limit_time_real_cron = -1
max_cron_threads = 2
workers = 2
# logs
logfile = /var/log/odoo/odoo8.log
syslog = False
logrotate = True
log_level = info
log_db_level = warning
log_handler = :INFO
# proxy and connectivity
xmlrpc_port = 8008
longpolling_port = 8078
Skrip SystemD
sudo nano /lib/systemd/system/odoo8.service
[Unit]
Description=Odoo 8
Requires=postgresql.service
After=postgresql.service
[Service]
Type=simple
PermissionsStartOnly=true
User=odoo8
Group=odoo8
SyslogIdentifier=odoo8
ExecStart=/opt/odoo8/venv/bin/python2 /opt/odoo8/openerp-server -c /etc/odoo/odoo8.conf
[Install]
WantedBy=multi-user.target
Finalisasi Odoo 8¶
# membuka port
sudo ufw allow 8008/tcp
# menyiapkan direktori log
# sudo mkdir -p /var/log/odoo
sudo touch /var/log/odoo/odoo8.log
sudo chown root:odoo8 /var/log/odoo/odoo8.log
sudo chmod g+w /var/log/odoo/odoo8.log
# Mengatur agar layanan berjalan saat booting
sudo systemctl enable odoo8.service
# Menjalankan layanan
sudo systemctl start odoo8.service
Instalasi modul addons OCA¶
instalasi="smarthr"
sudo su - $instalasi -s /bin/bash
. venv/bin/activate
#
python -c "import openerp"
python -c "import odoo"
#
pip install -r requirements.txt
# pip install --upgrade -r requirements.txt
pip install --upgrade pip
pip install -e .
#
pip list | grep odoo
export PIP_FIND_LINKS="https://wheelhouse.odoo-community.org/oca-10.0"
pip install odoo-autodiscover
# pip install odoo-addon-base_import_async --find-links=https://wheelhouse.odoo-community.org/oca-10.0
Rujukan:
- https://github.com/acsone/odoo-autodiscover/issues/1
- https://pypi.python.org/pypi/odoo-autodiscover
- https://odoo-community.org/blog/oca-news-1/post/installing-oca-addons-the-easy-way-32
- https://www.odoo.com/documentation/8.0/setup/install.html#setup-install-source
- https://wheelhouse.odoo-community.org/
- https://www.rosehosting.com/blog/install-multiple-odoo-instances-on-a-single-machine/
Membuat DB baru untuk instance baru¶
#
createdb smartiso.synergysolusi.com
psql -c 'GRANT ALL PRIVILEGES ON DATABASE "smartiso.synergysolusi.com" TO odoo8'
psql -c 'ALTER DATABASE "smartiso.synergysolusi.com" OWNER TO odoo8'
#
Membuat configurasi nginx untuk subdomain pada instance Odoo¶
sudo -i
oldDomain="satas.smarterp.proxsisgroup.com"
newDomain="demo.smarthr.proxsisgroup.com"
cd /etc/nginx/sites-available
cp $oldDomain.conf $newDomain.conf
sed 's/$oldDomain/$newDomain/g' smartiso.synergysolusi.com.conf
touch /var/log/nginx/$newDomain.{access,error}.log
chmod -v 640 /var/log/nginx/newDomain.{access,error}.log
chown -v www-data:adm /var/log/nginx/$newDomain.{access,error}.log
ln -s /etc/nginx/sites-available/$newDomain.conf /etc/nginx/sites-enabled/$newDomain
#
systemctl restart postgresql $newDomain nginx
#
Memperbarui paket pip yang terinstall¶
pip install pip-upgrader
pip-upgrade