Hướng Dẫn Cài Đặt Odoo Trên Máy Tính

Máy tính cấu hình Odoo

Tính toán yêu cầu hệ thống để cài đặt Odoo trên máy tính của bạn

Hướng dẫn cài đặt Odoo trên máy tính từ A-Z (2024)

Giới thiệu về Odoo

Odoo là một bộ phần mềm quản lý doanh nghiệp mã nguồn mở hàng đầu thế giới, cung cấp hơn 30 ứng dụng tích hợp bao gồm CRM, kế toán, kho hàng, sản xuất, nhân sự và nhiều tính năng khác. Với hơn 7 triệu người dùng trên toàn cầu, Odoo đã trở thành giải pháp ưa thích của cả doanh nghiệp nhỏ và tập đoàn đa quốc gia.

Phiên bản Community của Odoo hoàn toàn miễn phí và có thể được cài đặt trên máy tính cá nhân để phục vụ mục đích học tập, phát triển hoặc sử dụng nội bộ. Bài viết này sẽ hướng dẫn bạn cách cài đặt Odoo trên máy tính chi tiết từ A-Z.

Yêu cầu hệ thống để cài đặt Odoo

Trước khi bắt đầu cài đặt, bạn cần đảm bảo máy tính của mình đáp ứng các yêu cầu tối thiểu sau:

Thành phần Yêu cầu tối thiểu Đề nghị
Hệ điều hành Windows 7+, Ubuntu 18.04+, macOS 10.12+ Ubuntu 22.04 LTS (tối ưu nhất)
CPU 2 lõi 2.0GHz 4 lõi 2.5GHz+ (cho 10+ người dùng)
RAM 2GB 8GB+ (cho 20+ người dùng)
Dung lượng đĩa 10GB trống 50GB+ (cho cơ sở dữ liệu lớn)
Python 3.6+ 3.10+ (tương thích tốt nhất)
PostgreSQL 10+ 14+ (hiệu suất tốt nhất)

Lưu ý: Các yêu cầu này có thể thay đổi tùy thuộc vào số lượng người dùng đồng thời, số lượng module được cài đặt và kích thước cơ sở dữ liệu. Bạn có thể sử dụng máy tính ở phía trên để ước tính yêu cầu hệ thống chính xác cho trường hợp sử dụng của mình.

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

Ubuntu là hệ điều hành được khuyến nghị nhất để cài đặt Odoo do tính ổn định và tương thích cao. Dưới đây là các bước cài đặt chi tiết:

Bước 1: Cập nhật hệ thống

Trước tiên, bạn nên cập nhật hệ thống của mình để đảm bảo tất cả các gói phần mềm đều là phiên bản mới nhất:

sudo apt update && sudo apt upgrade -y

Bước 2: Cài đặt các phụ thuộc cần thiết

Odoo yêu cầu một số phụ thuộc để chạy đúng cách. Chạy lệnh sau để cài đặt chúng:

sudo apt install -y python3-pip python3-dev python3-venv python3-wheel libxml2-dev libxslt1-dev zlib1g-dev libpq-dev libjpeg-dev libsasl2-dev libldap2-dev libssl-dev libffi-dev fontconfig git

Bước 3: Cài đặt PostgreSQL

Odoo sử dụng PostgreSQL làm hệ quản trị cơ sở dữ liệu. Cài đặt PostgreSQL với lệnh:

sudo apt install -y postgresql postgresql-client

Sau khi cài đặt xong, tạo người dùng PostgreSQL cho Odoo:

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

Bước 4: Tạo người dùng hệ thống cho Odoo

Tạo một người dùng hệ thống riêng cho Odoo để tăng cường bảo mật:

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

Bước 5: Cài đặt Wkhtmltopdf

Wkhtmltopdf được sử dụng để tạo báo cáo PDF trong Odoo. Cài đặt phiên bản được khuyến nghị:

sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install -y -f

Bước 6: Cài đặt Odoo từ nguồn

Clone kho lưu trữ Odoo từ GitHub:

sudo su - odoo16 -s /bin/bash
git clone https://www.github.com/odoo/odoo --depth 1 --branch 16.0 /opt/odoo16/odoo

Tạo môi trường ảo Python và cài đặt các phụ thuộc Python:

cd /opt/odoo16
python3 -m venv odoo-venv
source odoo-venv/bin/activate
pip install wheel
pip install -r odoo/requirements.txt

