Giao diện người dùng Odoo 16

Cách cài đặt Odoo 16 từ mã nguồn trên Ubuntu Server 22.04 (Jammy Jellyfish)

Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt Odoo 16 trên Máy chủ Ubuntu 22.04 mới với Python 3.10 và PostgreSQL 14.

Giới thiệu

Odoo là một bộ công cụ phần mềm quản lý doanh nghiệp bao gồm, ví dụ, CRM, thương mại điện tử, thanh toán, kế toán, sản xuất, kho hàng, quản lý dự án và quản lý hàng tồn kho. Phiên bản Cộng đồng (CE) là một phần mềm tự nhiên, được cấp phép theo GNU LGPLv3 trong khi Phiên bản Doanh nghiệp (EE) có các tính năng bổ sung độc quyền và được cấp phép theo giấy phép Odoo Enterprise.

Để biết thêm thông tin về Bản phát hành Odoo 16, vui lòng truy cập Ghi chú phát hành Odoo 16.

Tóm tắt

Sau khi hoàn thành cài đặt Odoo 16, chúng tôi mong đợi sẽ đạt được những điều sau:

  1. Thông số kỹ thuật:
    • Mã nguồn Odoo 16 sẽ được lưu trữ trong thư mục /opt/odoo/odoo16
    • Bổ sung bổ sung sẽ được lưu trữ trong /home/odoo16/addons_repo_name, trong đó addons_repo_name là tên của thư mục chứa các mô-đun addon bổ sung.
    • Odoo 16 sẽ được chạy trong tài khoản Linux odoo16
    • Chỉ những người dùng Linux trong nhóm odoo mới có thể đọc mã nguồn Odoo 16 và chạy nó.
    • Odoo 16 sẽ chạy trong một môi trường ảo biệt lập trong /python-venv/3.10/odoo16 với Python 3.10 (phiên bản mặc định đi kèm với Ubuntu 22.04)
    • Cơ sở dữ liệu sẽ PostgreSQL 14 là phiên bản mặc định của PostgreSQL đi kèm với Ubuntu 22.04
  2. Người dùng sẽ có thể truy cập Odoo 16 bằng trình duyệt web thông qua địa chỉ http://your_ip:8089, ở đâu your_ip là địa chỉ ip của máy chủ Ubuntu 22.04 của bạn.
  3. Những người dùng mà có mật khẩu chính (master password) sẽ có thể tạo một cơ sở dữ liệu mới hoặc xóa những cơ sở dữ liệu hiện có.
  4. Odoo 16 sẽ được chạy như một dịch vụ (hay còn gọi là daemon) và sẽ được khởi động tự động mỗi khi máy chủ được khởi động.

Bước 1 - Điều kiện tiên quyết

Đầu tiên, như thường lệ, chúng ta cần cập nhật hệ thống bằng cách chạy các lệnh

sudo apt update; sudo apt dist-upgrade

Bây giờ, hãy bắt đầu cài đặt các gói và phần mềm cần thiết cho các bước sau.

sudo apt install build-essential python3.10-dev \
python3.10-venv libsass-dev libjpeg-dev \
libjpeg8-dev libldap-dev libldap2-dev libpq-dev \
libsasl2-dev libxslt1-dev zlib1g-dev
Điều kiện tiên quyết của Odoo 16
Điều kiện tiên quyết cho Odoo 16

Bước 2 - Tạo người dùng và nhóm Linux

Nếu bạn đã cài đặt Odoo theo các hướng dẫn trước đây của tôi, có thể bạn đã nhóm odoo được tạo trước đó. Nếu không, bạn có thể chạy lệnh sau để tạo nhóm odoo:

sudo addgroup odoo

Bây giờ, hãy chạy lệnh sau để tạo tài khoản người dùng hệ thống có tên odoo16 và thêm nó vào nhóm odoo đã đề cập ở trên:

sudo adduser odoo16 --system \
--home=/home/odoo16 --disabled-login \
--disabled-password --ingroup odoo

Bước 3 - Chuẩn bị PostgreSQL

Odoo được thiết kế để hoạt động với tất cả các phiên bản ổn định và hiện tại của PostgreSQL. Trong hướng dẫn này, để thuận tiện cho bạn, chúng ta sẽ sử dụng phiên bản đi kèm với Ubuntu 22.04 là PostgreSQL 14. Trong trường hợp bạn muốn thử nghiệm nó trên nhiều phiên bản PostgreSQL, vui lòng làm theo hướng dẫn của tôi về installing multiple versions of PostgreSQL.

