sudo apt-get install -y --no-install-recommends \
ca-certificates \
curl \
dirmngr \
fonts-noto-cjk \
gnupg \
libssl-dev \
xz-utils \
build-essential \
libldap2-dev \
libsasl2-dev \
libpq-dev
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.12 python3.12-venv python3.12-dev
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
sudo apt install gnupg2 wget
# Add PostgreSQL 16 respository
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# Import Signing Key
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
sudo apt update
sudo apt install postgresql-16 postgresql-contrib-16 postgresql-client-16
sudo systemctl start postgresql
sudo systemctl enable postgresql
# Create User Postgres for odoo
sudo su - postgres -c "createuser -s odoo"
Cài password for postgres user
sudo -u postgres psql
ALTER USER postgres PASSWORD 'your_password';
sudo apt-get update && sudo apt-get -y install wkhtmltopdf
Chuyển sang user odoo
sudo su - odoo
Tải Odoo 17
git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odoo/odoo
Để tách biệt các modules Python của Odoo và của OS, chúng ta cần setup một môi trường ảo Python (Python Virutal Env) ở thư mục cài đặt Odoo. Sử dụng các lệnh sau để cài đặt:
cd /opt/odoo
python3.12 -m venv odoo-venv
Active môi trường ảo python
source odoo-venv/bin/activate
pip3.12 install wheel
pip3.12 install -r odoo/requirements.txt
Deactivate Python venv
deactivate
Tạo file config Odoo tại /opt/odoo/odoo.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8060
logfile = /var/log/odoo/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo-custom-addons
Tạo file service
sudo touch /etc/systemd/system/odoo.service
Nội dung file service
[Unit]
Description=Odoo
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /opt/odoo/odoo.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
Tạo reverse proxy nginx chuyển tiếp từ port 80 to 8060
© nvnhan0810 it-blogs - 2025