Bước 7: Cấu hình Odoo

Tạo tệp cấu hình cho Odoo:

sudo mkdir /etc/odoo
sudo nano /etc/odoo/odoo.conf

Thêm nội dung sau vào tệp cấu hình:

[options]
admin_passwd = admin
db_host = localhost
db_port = 5432
db_user = odoo16
db_password = False
addons_path = /opt/odoo16/odoo/addons,/opt/odoo16/custom-addons

Bước 8: Tạo dịch vụ systemd

Tạo tệp dịch vụ để quản lý Odoo như một dịch vụ hệ thống:

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

Thêm nội dung sau:

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

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

[Install]
WantedBy=multi-user.target

Kích hoạt và khởi động dịch vụ:

sudo systemctl daemon-reload
sudo systemctl enable --now odoo16
sudo systemctl status odoo16

Bước 9: Cấu hình tường lửa

Nếu bạn sử dụng tường lửa, hãy mở cổng 8069 (cổng mặc định của Odoo):

sudo ufw allow 8069/tcp
sudo ufw enable

Bước 10: Truy cập Odoo

Mở trình duyệt và truy cập vào địa chỉ:

http://your_server_ip:8069

Thay thế your_server_ip bằng địa chỉ IP của máy chủ hoặc localhost nếu bạn cài đặt trên máy local.

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

Mặc dù Ubuntu được khuyến nghị cho môi trường production, bạn vẫn có thể cài đặt Odoo trên Windows cho mục đích học tập hoặc phát triển. Dưới đây là các bước cài đặt:

Bước 1: Cài đặt Python

Tải và cài đặt Python 3.10+ từ trang chủ python.org. Trong quá trình cài đặt, đảm bảo chọn tùy chọn “Add Python to PATH”.

Bước 2: Cài đặt PostgreSQL

Tải và cài đặt PostgreSQL từ postgresql.org. Trong quá trình cài đặt:

  • Chọn cổng mặc định 5432
  • Đặt mật khẩu cho user postgres (nhớ mật khẩu này)
  • Cho phép kết nối từ localhost

Bước 3: Cài đặt các phụ thuộc

Mở Command Prompt với quyền admin và chạy các lệnh sau:

pip install wheel
pip install -r https://raw.githubusercontent.com/odoo/odoo/16.0/requirements.txt

Bước 4: Tải source code Odoo

Tải source code Odoo từ GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 16.0

Bước 5: Cấu hình Odoo

Tạo tệp odoo.conf trong thư mục gốc của Odoo với nội dung sau:

[options]
admin_passwd = admin
db_host = localhost
db_port = 5432
db_user = postgres
db_password = your_postgres_password
addons_path = addons,custom-addons

Bước 6: Chạy Odoo

Mở Command Prompt và điều hướng đến thư mục Odoo, sau đó chạy:

python odoo-bin -c odoo.conf

Bước 7: Truy cập Odoo

Mở trình duyệt và truy cập:

http://localhost:8069

Cài đặt Odoo sử dụng Docker

Docker cung cấp một cách nhanh chóng và nhất quán để triển khai Odoo. Dưới đây là hướng dẫn cài đặt Odoo bằng Docker:

Bước 1: Cài đặt Docker

Trên Ubuntu:

sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

Bước 2: Tạo docker-compose.yml

Tạo tệp docker-compose.yml với nội dung sau:

version: '3.1'
services:
  web:
    image: odoo:16.0
    depends_on:
      - db
    ports:
      - "8069:8069"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=odoo
  db:
    image: postgres:14
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
    volumes:
      - odoo-db-data:/var/lib/postgresql/data
volumes:
  odoo-web-data:
  odoo-db-data:

Bước 3: Khởi động container

Chạy lệnh sau để khởi động Odoo:

docker-compose up -d

Bước 4: Truy cập Odoo

Mở trình duyệt và truy cập:

http://localhost:8069

Lợi ích của việc sử dụng Docker:

  • Cài đặt nhanh chóng, nhất quán
  • Dễ dàng nâng cấp hoặc quay lại phiên bản cũ
  • Cách ly môi trường, tránh xung đột phụ thuộc
  • Dễ dàng sao lưu và phục hồi

So sánh các phương thức cài đặt Odoo