Cài đặt PostgreSQL 14

sudo apt install postgresql postgresql-contrib
Cài đặt PostgreSQL 14
Cài đặt PostgreSQL

Tạo Role (vai trò)

Chúng tôi sẽ tạo một vai trò có cùng tên với tài khoản unix để tài khoản có thể sử dụng vai trò đó để xác thực và đăng nhập vào phương thức PostgreSQL ident (không có mật mã). Trong trường hợp này, tên vai trò sẽ là odoo16.

sudo -u postgres createuser --interactive

Hệ thống sẽ yêu cầu bạn nhập tên vai trò, quyền truy cập siêu người dùng, v.v. Vui lòng nhập như sau:

Tạo vai trò Postgres odoo16
Tạo vai trò Postgres odoo16

Xin lưu ý rằng bạn sẽ cần chỉ định cổng cơ sở dữ liệu nếu cụm PostgreSQL của bạn không chạy trên cổng mặc định 5432. Ví dụ: nếu bạn thay đổi cổng cơ sở dữ liệu của mình thành 5433, lệnh trên sẽ trở thành:

sudo -u postgres createuser --interactive -p 5433

Bước 4 - Tạo môi trường ảo Python

Tạo thư mục cho môi trường ảo để chạy Odoo 16

sudo mkdir -p /python-venv/3.10/odoo16

Cấp quyền truy cập thích hợp bằng cách thay đổi chủ sở hữu của thư mục thành odoo16 để ngăn người khác sửa đổi nó.

sudo chown -hR odoo16:root /python-venv/3.10/odoo16

Chuyển sang tài khoản odoo16 với hỗ trợ bash

sudo su - odoo16 -s /bin/bash

Tạo một môi trường ảo Python 3.0 và đặt tên là odoo16

python3.10 -m venv /python-venv/3.10/odoo16

Kích hoạt môi trường ảo cho tài khoản hiện tại (tức là odoo16)

source /python-venv/3.10/odoo16/bin/activate

Nâng cấp pip cho phiên bản mới nhất

pip install --upgrade pip

Hủy kích hoạt môi trường

deactivate

Thoát khỏi tài khoản odoo16 và quay lại tài khoản người dùng trước đó

exit

Bước 5 - Tải xuống và cài đặt Odoo 16

Tải xuống Odoo 16 từ GitHub

Tạo thư mục /opt/odoo/odoo16 để lưu trữ mã nguồn Odoo 16

sudo mkdir -p /opt/odoo/odoo16

Tải xuống mã nguồn Odoo 16 từ GitHub

sudo git clone -b 16.0 https://github.com/odoo/odoo.git /opt/odoo/odoo16

Nếu bạn muốn tải xuống qua SSH để có hiệu suất và bảo mật tốt hơn, bạn có thể làm theo hướng dẫn về cách sao chép repo github qua SSH. Sau đó, lệnh tải xuống Odoo 16 sẽ là:

sudo git clone -b 16.0 git@github.com:odoo/odoo.git /opt/odoo/odoo16 

Bây giờ, cấp nhóm odoo quyền truy cập vào thư mục để tài khoản odoo16 sẽ có thể truy cập mã nguồn Odoo 16.

sudo chown -hR root:odoo /opt/odoo/odoo16

Tạo Thư mục Addons Tùy chỉnh

Bạn có thể cần các phần bổ trợ tùy chỉnh ngoài các phần bổ trợ Odoo tiêu chuẩn để triển khai. Chạy lệnh sau để tạo forder mẹ để lưu trữ các phần bổ trợ tùy chỉnh của bạn sau này

sudo mkdir -p /home/odoo16/addons_repo_name

Bây giờ, hãy sao chép các chương trình bổ trợ / mô-đun tùy chỉnh của bạn và đưa chúng vào /home/odoo16/addons_repo_name

Hãy nhớ thay đổi chủ sở hữu của nó để kiểm soát quyền truy cập:

sudo chown -hR odoo16:root /home/odoo16/addons_repo_name

Cài đặt các yêu cầu của Odoo 16

Chuyển sang tài khoản odoo16 và kích hoạt môi trường ảo

