Minta Saran & Panduan Install Odoo 12 untuk Lingkungan Produksi
Diposting pada 26 Mar 2026, 19:55
Ditanyakan oleh: Arif
Halo teman-teman praktisi Odoo di sini!
Saya Arif dari tim IT di perusahaan X. Saat ini kami sedang ada rencana untuk implementasi Odoo 12 untuk beberapa departemen. Nah, kebetulan saya ditugaskan untuk menyiapkan infrastrukturnya, khususnya di bagian instalasi Odoo 12-nya ini.
Terus terang, sebelumnya saya lebih sering pakai Odoo yang sudah jadi atau deployment via hosting service. Untuk instalasi dari awal di server sendiri ini, saya masih butuh pencerahan nih.
Rencananya mau setup di server Ubuntu 20.04 yang baru di-provisioning. Saya ingin bertanya, kira-kira langkah-langkah instalasi Odoo 12 yang paling recommended untuk lingkungan produksi itu seperti apa ya?
Apakah lebih baik install dari source code langsung, atau ada cara lain yang lebih stabil dan mudah maintenance-nya?
Biasanya dependency apa saja yang perlu disiapkan? (misalnya Python versi berapa, PostgreSQL versi berapa, dsb.)
Ada tips khusus untuk konfigurasi biar performanya optimal dan keamanannya terjaga?
Mungkin ada rekan-rekan yang punya pengalaman instalasi Odoo 12 di server sendiri dan bisa sharing best practicenya? Atau mungkin ada panduan langkah demi langkah yang biasa dipakai?
Terima kasih banyak sebelumnya atas bantuannya!
Balasan (1)
Admin Odoo ForumAdmin & AI Support26 Mar 2026, 19:56
Halo Mas Arif, Sobat Odoo dari tim IT perusahaan X! Wah, keren banget nih rencana implementasi Odoo 12 untuk beberapa departemen. Senang bisa bantu mencerahkan soal setup infrastruktur, apalagi ini untuk lingkungan produksi. Topik yang pas banget untuk kita diskusikan di komunitas Odoo Indonesia!
Memang beda rasanya ya antara pakai Odoo yang sudah jadi dengan install sendiri dari nol. Tapi jangan khawatir, ini pengalaman berharga yang akan sangat berguna. Untuk Odoo 12 di Ubuntu 20.04, ada beberapa hal yang perlu diperhatikan, terutama soal kompatibilitas versi.
---
Oke, langsung saja ya, ini saran dan panduan instalasi Odoo 12 yang paling direkomendasikan untuk lingkungan produksi:
### 1. Metode Instalasi yang Direkomendasikan: Dari Source Code dengan Virtual Environment
Untuk lingkungan produksi, saya sangat merekomendasikan instalasi Odoo 12 dari source code langsung. Kenapa?
Fleksibilitas Tinggi: Memberikan Anda kontrol penuh atas versi Odoo, konfigurasi, dan penyesuaian. Ini sangat penting untuk produksi.
Stabilitas: Anda bisa memilih branch 12.0 yang stabil, dan mengelola dependency Python di lingkungan terisolasi.
Maintenance Mudah: Dengan virtual environment, dependency Odoo tidak akan bercampur dengan paket sistem lainnya, sehingga memudahkan update atau troubleshooting di masa depan.
Optimalisasi: Lebih mudah untuk menerapkan konfigurasi performa dan keamanan yang spesifik.
Meskipun ada cara lain seperti Docker, untuk yang baru pertama kali setup di server sendiri, instalasi langsung dari source code dengan virtual environment adalah jalur yang solid dan banyak didokumentasikan.
---
### 2. Dependency Utama yang Perlu Disiapkan
Ini bagian paling krusial, Mas Arif, karena Ubuntu 20.04 itu relatif baru dibandingkan Odoo 12, jadi ada penyesuaian di versi Python dan PostgreSQL-nya:
Sistem Operasi: Ubuntu 20.04 LTS (Focal Fossa). Pastikan sudah di-update (`sudo apt update && sudo apt upgrade`).
Python: Odoo 12 membutuhkan Python 3.5 atau 3.6. Ini PENTING karena Ubuntu 20.04 secara default datang dengan Python 3.8. Anda perlu menginstal Python 3.6 secara terpisah (misalnya menggunakan PPA `deadsnakes` atau kompilasi dari source), lalu membuat Python Virtual Environment menggunakan Python 3.6 tersebut.
PostgreSQL: Odoo 12 bekerja optimal dengan PostgreSQL 10 atau 11. Ubuntu 20.04 biasanya menyediakan PostgreSQL 12 atau 13. Sama seperti Python, Anda mungkin perlu menambahkan PPA PostgreSQL untuk mendapatkan versi 10 atau 11, atau menginstal secara manual. Saya sarankan versi 11 jika memungkinkan.
wkhtmltopdf: Ini penting untuk generate laporan PDF di Odoo. Versi yang paling stabil dan kompatibel dengan Odoo 12 adalah wkhtmltopdf 0.12.5 (dengan Qt patched). Pastikan Anda mengunduh versi yang sesuai dengan arsitektur server Ubuntu Anda.
Server Web (Reverse Proxy): Nginx atau Apache. Nginx lebih sering digunakan karena performanya yang ringan dan cepat untuk reverse proxy.
System Packages Umum:
`build-essential`
`git`
`libpq-dev` (untuk PostgreSQL)
`libxml2-dev`, `libxslt1-dev` (untuk lxml)
`libjpeg-dev`, `libpng-dev`, `libwebp-dev`, `libtiff5-dev`, `liblcms2-dev`, `libfreetype6-dev` (untuk Pillow/gambar)
`zlib1g-dev`
`libldap2-dev`, `libsasl2-dev` (untuk LDAP, jika dibutuhkan)
`libssl-dev`
`python3-pip`, `python3-dev` (untuk tool Python dan development headers)
Python Libraries: Setelah virtual environment aktif, Anda akan menginstal ini menggunakan `pip install -r requirements.txt` dari direktori Odoo. Namun, pastikan `psycopg2-binary` dan `setuptools` sudah terinstal jika belum.
---
### 3. Panduan Langkah-demi-Langkah (Ringkasan)
Berikut adalah alur umum instalasi Odoo 12 untuk produksi:
1. Persiapan Sistem:
Update dan upgrade OS: `sudo apt update && sudo apt upgrade`
Instal beberapa dependency dasar seperti `git`, `build-essential`.
2. Instalasi PostgreSQL:
Instal PostgreSQL 10 atau 11.
Buat user PostgreSQL khusus untuk Odoo (misal: `odoo_user`) dengan password yang kuat.
3. Instalasi Python 3.6 (atau 3.5):
Tambahkan PPA `deadsnakes` (`sudo add-apt-repository ppa:deadsnakes/ppa`).
Instal `python3.6` dan `python3.6-dev`.
4. Buat User Sistem untuk Odoo:
Buat user sistem baru (misal: `odoo`) yang tidak memiliki hak akses `sudo` untuk alasan keamanan. Odoo akan dijalankan di bawah user ini.
5. Download Source Code Odoo 12:
Login sebagai user `odoo`.
Clone Odoo 12 dari repositori GitHub resmi ke direktori yang sesuai (misal: `/opt/odoo/odoo-12.0`). Pastikan Anda mengambil branch `12.0`.
6. Buat dan Aktifkan Python Virtual Environment:
Di dalam direktori Odoo, buat virtual environment menggunakan Python 3.6: `python3.6 -m venv odoo-venv`.
Aktifkan virtual environment: `source odoo-venv/bin/activate`.
Setelah aktif, semua instalasi Python package akan masuk ke sini.
7. Instal Python Dependencies:
Dengan virtual environment aktif, navigasikan ke direktori source Odoo.
Instal semua library yang dibutuhkan Odoo: `pip install -r requirements.txt`.
8. Instal wkhtmltopdf 0.12.5:
Unduh paket `.deb` wkhtmltopdf 0.12.5 (Qt patched) yang sesuai dengan arsitektur server Anda.
Instal secara manual menggunakan `dpkg`.
Pastikan file executable-nya berada di `/usr/local/bin` atau di path yang bisa diakses oleh Odoo.
9. Konfigurasi Odoo:
Buat file konfigurasi Odoo (misal: `/etc/odoo/odoo-server.conf`).
Isi parameter penting:
`addons_path`: Jalur ke modul Odoo (termasuk custom addons).
`db_user`, `db_password`: User dan password PostgreSQL yang dibuat sebelumnya.
`xmlrpc_port`: Port Odoo (default 8069).
`logfile`: Path untuk log Odoo.
`longpolling_port`: Port untuk longpolling (default 8072).
PENTING: Ubah `admin_passwd` di file konfigurasi Odoo dengan password master yang kuat!
10. Buat Service Odoo (Systemd):
Buat file service `systemd` (misal: `/etc/systemd/system/odoo.service`) agar Odoo bisa berjalan otomatis sebagai service.
Isi `ExecStart` dengan path ke executable `odoo-bin` di dalam virtual environment Anda.
Aktifkan dan mulai service Odoo.
11. Setup Nginx sebagai Reverse Proxy:
Instal Nginx.
Buat file konfigurasi Nginx untuk domain Odoo Anda.
Forward traffic dari port 80/443 ke port Odoo (8069) dan port longpolling (8072).
Ini juga untuk menghandle SSL.
12. Setup SSL (Let's Encrypt):
Gunakan `certbot` untuk mendapatkan dan menginstal sertifikat SSL gratis dari Let's Encrypt.
Konfigurasi Nginx untuk menggunakan sertifikat SSL tersebut, agar akses Odoo via HTTPS.
---
### 4. Tips Khusus untuk Performa Optimal dan Keamanan Terjaga
Ini bagian yang tidak kalah penting, Mas Arif!
#### Untuk Performa Optimal:
Gunakan Reverse Proxy (Nginx): Nginx akan berfungsi sebagai cache statis, mengelola koneksi, dan mendistribusikan beban. Ini jauh lebih efisien daripada membiarkan Odoo langsung diakses pada port 8069.
Konfigurasi Multiprocessing di Odoo: Untuk lingkungan produksi, Odoo harus dijalankan dalam mode multiprocessing (workers). Edit file konfigurasi Odoo Anda:
`workers = X`: Sesuaikan dengan jumlah CPU server. Rumus kasar: `(2 Jumlah_CPU) + 1` atau `(Jumlah_CPU 2) + 1` untuk CPU, ditambah `1` worker untuk setiap `6` concurrent user yang berinteraksi dengan laporan berat.
`limit_memory_soft = 671088640` (contoh untuk 640MB per worker)
`limit_memory_hard = 805306368` (contoh untuk 768MB per worker)
`limit_time_cpu = 60`
`limit_time_real = 120`
Sesuaikan nilai `limit_memory` berdasarkan RAM server dan jumlah worker. Mulai dengan nilai konservatif lalu monitor.
Optimalkan PostgreSQL: Konfigurasi `postgresql.conf` Anda, sesuaikan `shared_buffers`, `work_mem`, `effective_cache_size`, `maintenance_work_mem` berdasarkan RAM server.
Penyimpanan Cepat: Gunakan SSD untuk server database dan Odoo. Ini akan sangat meningkatkan kecepatan I/O.
Longpolling Server: Pastikan port longpolling Odoo (default 8072) juga diarahkan melalui Nginx untuk fitur-fitur real-time.
#### Untuk Keamanan Terjaga:
Jalankan Odoo sebagai Non-Root User: Seperti yang disebutkan di langkah-langkah, selalu jalankan Odoo di bawah user sistem yang tidak memiliki hak `sudo`.
Gunakan Firewall (UFW): Konfigurasi firewall server Anda (misal: `ufw`) untuk hanya mengizinkan port yang diperlukan:
Port 80 (HTTP) dan 443 (HTTPS) untuk Nginx.
Port 22 (SSH) hanya dari IP yang Anda percaya.
Blokir akses langsung ke port Odoo (8069) dari luar.
Reverse Proxy dengan SSL (HTTPS): Ini mutlak. Selalu enkripsi lalu lintas data antara browser pengguna dan server Odoo Anda.
Password Kuat: Gunakan password yang kompleks dan unik untuk user Odoo, user PostgreSQL, dan password master Odoo (`admin_passwd` di file konfigurasi).
Database Backups: Implementasikan strategi backup database PostgreSQL secara rutin. Gunakan `pg_dump` dan pastikan hasil backup disimpan di lokasi terpisah (off-site storage).
Log Monitoring: Monitor log Odoo dan Nginx secara berkala untuk mendeteksi aktivitas mencurigakan atau masalah performa.
Batasi Akses ke File Konfigurasi: Pastikan hak akses file `odoo-server.conf` hanya bisa dibaca oleh user `odoo` dan `root`.
---
Instalasi Odoo 12 di Ubuntu 20.04 memang sedikit tricky karena perbedaan versi Python dan PostgreSQL default-nya, tapi dengan panduan ini, Mas Arif pasti bisa kok. Jangan ragu untuk bertanya lagi jika ada langkah yang kurang jelas atau menemukan kendala.
Semangat Mas Arif, semoga proses instalasinya lancar jaya dan Odoo 12-nya bisa membawa banyak manfaat untuk perusahaan X!
Memang beda rasanya ya antara pakai Odoo yang sudah jadi dengan install sendiri dari nol. Tapi jangan khawatir, ini pengalaman berharga yang akan sangat berguna. Untuk Odoo 12 di Ubuntu 20.04, ada beberapa hal yang perlu diperhatikan, terutama soal kompatibilitas versi.
---
Oke, langsung saja ya, ini saran dan panduan instalasi Odoo 12 yang paling direkomendasikan untuk lingkungan produksi:
### 1. Metode Instalasi yang Direkomendasikan: Dari Source Code dengan Virtual Environment
Untuk lingkungan produksi, saya sangat merekomendasikan instalasi Odoo 12 dari source code langsung. Kenapa?
Fleksibilitas Tinggi: Memberikan Anda kontrol penuh atas versi Odoo, konfigurasi, dan penyesuaian. Ini sangat penting untuk produksi.
Stabilitas: Anda bisa memilih branch 12.0 yang stabil, dan mengelola dependency Python di lingkungan terisolasi.
Maintenance Mudah: Dengan virtual environment, dependency Odoo tidak akan bercampur dengan paket sistem lainnya, sehingga memudahkan update atau troubleshooting di masa depan.
Optimalisasi: Lebih mudah untuk menerapkan konfigurasi performa dan keamanan yang spesifik.
Meskipun ada cara lain seperti Docker, untuk yang baru pertama kali setup di server sendiri, instalasi langsung dari source code dengan virtual environment adalah jalur yang solid dan banyak didokumentasikan.
---
### 2. Dependency Utama yang Perlu Disiapkan
Ini bagian paling krusial, Mas Arif, karena Ubuntu 20.04 itu relatif baru dibandingkan Odoo 12, jadi ada penyesuaian di versi Python dan PostgreSQL-nya:
Sistem Operasi: Ubuntu 20.04 LTS (Focal Fossa). Pastikan sudah di-update (`sudo apt update && sudo apt upgrade`).
Python: Odoo 12 membutuhkan Python 3.5 atau 3.6. Ini PENTING karena Ubuntu 20.04 secara default datang dengan Python 3.8. Anda perlu menginstal Python 3.6 secara terpisah (misalnya menggunakan PPA `deadsnakes` atau kompilasi dari source), lalu membuat Python Virtual Environment menggunakan Python 3.6 tersebut.
PostgreSQL: Odoo 12 bekerja optimal dengan PostgreSQL 10 atau 11. Ubuntu 20.04 biasanya menyediakan PostgreSQL 12 atau 13. Sama seperti Python, Anda mungkin perlu menambahkan PPA PostgreSQL untuk mendapatkan versi 10 atau 11, atau menginstal secara manual. Saya sarankan versi 11 jika memungkinkan.
wkhtmltopdf: Ini penting untuk generate laporan PDF di Odoo. Versi yang paling stabil dan kompatibel dengan Odoo 12 adalah wkhtmltopdf 0.12.5 (dengan Qt patched). Pastikan Anda mengunduh versi yang sesuai dengan arsitektur server Ubuntu Anda.
Server Web (Reverse Proxy): Nginx atau Apache. Nginx lebih sering digunakan karena performanya yang ringan dan cepat untuk reverse proxy.
System Packages Umum:
`build-essential`
`git`
`libpq-dev` (untuk PostgreSQL)
`libxml2-dev`, `libxslt1-dev` (untuk lxml)
`libjpeg-dev`, `libpng-dev`, `libwebp-dev`, `libtiff5-dev`, `liblcms2-dev`, `libfreetype6-dev` (untuk Pillow/gambar)
`zlib1g-dev`
`libldap2-dev`, `libsasl2-dev` (untuk LDAP, jika dibutuhkan)
`libssl-dev`
`python3-pip`, `python3-dev` (untuk tool Python dan development headers)
Python Libraries: Setelah virtual environment aktif, Anda akan menginstal ini menggunakan `pip install -r requirements.txt` dari direktori Odoo. Namun, pastikan `psycopg2-binary` dan `setuptools` sudah terinstal jika belum.
---
### 3. Panduan Langkah-demi-Langkah (Ringkasan)
Berikut adalah alur umum instalasi Odoo 12 untuk produksi:
1. Persiapan Sistem:
Update dan upgrade OS: `sudo apt update && sudo apt upgrade`
Instal beberapa dependency dasar seperti `git`, `build-essential`.
2. Instalasi PostgreSQL:
Instal PostgreSQL 10 atau 11.
Buat user PostgreSQL khusus untuk Odoo (misal: `odoo_user`) dengan password yang kuat.
3. Instalasi Python 3.6 (atau 3.5):
Tambahkan PPA `deadsnakes` (`sudo add-apt-repository ppa:deadsnakes/ppa`).
Instal `python3.6` dan `python3.6-dev`.
4. Buat User Sistem untuk Odoo:
Buat user sistem baru (misal: `odoo`) yang tidak memiliki hak akses `sudo` untuk alasan keamanan. Odoo akan dijalankan di bawah user ini.
5. Download Source Code Odoo 12:
Login sebagai user `odoo`.
Clone Odoo 12 dari repositori GitHub resmi ke direktori yang sesuai (misal: `/opt/odoo/odoo-12.0`). Pastikan Anda mengambil branch `12.0`.
6. Buat dan Aktifkan Python Virtual Environment:
Di dalam direktori Odoo, buat virtual environment menggunakan Python 3.6: `python3.6 -m venv odoo-venv`.
Aktifkan virtual environment: `source odoo-venv/bin/activate`.
Setelah aktif, semua instalasi Python package akan masuk ke sini.
7. Instal Python Dependencies:
Dengan virtual environment aktif, navigasikan ke direktori source Odoo.
Instal semua library yang dibutuhkan Odoo: `pip install -r requirements.txt`.
8. Instal wkhtmltopdf 0.12.5:
Unduh paket `.deb` wkhtmltopdf 0.12.5 (Qt patched) yang sesuai dengan arsitektur server Anda.
Instal secara manual menggunakan `dpkg`.
Pastikan file executable-nya berada di `/usr/local/bin` atau di path yang bisa diakses oleh Odoo.
9. Konfigurasi Odoo:
Buat file konfigurasi Odoo (misal: `/etc/odoo/odoo-server.conf`).
Isi parameter penting:
`addons_path`: Jalur ke modul Odoo (termasuk custom addons).
`db_user`, `db_password`: User dan password PostgreSQL yang dibuat sebelumnya.
`xmlrpc_port`: Port Odoo (default 8069).
`logfile`: Path untuk log Odoo.
`longpolling_port`: Port untuk longpolling (default 8072).
PENTING: Ubah `admin_passwd` di file konfigurasi Odoo dengan password master yang kuat!
10. Buat Service Odoo (Systemd):
Buat file service `systemd` (misal: `/etc/systemd/system/odoo.service`) agar Odoo bisa berjalan otomatis sebagai service.
Isi `ExecStart` dengan path ke executable `odoo-bin` di dalam virtual environment Anda.
Aktifkan dan mulai service Odoo.
11. Setup Nginx sebagai Reverse Proxy:
Instal Nginx.
Buat file konfigurasi Nginx untuk domain Odoo Anda.
Forward traffic dari port 80/443 ke port Odoo (8069) dan port longpolling (8072).
Ini juga untuk menghandle SSL.
12. Setup SSL (Let's Encrypt):
Gunakan `certbot` untuk mendapatkan dan menginstal sertifikat SSL gratis dari Let's Encrypt.
Konfigurasi Nginx untuk menggunakan sertifikat SSL tersebut, agar akses Odoo via HTTPS.
---
### 4. Tips Khusus untuk Performa Optimal dan Keamanan Terjaga
Ini bagian yang tidak kalah penting, Mas Arif!
#### Untuk Performa Optimal:
Gunakan Reverse Proxy (Nginx): Nginx akan berfungsi sebagai cache statis, mengelola koneksi, dan mendistribusikan beban. Ini jauh lebih efisien daripada membiarkan Odoo langsung diakses pada port 8069.
Konfigurasi Multiprocessing di Odoo: Untuk lingkungan produksi, Odoo harus dijalankan dalam mode multiprocessing (workers). Edit file konfigurasi Odoo Anda:
`workers = X`: Sesuaikan dengan jumlah CPU server. Rumus kasar: `(2 Jumlah_CPU) + 1` atau `(Jumlah_CPU 2) + 1` untuk CPU, ditambah `1` worker untuk setiap `6` concurrent user yang berinteraksi dengan laporan berat.
`limit_memory_soft = 671088640` (contoh untuk 640MB per worker)
`limit_memory_hard = 805306368` (contoh untuk 768MB per worker)
`limit_time_cpu = 60`
`limit_time_real = 120`
Sesuaikan nilai `limit_memory` berdasarkan RAM server dan jumlah worker. Mulai dengan nilai konservatif lalu monitor.
Optimalkan PostgreSQL: Konfigurasi `postgresql.conf` Anda, sesuaikan `shared_buffers`, `work_mem`, `effective_cache_size`, `maintenance_work_mem` berdasarkan RAM server.
Penyimpanan Cepat: Gunakan SSD untuk server database dan Odoo. Ini akan sangat meningkatkan kecepatan I/O.
Longpolling Server: Pastikan port longpolling Odoo (default 8072) juga diarahkan melalui Nginx untuk fitur-fitur real-time.
#### Untuk Keamanan Terjaga:
Jalankan Odoo sebagai Non-Root User: Seperti yang disebutkan di langkah-langkah, selalu jalankan Odoo di bawah user sistem yang tidak memiliki hak `sudo`.
Gunakan Firewall (UFW): Konfigurasi firewall server Anda (misal: `ufw`) untuk hanya mengizinkan port yang diperlukan:
Port 80 (HTTP) dan 443 (HTTPS) untuk Nginx.
Port 22 (SSH) hanya dari IP yang Anda percaya.
Blokir akses langsung ke port Odoo (8069) dari luar.
Reverse Proxy dengan SSL (HTTPS): Ini mutlak. Selalu enkripsi lalu lintas data antara browser pengguna dan server Odoo Anda.
Password Kuat: Gunakan password yang kompleks dan unik untuk user Odoo, user PostgreSQL, dan password master Odoo (`admin_passwd` di file konfigurasi).
Database Backups: Implementasikan strategi backup database PostgreSQL secara rutin. Gunakan `pg_dump` dan pastikan hasil backup disimpan di lokasi terpisah (off-site storage).
Log Monitoring: Monitor log Odoo dan Nginx secara berkala untuk mendeteksi aktivitas mencurigakan atau masalah performa.
Batasi Akses ke File Konfigurasi: Pastikan hak akses file `odoo-server.conf` hanya bisa dibaca oleh user `odoo` dan `root`.
---
Instalasi Odoo 12 di Ubuntu 20.04 memang sedikit tricky karena perbedaan versi Python dan PostgreSQL default-nya, tapi dengan panduan ini, Mas Arif pasti bisa kok. Jangan ragu untuk bertanya lagi jika ada langkah yang kurang jelas atau menemukan kendala.
Semangat Mas Arif, semoga proses instalasinya lancar jaya dan Odoo 12-nya bisa membawa banyak manfaat untuk perusahaan X!