Mỗi phương thức cài đặt Odoo đều có ưu và nhược điểm riêng. Dưới đây là bảng so sánh chi tiết:

Tiêu chí Cài đặt từ nguồn (Source) Cài đặt bằng Docker Cài đặt trên Windows
Độ phức tạp Trung bình Thấp Cao
Thời gian cài đặt 30-60 phút 5-10 phút 45-90 phút
Tương thích Tốt nhất (Linux) Tốt (Linux/Windows/macOS) Hạn chế (chỉ Windows)
Hiệu suất Cao Trung bình (phụ thuộc cấu hình Docker) Thấp
Khả năng mở rộng Cao Trung bình Thấp
Dễ dàng nâng cấp Trung bình Dễ dàng Khó khăn
Môi trường phù hợp Production, Development Development, Testing Learning, Demo

Lựa chọn phương thức cài đặt phù hợp phụ thuộc vào mục đích sử dụng và môi trường của bạn:

  • Cài đặt từ nguồn: Phù hợp nhất cho môi trường production trên máy chủ Linux
  • Docker: Lý tưởng cho phát triển và thử nghiệm, cho phép tạo môi trường nhất quán
  • Windows: Chỉ nên sử dụng cho mục đích học tập hoặc demo nhanh

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

Sau khi cài đặt Odoo thành công, bạn cần thực hiện một số cấu hình cơ bản để hệ thống hoạt động tối ưu:

1. Tạo cơ sở dữ liệu đầu tiên

Khi truy cập Odoo lần đầu tiên, bạn sẽ được yêu cầu tạo cơ sở dữ liệu. Điền các thông tin sau:

  • Master Password: Đặt mật khẩu quản trị viên chính
  • Database Name: Tên cơ sở dữ liệu (ví dụ: mycompany)
  • Email: Địa chỉ email quản trị viên
  • Password: Mật khẩu cho tài khoản quản trị
  • Language: Chọn ngôn ngữ (Vietnamese)
  • Country: Chọn quốc gia (Vietnam)
  • Demo Data: Chọn có cài dữ liệu demo hay không

2. Cài đặt module cần thiết

Odoo đi kèm với hàng trăm module tích hợp sẵn. Để cài đặt module:

  1. Đăng nhập với tài khoản quản trị
  2. Vào menu Apps
  3. Tìm kiếm module cần cài đặt
  4. Nhấn Install

Các module phổ biến cần cài đặt:

  • CRM: Quản lý quan hệ khách hàng
  • Sales: Quản lý bán hàng
  • Purchase: Quản lý mua hàng
  • Inventory: Quản lý kho hàng
  • Accounting: Kế toán
  • Project: Quản lý dự án
  • HR: Quản lý nhân sự
  • Website: Tạo website
  • eCommerce: Bán hàng trực tuyến

3. Cấu hình email

Để gửi và nhận email từ Odoo, bạn cần cấu hình máy chủ email:

  1. Vào Settings → General Settings
  2. Cuộn xuống phần Email
  3. Chọn Outgoing Email Server
  4. Nhập thông tin máy chủ SMTP của bạn
  5. Test kết nối và lưu cấu hình

Các nhà cung cấp email phổ biến:

Nhà cung cấp SMTP Server Port Security
Gmail smtp.gmail.com 587 TLS
Outlook smtp.office365.com 587 STARTTLS
Yahoo smtp.mail.yahoo.com 465 SSL
Zoho smtp.zoho.com 465 SSL

4. Sao lưu và phục hồi dữ liệu

Sao lưu dữ liệu định kỳ là rất quan trọng. Odoo cung cấp hai cách sao lưu:

Cách 1: Sao lưu thủ công

  1. Vào Settings → Database → Backup
  2. Chọn Master Password
  3. Chọn cơ sở dữ liệu cần sao lưu
  4. Nhấn Backup
  5. Tải file sao lưu về máy

Cách 2: Sao lưu tự động

Để cấu hình sao lưu tự động trên Linux:

sudo nano /etc/odoo/odoo.conf

Thêm các dòng sau:

db_name = your_database_name
admin_passwd = your_admin_password
db_user = odoo
db_password = your_db_password
db_host = localhost
db_port = 5432

[options]
auto_backup = True
backup_dir = /opt/odoo/backups
backup_keep = 30

Tạo script sao lưu tự động:

sudo nano /opt/odoo/backup_script.sh