# switch account 
sudo su - odoo16 -s /bin/bash 
# activate the environment 
source /python-venv/3.10/odoo16/bin/activate 

Bây giờ, hãy cài đặt các thư viện bắt buộc được chỉ định trong /opt/odoo/odoo16/requirements.txt:

pip install -r /opt/odoo/odoo16/requirements.txt

Vì một số lý do, không phải tất cả các thư viện bắt buộc đều được liệt kê trong tệp tests.txt. Đây là một ví dụ cho thư viện pylibdmtx: https://github.com/odoo/odoo/commit/3ebe118. Vì vậy, chúng ta cần cài đặt manuall cho chúng.

Bây giờ, hãy cài đặt thư viện pylibdmtx giúp Odoo 16 có thể in mã vạch Ma trận dữ liệu:

pip install pylibdmtx

Cài đặt wkhtmltopdf

Odoo tạo PDF từ HTML, đó là lý do tại sao chúng ta cần wkhtmltopdf.

Tải xuống wkhtmltopdf:

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb

Cài đặt wkhtmltopdf:

sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
# force install dependencies
sudo apt -f install -y

Khởi động Odoo 16

Bây giờ, mọi thứ gần như đã xong và chúng ta có thể kiểm tra Odoo 16 bằng cách chạy lệnh:

/opt/odoo/odoo16/odoo-bin

Bạn sẽ thấy một cái gì đó giống như bên dưới là kết quả

Khởi động Odoo 16 từ dòng lệnh trên Ubuntu 22.04
Khởi động Odoo 16 từ dòng lệnh trên Ubuntu 22.04

Bây giờ, hãy mở trình duyệt web mong muốn của bạn và nhập địa chỉ

http://your_ip:8069

Sau đó, nếu bạn thấy Odoo 16 của mình đã được thiết lập và đang chạy với giao diện người dùng tạo / chọn cơ sở dữ liệu như bên dưới, xin chúc mừng!

Giao diện người dùng của trình tạo cơ sở dữ liệu Odoo 16
Giao diện người dùng tạo / chọn cơ sở dữ liệu Odoo 16

Bây giờ, nhấn Ctrl + C hai lần để dừng Odoo 16 và chạy lệnh bên dưới để thoát khỏi tài khoản odoo16 và quay lại tài khoản trước đó:

exit

Bước 7 - Chạy Odoo 16 dưới dạng dịch vụ

Phần này sẽ hướng dẫn bạn cách tạo dịch vụ khởi động cho Odoo 16 mới cài đặt của bạn để Odoo 16 của bạn sẽ chạy như một dịch vụ và khởi động mỗi khi máy chủ được khởi động.

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

Tệp cấu hình Odoo 16 là tệp lưu trữ các lệnh cấu hình cho phép Odoo 16 biết cách chạy (ví dụ: đường dẫn addons, cổng cơ sở dữ liệu, v.v.).

Trong phần này, tôi sẽ tạo một tệp cấu hình có tên odoo16.conf và lưu nó ở /home/odoo16. Tôi sẽ sử dụng trình soạn thảo văn bản nano để tạo tệp như dưới đây:

sudo nano /home/odoo16/odoo16.conf

Bây giờ, hãy sao chép và dán những thứ sau vào giao diện người dùng trình soạn thảo văn bản nano của bạn:

[options]
addons_path = /opt/odoo/odoo16/odoo/addons,/opt/odoo/odoo16/addons,/home/odoo16/addons_repo_name
admin_passwd = admin
csv_internal_sep = ,
data_dir = /home/odoo16/.local/share/Odoo
db_host = False
db_maxconn = 64
db_name = False
db_password = False
db_port = False
db_sslmode = prefer
db_template = template0
db_user = False
dbfilter =
demo = {}
email_from = False
from_filter = False
geoip_database = /usr/share/GeoIP/GeoLite2-City.mmdb
gevent_port = 8072
http_enable = True
http_interface =
http_port = 8069
import_partial =
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 60
limit_time_real = 120
limit_time_real_cron = -1
list_db = True
log_db = False
log_db_level = warning
log_handler = :INFO
log_level = info
logfile =
max_cron_threads = 2
osv_memory_age_limit = False
osv_memory_count_limit = 0
pg_path =
pidfile =
proxy_mode = False
reportgz = False
screencasts =
screenshots = /tmp/odoo_tests
server_wide_modules = base,web
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_ssl_certificate_filename = False
smtp_ssl_private_key_filename = False
smtp_user = False
syslog = False
test_enable = False
test_file =
test_tags = None
transient_age_limit = 1.0
translate_modules = ['all']
unaccent = False
upgrade_path =
websocket_keep_alive_timeout = 600
websocket_rate_limit_burst = 10
websocket_rate_limit_delay = 0.2
without_demo = False
workers = 0
x_sendfile = False

