Hướng dẫn Cài đặt Odoo ERP trên Debian 10 (Buster)
Odoo là một hệ thống hoạch định nguồn lực doanh nghiệp (ERP) và quản lý quan hệ khách hàng (CRM) mã nguồn mở mạnh mẽ, cung cấp một loạt các ứng dụng kinh doanh để quản lý hiệu quả các quy trình trong doanh nghiệp. Bài viết này sẽ hướng dẫn chi tiết cách cài đặt Odoo phiên bản 13 trên hệ điều hành Debian 10 (Buster) bằng cách sử dụng các gói có sẵn từ kho lưu trữ chính thức của Debian và kho lưu trữ riêng của Odoo. Chúng ta sẽ không cần phải biên dịch thủ công bất kỳ thành phần nào, giúp quá trình cài đặt trở nên đơn giản và nhanh chóng.

Bước 1: Cập nhật Hệ thống
Trước khi thực hiện bất kỳ cài đặt nào, bước đầu tiên và quan trọng nhất là đảm bảo rằng hệ thống Debian 10 của bạn đã được cập nhật đầy đủ các gói và bản vá bảo mật mới nhất. Điều này giúp tránh các xung đột tiềm ẩn và đảm bảo một môi trường cài đặt ổn định.
Sử dụng các lệnh sau để cập nhật hệ thống:
sudo apt update sudo apt -y upgrade
Đôi khi, sau khi nâng cấp các gói hệ thống quan trọng, việc khởi động lại máy chủ là cần thiết để áp dụng các thay đổi một cách hoàn toàn.
sudo reboot
Bước 2: Cài đặt Cơ sở dữ liệu PostgreSQL
Odoo sử dụng PostgreSQL làm hệ quản trị cơ sở dữ liệu chính để lưu trữ toàn bộ dữ liệu của ứng dụng. Do đó, việc cài đặt và cấu hình máy chủ cơ sở dữ liệu PostgreSQL là một yêu cầu bắt buộc trước khi triển khai Odoo.
Lưu ý: Phiên bản PostgreSQL được khuyến nghị cho Odoo 13 thường là 9.5 trở lên. Tuy nhiên, Debian 10 (Buster) có thể cung cấp các phiên bản mới hơn, ví dụ như PostgreSQL 12. Chúng ta sẽ cài đặt phiên bản có sẵn trong kho của Debian.
Thực hiện lệnh sau để cài đặt PostgreSQL:
sudo apt install postgresql postgresql-contrib
Sau khi cài đặt, dịch vụ PostgreSQL sẽ tự động khởi động. Bạn có thể kiểm tra trạng thái của nó bằng lệnh:
sudo systemctl status postgresql
Bước 3: Cài đặt wkhtmltopdf
wkhtmltopdf là một công cụ mã nguồn mở cho phép chuyển đổi tài liệu HTML thành các định dạng như PDF hoặc PNG. Trong bối cảnh Odoo, nó được sử dụng để tạo và in các báo cáo kinh doanh, hóa đơn, báo giá, v.v.
Phiên bản mặc định của wkhtmltopdf có trong kho lưu trữ Debian có thể không hỗ trợ đầy đủ các tính năng cần thiết cho Odoo, đặc biệt là phần tiêu đề và chân trang (headers and footers) trong báo cáo. Do đó, chúng ta sẽ cài đặt một phiên bản được khuyến nghị.
Đối với Debian 10, bạn có thể cài đặt gói này bằng lệnh:
sudo apt install wkhtmltopdf
Lưu ý quan trọng: Nếu bạn gặp vấn đề với việc hiển thị báo cáo hoặc các chức năng liên quan đến in ấn, bạn có thể cần tìm và cài đặt một phiên bản wkhtmltopdf cụ thể hơn từ trang web chính thức của dự án, đảm bảo rằng nó tương thích với phiên bản Odoo bạn đang sử dụng.
Bước 4: Cài đặt Odoo 13 trên Debian 10 (Buster)
Để cài đặt Odoo phiên bản 13, trước tiên chúng ta cần thêm kho lưu trữ APT chính thức của Odoo vào hệ thống Debian. Điều này cho phép hệ thống của bạn nhận các gói Odoo mới nhất.
Thêm khóa GPG của kho lưu trữ Odoo:
wget -O - //nightly.odoo.com/odoo.key | sudo apt-key add -
Thêm kho lưu trữ Odoo vào danh sách nguồn APT:
echo "deb //nightly.odoo.com/13.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list
Sau khi kho lưu trữ đã được thêm, cập nhật lại danh sách gói của APT:
sudo apt update
Bây giờ, bạn có thể cài đặt Odoo 13 bằng lệnh sau:
sudo apt install odoo
Sau khi quá trình cài đặt hoàn tất, dịch vụ Odoo sẽ tự động được khởi động và kích hoạt. Bạn có thể kiểm tra trạng thái của dịch vụ Odoo như sau:
$ systemctl status odoo
Kết quả hiển thị sẽ tương tự như:
● odoo.service - Odoo Open Source ERP and CRM
Loaded: loaded (/lib/systemd/system/odoo.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-10-19 20:57:11 UTC; 20s ago
Main PID: 8793 (odoo)
Tasks: 4 (limit: 4719)
Memory: 61.5M
CGroup: /system.slice/odoo.service
└─8793 /usr/bin/python3 /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo/odoo-server.log
Oct 19 20:57:11 deb10 systemd[1]: Started Odoo Open Source ERP and CRM.Để đảm bảo dịch vụ Odoo tự động khởi động khi hệ thống reboot, hãy chạy lệnh sau:
$ sudo systemctl enable --now odoo
Dịch vụ Odoo mặc định sẽ lắng nghe trên cổng TCP 8069. Bạn có thể xác nhận điều này bằng cách kiểm tra các cổng đang mở:
$ ss -tunelp | grep 8069
Kết quả mong muốn sẽ giống như:
tcp LISTEN 0 128 0.0.0.0:8069 0.0.0.0:* uid:113 ino:1906251 sk:d <->
Bước 5: Cấu hình Nginx làm Reverse Proxy (Không có SSL) – Khuyến cáo hạn chế sử dụng
Việc sử dụng Nginx làm reverse proxy giúp quản lý truy cập vào Odoo, cho phép xử lý các yêu cầu HTTP, định tuyến lưu lượng truy cập và có thể phục vụ các tài nguyên tĩnh hiệu quả hơn. Tuy nhiên, phương pháp không có SSL này không an toàn cho môi trường sản xuất.
Trước hết, cài đặt Nginx trên hệ thống của bạn nếu chưa có:
sudo apt -y install nginx vim
Tạo một tệp cấu hình mới cho Nginx dành riêng cho Odoo:
sudo vim /etc/nginx/conf.d/odoo.conf
Dán đoạn cấu hình sau vào tệp odoo.conf và chỉnh sửa các giá trị cho phù hợp với thiết lập của bạn:
# Cấu hình Upstream cho Odoo
upstream odooserver {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name erp.yourdomain.com; # Thay thế bằng tên miền của bạn
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# Cài đặt Proxy
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Xử lý các yêu cầu tới tên miền gốc
location / {
proxy_redirect off;
proxy_pass //odooserver;
}
# Cache các tệp tĩnh
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass //odooserver;
}
# Cấu hình nén Gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}Trong ví dụ trên, erp.yourdomain.com là tên miền bạn sẽ sử dụng để truy cập Odoo. Hãy đảm bảo rằng bạn có một bản ghi DNS hợp lệ trỏ tên miền này đến địa chỉ IP công cộng của máy chủ Debian của bạn.
Kiểm tra cú pháp cấu hình Nginx để đảm bảo không có lỗi:
$ sudo nginx -t
Nếu kiểm tra thành công, bạn sẽ nhận được thông báo:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại dịch vụ Nginx để áp dụng cấu hình mới:
sudo systemctl restart nginx
Bước 6: Cấu hình Nginx làm Reverse Proxy (Có chứng chỉ SSL) – Phương pháp được khuyến nghị
Sử dụng kết nối SSL/TLS là cực kỳ quan trọng trong môi trường sản xuất để bảo vệ dữ liệu truyền tải giữa trình duyệt của người dùng và máy chủ. Chúng ta sẽ sử dụng Let's Encrypt, một dịch vụ cung cấp chứng chỉ SSL miễn phí, để bảo mật kết nối.
1. Lấy chứng chỉ SSL từ Let's Encrypt:
Tải xuống script certbot-auto và làm cho nó có thể thực thi:
wget //dl.eff.org/certbot-auto chmod +x certbot-auto sudo mv certbot-auto /usr/local/bin/certbot-auto
Dừng tạm thời Nginx để certbot có thể sử dụng cổng 80 để xác thực:
sudo systemctl stop nginx
Thay thế erp.yourdomain.com bằng tên miền của bạn và your_email@example.com bằng địa chỉ email của bạn.
export DOMAIN="erp.yourdomain.com"
export EMAIL="your_email@example.com"
sudo /usr/local/bin/certbot-auto certonly --standalone -d ${DOMAIN} --preferred-challenges http --agree-tos -n -m ${EMAIL} --keep-until-expiringNếu quá trình thực hiện thành công, Certbot sẽ hiển thị đường dẫn tới các tệp chứng chỉ và khóa, ví dụ:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/erp.yourdomain.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/erp.yourdomain.com/privkey.pem Your cert will expire on 2020-01-17. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" ...
2. Cấu hình Cron Job để gia hạn chứng chỉ tự động:
Chứng chỉ Let's Encrypt có thời hạn 90 ngày, vì vậy bạn cần thiết lập một tác vụ cron để tự động gia hạn chứng chỉ trước khi hết hạn. Mở trình chỉnh sửa crontab:
$ sudo crontab -e
Thêm dòng sau để gia hạn chứng chỉ hàng ngày vào lúc 3:15 AM, tạm dừng Nginx trước khi gia hạn và khởi động lại Nginx sau khi gia hạn:
15 3 * * * /usr/local/bin/certbot-auto renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
3. Cập nhật tệp cấu hình Nginx cho SSL:
Tạo hoặc chỉnh sửa tệp cấu hình Nginx cho Odoo:
sudo vim /etc/nginx/conf.d/odoo.conf
Dán đoạn mã sau vào tệp và chỉnh sửa các giá trị cho phù hợp với môi trường của bạn:
# Cấu hình Upstream cho Odoo
upstream odooserver {
server 127.0.0.1:8069;
}
# Chuyển hướng HTTP sang HTTPS
server {
listen 80;
server_name erp.yourdomain.com; # Thay thế bằng tên miền của bạn
return 301 //$host$request_uri;
}
server {
listen 443 ssl;
server_name erp.yourdomain.com; # Thay thế bằng tên miền của bạn
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# Cài đặt SSL
ssl_certificate /etc/letsencrypt/live/erp.yourdomain.com/fullchain.pem; # Thay đổi theo đường dẫn thực tế
ssl_certificate_key /etc/letsencrypt/live/erp.yourdomain.com/privkey.pem; # Thay đổi theo đường dẫn thực tế
ssl_trusted_certificate /etc/letsencrypt/live/erp.yourdomain.com/chain.pem; # Thay đổi theo đường dẫn thực tế
# Cài đặt Proxy
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Xử lý các yêu cầu tới tên miền gốc
location / {
proxy_redirect off;
proxy_pass //odooserver;
}
# Cache các tệp tĩnh
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass //odooserver;
}
# Cấu hình nén Gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}Sau khi hoàn tất cấu hình, hãy kiểm tra lại cú pháp của tệp Nginx:
$ sudo nginx -t
Nếu mọi thứ đúng:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi có SSL:
sudo systemctl restart nginx
Bước 7: Truy cập Odoo trên Debian 10 Linux
Bây giờ bạn có thể truy cập Odoo thông qua trình duyệt web của mình. Sử dụng tên miền bạn đã cấu hình và đảm bảo bạn sử dụng giao thức HTTPS để kết nối bảo mật.
Truy cập địa chỉ: //erp.yourdomain.com (thay thế erp.yourdomain.com bằng tên miền của bạn).
Khi lần đầu tiên truy cập, bạn sẽ thấy màn hình tạo cơ sở dữ liệu. Tại đây, bạn cần thực hiện các bước sau:
- Database Name: Đặt tên cho cơ sở dữ liệu Odoo của bạn.
- Email: Nhập địa chỉ email của người dùng quản trị viên.
- Password: Thiết lập mật khẩu mạnh mẽ cho người dùng quản trị viên.
- Language: Chọn ngôn ngữ mặc định cho hệ thống.
- Country: Chọn quốc gia để cấu hình các thiết lập liên quan đến luật pháp và thuế.
Sau khi nhập đầy đủ thông tin cần thiết, nhấp vào nút “Create database” (Tạo cơ sở dữ liệu).
Sau khi cơ sở dữ liệu được tạo thành công, bạn sẽ được chuyển hướng đến giao diện quản trị của Odoo. Từ đây, bạn có thể bắt đầu khám phá và cài đặt các ứng dụng kinh doanh khác nhau mà Odoo cung cấp để phù hợp với nhu cầu của doanh nghiệp mình.
Chúc mừng bạn đã cài đặt thành công Odoo 13 trên Debian 10 Linux! Để tìm hiểu sâu hơn về các tính năng và cấu hình nâng cao của Odoo, bạn có thể tham khảo trang tài liệu chính thức của Odoo.
“`