Thêm nội dung:

#!/bin/bash
DATE=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_DIR="/opt/odoo/backups"
ODOO_ADMIN_PASSWD="your_admin_password"
DB_NAME="your_database_name"

/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo/odoo.conf --db_name=$DB_NAME --backup_file=$BACKUP_DIR/$DB_NAME-$DATE.zip --admin_password=$ODOO_ADMIN_PASSWD

# Xóa các bản sao lưu cũ hơn 30 ngày
find $BACKUP_DIR -type f -mtime +30 -delete

Cấu hình cron job để chạy script hàng ngày:

sudo crontab -e

Thêm dòng sau:

0 2 * * * /bin/bash /opt/odoo/backup_script.sh

Khắc phục sự cố thường gặp khi cài đặt Odoo

Trong quá trình cài đặt và sử dụng Odoo, bạn có thể gặp phải một số lỗi phổ biến. Dưới đây là cách khắc phục:

1. Lỗi kết nối cơ sở dữ liệu

Triệu chứng: Không thể kết nối đến PostgreSQL, lỗi “Could not connect to server”

Nguyên nhân:

  • PostgreSQL không chạy
  • Sai thông tin đăng nhập
  • Cổng 5432 bị chặn

Cách khắc phục:

  • Kiểm tra trạng thái PostgreSQL: sudo systemctl status postgresql
  • Khởi động lại PostgreSQL: sudo systemctl restart postgresql
  • Kiểm tra thông tin đăng nhập trong tệp cấu hình Odoo
  • Kiểm tra tường lửa: sudo ufw allow 5432

2. Lỗi thiếu phụ thuộc Python

Triệu chứng: Lỗi “ModuleNotFoundError” khi khởi động Odoo

Nguyên nhân: Thiếu các gói Python cần thiết

Cách khắc phục:

pip install -r odoo/requirements.txt

Nếu lỗi vẫn tiếp tục, cài đặt từng gói riêng lẻ:

pip install package_name

3. Lỗi quyền truy cập

Triệu chứng: Lỗi “Permission denied” khi truy cập các tệp

Nguyên nhân: Người dùng Odoo không có quyền truy cập thích hợp

Cách khắc phục:

sudo chown -R odoo16:odoo16 /opt/odoo16/
sudo chmod -R 755 /opt/odoo16/

4. Lỗi khởi động dịch vụ

Triệu chứng: Dịch vụ Odoo không khởi động được

Nguyên nhân:

  • Lỗi cú pháp trong tệp cấu hình
  • Thiếu phụ thuộc
  • Cổng 8069 đang được sử dụng

Cách khắc phục:

  • Kiểm tra log: journalctl -u odoo16 -f
  • Kiểm tra cú pháp tệp cấu hình
  • Kiểm tra cổng: sudo netstat -tulnp | grep 8069
  • Khởi động lại dịch vụ: sudo systemctl restart odoo16

5. Lỗi hiệu suất chậm

Triệu chứng: Odoo chạy chậm, đáp ứng chậm

Nguyên nhân:

  • Thiếu RAM
  • CPU yếu
  • Cơ sở dữ liệu lớn nhưng không được tối ưu
  • Quá nhiều module không cần thiết

Cách khắc phục:

  • Tăng cường phần cứng (RAM, CPU)
  • Tối ưu cơ sở dữ liệu: VACUUM FULL; trong PostgreSQL
  • Vô hiệu hóa các module không sử dụng
  • Cấu hình cache trong tệp odoo.conf:
limit_memory_hard = 2684354560  # 2.5GB
limit_memory_soft = 2147483648  # 2GB
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 2

Tối ưu hóa hiệu suất Odoo

Để Odoo hoạt động mượt mà với nhiều người dùng, bạn cần thực hiện một số tối ưu hóa:

1. Tối ưu PostgreSQL

Chỉnh sửa tệp postgresql.conf (thường ở /etc/postgresql/14/main/):

shared_buffers = 1GB          # 25% của RAM hệ thống
effective_cache_size = 3GB    # 50-75% của RAM hệ thống
maintenance_work_mem = 256MB   # Cho các tác vụ bảo trì
work_mem = 16MB               # Cho các truy vấn phức tạp
min_wal_size = 1GB
max_wal_size = 2GB
checkpoint_completion_target = 0.9
random_page_cost = 1.1        # Giảm nếu sử dụng SSD
effective_io_concurrency = 200 # Cho SSD