Xin lưu ý rằng mật khẩu chính để bảo mật phiên bản của bạn được kiểm soát bởi chỉ mục admin_passwd trong tệp cấu hình. Bạn nên thay đổi nó thành một mật khẩu mạnh. Bạn cũng có thể bắt đầu tinh chỉnh Odoo bằng cách sửa đổi các chỉ thị khác. Sau khi mọi thứ đều ổn, bạn có thể lưu tệp và thoát bằng cách nhấn Ctrl+X và nhập y sau đó nhấn đi vào.

Để cho phép tài khoản odoo16 để truy cập tệp cấu hình trong khi ngăn người khác làm điều đó, chúng ta cần thay đổi chủ sở hữu tệp bằng cách chạy lệnh dưới đây:

sudo chown odoo16:root /home/odoo16/odoo16.conf

Tạo tệp đơn vị Odoo 16

Trong hướng dẫn này, tôi đang sử dụng trình soạn thảo văn bản nano để tạo tệp đơn vị cho Odoo 16.

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

Sau đó, sao chép và dán nội dung sau vào giao diện người dùng trình chỉnh sửa nano của bạn

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

[Service]
Type=simple
PermissionsStartOnly=true
User=odoo16
Group=odoo
SyslogIdentifier=odoo16
PIDFile=/run/odoo16/odoo16.pid
ExecStartPre=/usr/bin/install -d -m755 -o odoo16 -g odoo /run/odoo16
ExecStart=/python-venv/3.10/odoo16/bin/python /opt/odoo/odoo16/odoo-bin --pid=/run/odoo16/odoo16.pid
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
Alias=odoo16.service
WantedBy=multi-user.target

Bây giờ, lưu tệp và thoát bằng cách nhấn Ctrl+X sau đó nhập vào y và hãy nhấn Enter.

Chạy lệnh sau để thông báo cho systemd rằng tồn tại một tệp đơn vị mới

sudo systemctl daemon-reload

Bây giờ, hãy kích hoạt dịch vụ và yêu cầu nó chạy khi khởi động

sudo systemctl enable --now odoo16

Bây giờ, hãy khởi động Odoo 16 của bạn bằng systemd

sudo systemctl start odoo16

Để dừng nó, chỉ cần chạy:

sudo systemctl stop odoo16

Kết luận

Bạn vừa trải qua các bước để cài đặt Odoo 16 trên máy chủ Ubuntu đáp ứng mong đợi được nêu trong tóm tắt.

Nhân tiện, bạn có thể muốn xem các bài khác của tôi về:

Nếu bạn là một lập trình viên Odoo, bạn có thể muốn xem bài của tôi về Cách thiết lập môi trường phát triển Odoo trên Ubuntu 22.04 Desktop.

6 bình luận trong “How to Install and Deploy Odoo 16 From Source on Ubuntu Server 22.04 (Jammy Jellyfish)”

  1. Cảm ơn bạn, nó rất hữu ích, có cách nào để thực hiện một hướng dẫn sử dụng echo bằng cách sử dụng các bản dựng hàng đêm không?

    Bằng cách đó, nó có thể được cập nhật đơn giản bằng lệnh apt-get update.

    Đánh giá cao nỗ lực của bạn thưa ông.

  2. Xin chào,
    me again (I already wrote on Odoo8 blog).
    Cause user odoo16 you can not
    sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
    Do I have to deactivate and exit odoo16 before and go as normal user?

  3. I went back to the normal user (as test) and did the sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb and following steps.
    And later when first time starting (in the (re-) activated enviroment) as written with /opt/odoo/odoo16/odoo-bin
    I get an error:
    2023-08-12 15:33:52,717 49704 WARNING ? py.warnings: /python-venv/3.10/odoo16/lib/python3.10/site-packages/pylibdmtx/wrapper.py:8: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives

Để lại một câu trả lời