Chuyên mục
Linux Playground

Hướng dẫn cài đặt Odoo 14 trên Ubuntu 20.04

Odoo là phần mềm quản trị doanh nghiệp mã nguồn mở (Open-source ERP software) nổi tiếng và được sử dụng phổ biến trên toàn thế giới. Nó được tích hợp đầy đủ ứng dụng để phục vụ cho mọi nhu cầu kinh doanh của doanh nghiệp: Sales, Marketing, Finance, Inventory, Human Resource, Services, Productivity.

  • CRM (quản lý khách hàng)
  • e-Commerce (thương mại điện tử)
  • Website Builder (xây dựng website)
  • Inventory (quản lý tồn kho)
  • Accounting (kế toán)
  • Manufacturing (sản xuất)
  • Warehouse (quản lý kho)
  • Project Management (quản lý dự án)
  • … chi tiết xem thêm ở đây: Odoo all Apps

Ưu điểm của Odoo là bạn có thể tự cài đặt bản Community Edition lên máy chủ của mình để sử dụng miễn phí, không tốn bất kỳ chi phí nào. Một số ứng dụng đặc biệt yêu cầu phải trả phí hàng tháng ($4-8$/tháng tuỳ ứng dụng) như Accounting, Planning, Helpdesk, Marketing Automation, Quality,… nhưng số ứng dụng miễn phí là đủ dùng với các công ty vừa và nhỏ.

Bản thân mình sử dụng Odoo để quản lý hoá đơn xuất / nhập hàng hoá và quản lý tồn kho cho công ty nhỏ ở gia đình nền chỉ dùng các ứng dụng miễn phí: Inventory, Purchases, Sales. Nhờ có Odoo mà việc quản lý hàng hoá trở nên tiện lợi hơn rất nhiều.

Dưới đây là hướng dẫn cài đặt Odoo 14 – phiên bản mới nhất – lên Ubuntu 20.04. Thao tác hơi cài đặt hơi rối rắm nhiều bước nên mình ghi lại để sau này có cần thiết lập lại còn nhớ thao tác ra sao.

Odoo 14 có thể cài đặt lên máy thông qua Docker container, hoặc cài trực tiếp lên máy thông qua Python. Mình không rành Docker nên chọn cách cài đặt trực tiếp để sau này có vấn đề dễ xử lý hơn.

Yêu cầu cấu hình

Bạn có thể cài Odoo lên Dedicated Server / Cloud VPS hoặc lên máy ảo chạy trên Homelab ở nhà của bạn.

Cầu hình yêu cầu để cài Odoo như sau

  • Server trang bị tối thiểu 2GB RAM (cho 1 người sử dụng)
  • OS: Debian 9/10 hoặc Ubuntu 18.04/20.04
  • Open ports http (80), https (443) và ssh (22)
  • Quyền truy cập SSH với tài khoản sudo / root

Nếu càng nhiều người sử dụng Odoo cùng lúc, bạn cần phải trang bị thêm nhiều RAM cho server để tránh bị quá tải. Xem chi tiết ở đây.

Chuẩn bị hệ thống

Trước tiên, càn phải cài đặt sẵn các package phụ trợ trước khi cài đặt Odoo.

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

Tạo System User

Odoo không cho phép chạy dưới tài khoản root vì lý do bảo mật. Do đó, cần phải tạo tài khoản mới để quản lý Odoo service.

sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14

Bạn có thể thay odoo14 bằng bất kỳ tên gì khác, nhưng ở bước kế tiếp cài đặt tài khoản PostgresSQL nhớ sử dụng cùng tên đó.

Cài đặt và cấu hình PostgreSQL

Odoo sử dụng PostgreSQL để quản lý cơ sở dữ liệu. Cài đặt PostgreSQL bằng lệnh sau

sudo apt install postgresql

Sau khi hoàn tất, tạo tiếp tài khoản PostgreSQL User cùng tên với tài khoản System User ở bước trước đó. Mình sử dụng luôn tên odoo14

sudo su - postgres -c "createuser -s odoo14"

Installing wkhtmltopdf

Để sử dụng tính năng in PDF trên Odoo, cần phải cài đặt thêm wkhtmltox package từ Github.

sudo wget <https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb>

Sau khi tải xong, cài đặt bằng lệnh

sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb

Installing and Configuring Odoo 14

Đầu tiên, chuyển cli qua tài khoản odoo14

sudo su - odoo14

Tải Odoo 14 source code từ GitHub:

git clone <https://www.github.com/odoo/odoo> --depth 1 --branch 14.0 /opt/odoo14/odoo

Tạo môi trường ảo Python để cài và chạy Odoo

cd /opt/odoo14
python3 -m venv odoo-venv

Kích hoạt môi trường ảo

source odoo-venv/bin/activate

Cài đặt các module Python cần thiết để chạy Odoo

pip3 install wheel
pip3 install -r odoo/requirements.txt

Sau khi cài đặt xong, tắt môi trường ảo bằng lệnh

deactivate

Tạo thư mục mới để lưu các addons cần cài đặt thêm sau này

mkdir /opt/odoo14/odoo-custom-addons

Thư mục này sẽ được thêm vào thông số addons_path sau. Thông số này sẽ được Odoo dùng để thiết lập danh sách các ứng dụng.

Đưa CLI quay lại sudo user

exit

Tạo file cấu hình cho odoo với nội dung như sau

sudo nano /etc/odoo14.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
workers = 1

Nhớ thay my_admin_passwd bằng mật khẩu của bạn để bảo đảm bảo mật.

Tạo Systemd Unit

Để thiết lập Odoo chạy dưới dạng service nền trên Ubuntu, cần tạo file service unit với tên gọi odoo14.service bằng lệnh sau

sudo nano /etc/systemd/system/odoo14.service

Thêm đoạn này vào

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

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

[Install]
WantedBy=multi-user.target

Chạy tiếp lệnh sau để kích hoạt

sudo systemctl daemon-reload

Để Odoo service tự động chạy mỗi khi khởi động Ubuntu, gõ tiếp

sudo systemctl enable --now odoo14

Xác nhận Odoo đang chạy

sudo systemctl status odoo14

Nếu Odoo service đang hoạt động trơn tru, bạn sẽ nhận được kết quả tương tự như sau

● odoo14.service - Odoo14
     Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-15 12:45:04 UTC; 54min ago

Bạn có thể kiểm tra log của Odoo service bằng lệnh

sudo journalctl -u odoo14

Chạy thử Odoo

Sau khi cài đặt hoàn tất, hãy mở trình duyệt và truy cập vào địa chỉ

http://<IP_address>:8069

Nếu bạn làm đúng theo hướng dẫn, màn hình sẽ hiển thị ra như sau

Bạn cài đặt theo các yêu cầu trên màn hình là xong. Odoo đã sẵn sàng phục vụ.

Cấu hình Nginx truy cập Odoo thông qua SSL

Cáu hình mặc định của Odoo chỉ hỗ trợ tải trên giao thức HTTP. Để tăng khả năng bảo mật, bạn nên cài đặt thêm Nginx làm Reserve Proxy, kèm thêm Let’s Encrypt SSL để có thể truy cập Odoo thông qua domain với giao thức HTPS.

Đa số các hướng dẫn trên mạng sẽ yêu cầu bạn cài đặt trực tiếp Nginx lên máy chủ sau đó tạo file cấu hình conf cho Odoo. Mình không làm cách này vì vừa rối rắm vừa khó quản lý. Thay vào đó mình sử dụng Nginx Proxy Manager để quản lý Reverse Proxy cho tiện lợi.

Trả lời