2. Cấu hình Odoo

Thêm các thông số sau vào tệp odoo.conf:

[options]
; Performance
workers = 4                   # Số worker = số lõi CPU
max_cron_threads = 2
limit_time_cpu = 600
limit_time_real = 1200
limit_memory_soft = 2147483648  # 2GB
limit_memory_hard = 2684354560  # 2.5GB
limit_request = 8192
limit_time_real_cron = -1

; Database
db_maxconn = 64
db_name = False
db_template = template1
dbfilter = .*

; Email
email_from = "Odoo "
smtp_server = localhost
smtp_port = 25
smtp_ssl = False
smtp_user = False
smtp_password = False

; Logging
log_level = info
log_db = False
log_handler = [:INFO]
logfile = /var/log/odoo/odoo-server.log

3. Sử dụng Nginx làm reverse proxy

Cài đặt Nginx:

sudo apt install -y nginx

Tạo tệp cấu hình:

sudo nano /etc/nginx/sites-available/odoo

Thêm nội dung:

upstream odoo {
    server 127.0.0.1:8069;
}

upstream odoochat {
    server 127.0.0.1:8072;
}

server {
    listen 80;
    server_name yourdomain.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    # Log files
    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # Odoo services
    location / {
        proxy_redirect off;
        proxy_pass http://odoo;
    }

    location /longpolling {
        proxy_pass http://odoochat;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    # Gzip compression
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Kích hoạt cấu hình:

sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

4. Cài đặt SSL với Let’s Encrypt

Cài đặt Certbot:

sudo apt install -y certbot python3-certbot-nginx

Lấy chứng chỉ SSL:

sudo certbot --nginx -d yourdomain.com

Cấu hình tự động gia hạn:

sudo certbot renew --dry-run

5. Tối ưu cơ sở dữ liệu

Thực hiện các lệnh sau trong PostgreSQL để tối ưu cơ sở dữ liệu:

VACUUM FULL ANALYZE;
REINDEX DATABASE your_database_name;

Đối với các bảng lớn:

VACUUM (VERBOSE, ANALYZE) your_large_table;
REINDEX TABLE your_large_table;

Nâng cấp Odoo lên phiên bản mới

Nâng cấp Odoo cần được thực hiện cẩn thận để tránh mất dữ liệu. Dưới đây là quy trình nâng cấp an toàn:

1. Chuẩn bị trước khi nâng cấp

  • Sao lưu toàn bộ cơ sở dữ liệu
  • Sao lưu thư mục custom addons
  • Kiểm tra tương thích của các module tùy chỉnh
  • Đọc tài liệu nâng cấp chính thức của Odoo
  • Thông báo cho người dùng về thời gian downtime

2. Quy trình nâng cấp trên Ubuntu

  1. Dừng dịch vụ Odoo hiện tại:
    sudo systemctl stop odoo16
  2. Sao lưu thư mục Odoo hiện tại:
    sudo mv /opt/odoo16 /opt/odoo16_backup
  3. Clone phiên bản Odoo mới:
    sudo su - odoo16 -s /bin/bash
    git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odoo17/odoo
  4. Cập nhật môi trường ảo Python:
    cd /opt/odoo17
    python3 -m venv odoo-venv
    source odoo-venv/bin/activate
    pip install wheel
    pip install -r odoo/requirements.txt
  5. Cập nhật tệp cấu hình:
    sudo cp /etc/odoo/odoo.conf /etc/odoo/odoo17.conf
    Chỉnh sửa các đường dẫn trong tệp cấu hình mới
  6. Tạo dịch vụ systemd mới:
    sudo nano /etc/systemd/system/odoo17.service
    Cập nhật các đường dẫn và thông tin phiên bản
  7. Kích hoạt và khởi động dịch vụ mới:
    sudo systemctl daemon-reload
    sudo systemctl enable --now odoo17
    sudo systemctl status odoo17
  8. Cập nhật module:
    sudo su - odoo17 -s /bin/bash
    cd /opt/odoo17/odoo
    ./odoo-bin -c /etc/odoo/odoo17.conf -u all -d your_database_name --stop-after-init

3. Nâng cấp sử dụng Docker

Nếu bạn sử dụng Docker, quy trình nâng cấp đơn giản hơn:

  1. Dừng container hiện tại:
    docker-compose down
  2. Sao lưu dữ liệu:
    docker run --rm --volumes-from odoo_db_1 -v $(pwd):/backup busybox tar cvf /backup/odoo-db-backup.tar /var/lib/postgresql/data
  3. Cập nhật phiên bản Odoo trong docker-compose.yml:
    image: odoo:17.0
  4. Khởi động container mới:
    docker-compose up -d
  5. Cập nhật module:
    docker-compose exec web odoo -u all -d your_database_name --stop-after-init

4. Xử lý lỗi sau nâng cấp

Một số lỗi phổ biến sau nâng cấp và cách khắc phục:

Lỗi: Module not upgraded

Giải pháp: Cập nhật từng module riêng lẻ

./odoo-bin -c /etc/odoo/odoo.conf -u module_name -d your_database_name

Lỗi: Missing dependencies

Giải pháp: Cài đặt các phụ thuộc thiếu

pip install missing_package

Lỗi: Database inconsistency

Giải pháp: Chạy lệnh sửa chữa cơ sở dữ liệu

./odoo-bin -c /etc/odoo/odoo.conf --db_name=your_database_name --log-level=debug --update=all --stop-after-init

Phát triển module tùy chỉnh cho Odoo

Một trong những ưu điểm lớn của Odoo là khả năng mở rộng thông qua các module tùy chỉnh. Dưới đây là hướng dẫn cơ bản để phát triển module:

1. Cấu trúc thư mục module

Một module Odoo cơ bản có cấu trúc như sau:

custom_addon/
├── __init__.py
├── __manifest__.py
├── models/
│   ├── __init__.py
│   └── your_model.py
├── views/
│   └── your_view.xml
├── security/
│   ├── ir.model.access.csv
│   └── security.xml
└── static/
    └── description/
        └── icon.png

2. Tệp __manifest__.py

Tệp này định nghĩa metadata của module:

{
    'name': 'Custom Addon',
    'version': '1.0',
    'summary': 'Module tùy chỉnh của bạn',
    'description': """
        Mô tả chi tiết về module
    """,
    'author': 'Your Name',
    'website': 'https://yourwebsite.com',
    'category': 'Tools',
    'depends': ['base', 'sale', 'purchase'],
    'data': [
        'security/ir.model.access.csv',
        'views/your_view.xml',
    ],
    'demo': [],
    'installable': True,
    'application': True,
    'auto_install': False,
}

3. Tạo model

Ví dụ tạo một model đơn giản trong models/your_model.py:

from odoo import models, fields, api

class CustomModel(models.Model):
    _name = 'custom.model'
    _description = 'Mô hình tùy chỉnh'

    name = fields.Char(string='Tên', required=True)
    description = fields.Text(string='Mô tả')
    active = fields.Boolean(string='Hoạt động', default=True)
    date_created = fields.Datetime(string='Ngày tạo', default=fields.Datetime.now)

    @api.model
    def create(self, vals):
        # Logic tùy chỉnh khi tạo bản ghi mới
        return super(CustomModel, self).create(vals)

4. Tạo view

Tạo giao diện người dùng trong views/your_view.xml:



    
        custom.model.tree
        custom.model
        
            
                
                
                
            
        
    

    
        custom.model.form
        custom.model
        
            
Mô hình tùy chỉnh custom.model tree,form

5. Cấu hình quyền truy cập

Định nghĩa quyền truy cập trong security/ir.model.access.csv:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_custom_model,custom.model,model_custom_model,base.group_user,1,1,1,1

6. Cài đặt module

  1. Đặt module của bạn vào thư mục addons (ví dụ: /opt/odoo16/custom-addons)
  2. Cập nhật danh sách module trong Odoo: Vào Apps → Update Apps List
  3. Tìm kiếm module của bạn và cài đặt

7. Debug và testing

Các kỹ thuật debug:

  • Sử dụng chế độ developer: Nhấn Alt+Shift+D trong Odoo
  • Kiểm tra log: tail -f /var/log/odoo/odoo-server.log
  • Sử dụng debugger Python: pdb
  • Viết test case với unittest

Triển khai Odoo trên môi trường production

Khi triển khai Odoo cho môi trường production, bạn cần lưu ý các yếu tố sau:

1. Lựa chọn kiến trúc

Có ba kiến trúc phổ biến:

  1. Single server: Tất cả thành phần chạy trên một máy chủ. Phù hợp cho doanh nghiệp nhỏ.
  2. Multiple servers: Tách biệt web server, database server, và application server. Phù hợp cho doanh nghiệp vừa.
  3. Load balanced: Sử dụng nhiều application server với load balancer. Phù hợp cho doanh nghiệp lớn.

2. Yêu cầu phần cứng

Loại triển khai Số người dùng CPU RAM Storage
Single server 1-50 4 lõi 8GB 100GB SSD
Multiple servers 50-200 8 lõi (app) + 4 lõi (db) 16GB (app) + 8GB (db) 200GB SSD (app) + 500GB SSD (db)
Load balanced 200+ 16+ lõi (nhiều app server) 32GB+ (app) + 16GB (db) 500GB+ SSD (app) + 1TB+ SSD (db)

3. Cấu hình bảo mật

  • Sử dụng HTTPS với chứng chỉ SSL hợp lệ
  • Cấu hình tường lửa chặt chẽ (chỉ mở cổng cần thiết)
  • Thay đổi mật khẩu mặc định (admin, postgres)
  • Cập nhật hệ thống và phần mềm thường xuyên
  • Sao lưu tự động và lưu trữ ngoài site
  • Cấu hình fail2ban để ngăn chặn brute force attack
  • Sử dụng WAF (Web Application Firewall)

4. Giám sát hệ thống

Cài đặt các công cụ giám sát:

  • Prometheus + Grafana: Giám sát hiệu suất
  • Sentry: Giám sát lỗi ứng dụng
  • Logstash + Elasticsearch + Kibana: Quản lý log
  • Nagios/Zabbix: Giám sát hạ tầng

5. Chiến lược sao lưu

Thực hiện sao lưu theo nguyên tắc 3-2-1:

  • 3 bản sao lưu
  • 2 loại phương tiện khác nhau
  • 1 bản lưu trữ ngoài site

Ví dụ lịch trình sao lưu:

  • Sao lưu hàng giờ: Các thay đổi gần đây
  • Sao lưu hàng ngày: Toàn bộ cơ sở dữ liệu
  • Sao lưu hàng tuần: Lưu trữ dài hạn
  • Sao lưu hàng tháng: Lưu trữ ngoài site

6. Tối ưu hiệu suất cho production

  • Sử dụng CDN cho tài nguyên tĩnh
  • Cấu hình caching aggressively
  • Tối ưu hóa cơ sở dữ liệu định kỳ
  • Sử dụng connection pooling cho PostgreSQL (PgBouncer)
  • Cân nhắc sử dụng Odoo.sh cho môi trường đám mây
  • Triển khai read replicas cho cơ sở dữ liệu nếu cần

Kết luận

Cài đặt Odoo trên máy tính cá nhân hoặc máy chủ là quá trình đòi hỏi sự cẩn thận và kiên nhẫn, nhưng bù lại bạn sẽ có được một hệ thống quản lý doanh nghiệp mạnh mẽ và linh hoạt. Bài viết này đã cung cấp hướng dẫn chi tiết từ cơ bản đến nâng cao về:

  • Cài đặt Odoo trên các nền tảng khác nhau (Ubuntu, Windows, Docker)
  • Cấu hình và tối ưu hóa hệ thống
  • Phát triển module tùy chỉnh
  • Triển khai trên môi trường production
  • Khắc phục sự cố và bảo trì hệ thống

Odoo là một giải pháp mạnh mẽ có thể đáp ứng nhu cầu của cả doanh nghiệp nhỏ và tập đoàn lớn. Với kiến thức từ bài viết này, bạn đã sẵn sàng để:

  • Triển khai Odoo cho doanh nghiệp của mình
  • Tùy chỉnh Odoo theo nhu cầu cụ thể
  • Quản trị và bảo trì hệ thống Odoo
  • Mở rộng chức năng với các module tùy chỉnh

Hãy bắt đầu với phiên bản Community miễn phí để làm quen với Odoo, sau đó cân nhắc nâng cấp lên Enterprise nếu cần các tính năng nâng cao hơn. Đừng quên tham khảo tài liệu chính thức của Odoodiễn đàn cộng đồng khi gặp khó khăn.

Chúc bạn thành công với hệ thống Odoo của mình!

Leave a Reply

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