1. Update VPS & Install Dependensi

bash

sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-dev libpq-dev build-essential wget git \
                 libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev \
                 libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev \
                 libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev -y

2. Install PostgreSQL

bash

sudo apt install postgresql -y
sudo -u postgres createuser -s odoo

3. Buat User Odoo

bash

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

4. Install Odoo Source

bash

sudo su - odoo
git clone https://www.github.com/odoo/odoo --branch 17.0 odoo17
cd odoo17
pip3 install -r requirements.txt
exit

5. Buat File Konfigurasi Odoo

ERP1 (/etc/odoo17-erp1.conf):

Code

[options]
addons_path = /opt/odoo/odoo17/addons
db_user = odoo
xmlrpc_port = 8069

ERP2 (/etc/odoo17-erp2.conf):

Code

[options]
addons_path = /opt/odoo/odoo17/addons
db_user = odoo
xmlrpc_port = 8070

6. Buat Service Systemd

ERP1 (/etc/systemd/system/odoo17-erp1.service):

Code

[Unit]
Description=Odoo ERP1
After=network.target

[Service]
User=odoo
ExecStart=/usr/bin/python3 /opt/odoo/odoo17/odoo-bin -c /etc/odoo17-erp1.conf
Restart=always

[Install]
WantedBy=multi-user.target

ERP2 (/etc/systemd/system/odoo17-erp2.service):

Code

[Unit]
Description=Odoo ERP2
After=network.target

[Service]
User=odoo
ExecStart=/usr/bin/python3 /opt/odoo/odoo17/odoo-bin -c /etc/odoo17-erp2.conf
Restart=always

[Install]
WantedBy=multi-user.target

Aktifkan service:

bash

sudo systemctl daemon-reload
sudo systemctl enable odoo17-erp1.service odoo17-erp2.service
sudo systemctl start odoo17-erp1.service odoo17-erp2.service

7. Konfigurasi Nginx Reverse Proxy

bash

sudo apt install nginx -y

ERP1 (/etc/nginx/sites-available/erp1):

Code

server {
    listen 80;
    server_name erp1.domain.com;

    location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

ERP2 (/etc/nginx/sites-available/erp2):

Code

server {
    listen 80;
    server_name erp2.domain.com;

    location / {
        proxy_pass http://127.0.0.1:8070;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Aktifkan konfigurasi:

bash

sudo ln -s /etc/nginx/sites-available/erp1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/erp2 /etc/nginx/sites-enabled/
sudo systemctl restart nginx

8. Tambahkan DNS Record

  • erp1.domain.com → A record ke IP VPS
  • erp2.domain.com → A record ke IP VPS

9. SSL/TLS (Opsional tapi disarankan)

bash

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d erp1.domain.com -d erp2.domain.com

Hasil Akhir

  • http://erp1.domain.com → Odoo instance pertama (port 8069)
  • http://erp2.domain.com → Odoo instance kedua (port 8070)
  • Bisa jalan paralel di satu VPS dengan subdomain berbeda.
Categories: Blog

About the Author

ProGraha

Leave a Reply

Your email address will not be published. Required fields are marked *