Cách cài Odoo trên Ubuntu VPS để tự quản lý ERP
Hướng dẫn cài Odoo 17 trên Ubuntu VPS từ khâu chuẩn bị máy chủ, PostgreSQL, cấu hình dịch vụ đến bảo mật và sao lưu để doanh nghiệp chủ động vận hành ERP.
- 7 phút đọc
- 0 lượt xem

CÔNG TY TNHH CÔNG NGHỆ INUX
Hướng dẫn cài Odoo 17 trên Ubuntu VPS từ khâu chuẩn bị máy chủ, PostgreSQL, cấu hình dịch vụ đến bảo mật và sao lưu để doanh nghiệp chủ động vận hành ERP.

Hướng dẫn chuẩn bị Ubuntu VPS, cài Flask trong môi trường ảo và cấu hình Gunicorn, Nginx, systemd cùng HTTPS để đưa dự án Python lên Internet.
Khởi tạo tự động ngay sau khi thanh toán, chuyển khoản bằng mã QR, bật tắt và cài lại máy chủ trong trang quản lý.
Bài viết hướng dẫn cách cài Odoo trên VPS chạy Ubuntu 22.04 theo phương thức cài từ mã nguồn, sử dụng Odoo 17, PostgreSQL, Nginx và HTTPS. Bạn nên thực hiện trên máy chủ mới hoặc môi trường thử nghiệm trước khi đưa vào sử dụng chính thức. Tên gói và yêu cầu thư viện có thể thay đổi theo phiên bản Odoo, vì vậy hãy kiểm tra hướng dẫn của phiên bản bạn chọn nếu dùng bản khác.

Trước khi cài Odoo Ubuntu, hãy chuẩn bị một VPS chạy Ubuntu 22.04 LTS, tài khoản có quyền sudo và tên miền trỏ về địa chỉ IP của máy chủ. Chọn cấu hình VPS dựa trên số người dùng đồng thời, ứng dụng ERP dự kiến sử dụng, lượng dữ liệu và tốc độ tăng trưởng. Nếu chưa rõ nhu cầu, có thể bắt đầu ở quy mô phù hợp rồi theo dõi tài nguyên để điều chỉnh sau.
Đăng nhập máy chủ qua SSH, cập nhật gói hệ thống và cài công cụ cần thiết:
sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3 python3-pip python3-venv python3-dev \
build-essential libpq-dev libxml2-dev libxslt1-dev libldap2-dev \
libsasl2-dev libssl-dev libjpeg-dev zlib1g-dev libffi-devCài PostgreSQL và Nginx:
sudo apt install -y postgresql nginx
sudo systemctl enable --now postgresql nginxNếu đang quản lý tường lửa bằng UFW, chỉ mở các cổng cần thiết. SSH nên được cho phép trước khi bật tường lửa để tránh tự khóa quyền truy cập:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enableKhông cần mở cổng Odoo 8069 ra Internet khi dự định đặt Nginx làm reverse proxy. Cổng này sẽ chỉ phục vụ kết nối nội bộ trên máy chủ.

Tạo tài khoản hệ thống riêng để chạy Odoo. Tách tài khoản dịch vụ khỏi tài khoản đăng nhập quản trị giúp giới hạn quyền của tiến trình:
sudo adduser --system --home=/opt/odoo --group odoo
sudo -u postgres createuser --createdb odoo
sudo mkdir -p /opt/odoo/custom-addons
sudo chown -R odoo:odoo /opt/odooTài khoản PostgreSQL odoo có quyền tạo cơ sở dữ liệu, nhưng không cần cấp quyền superuser. Tiếp theo, tải mã nguồn nhánh Odoo 17 và tạo môi trường Python ảo để các thư viện của ứng dụng không ảnh hưởng đến Python hệ thống:
sudo -u odoo git clone --depth 1 --branch 17.0 \
https://github.com/odoo/odoo.git /opt/odoo/odoo
sudo -u odoo python3 -m venv /opt/odoo/venv
sudo -u odoo /opt/odoo/venv/bin/pip install --upgrade pip wheel
sudo -u odoo /opt/odoo/venv/bin/pip install \
-r /opt/odoo/odoo/requirements.txtQuá trình cài thư viện có thể mất một lúc. Nếu gặp lỗi biên dịch, hãy kiểm tra gói thư viện hệ thống còn thiếu, phiên bản Python tương thích và thông báo lỗi cụ thể trước khi thử lại.
Tạo tệp cấu hình /etc/odoo.conf:
[options]
admin_passwd = THAY_BANG_CHUOI_NGAU_NHIEN_DAI
db_user = odoo
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom-addons
data_dir = /var/lib/odoo
http_interface = 127.0.0.1
http_port = 8069
logfile = /var/log/odoo/odoo.logadmin_passwd là mật khẩu quản trị cơ sở dữ liệu của Odoo, không phải mật khẩu đăng nhập người dùng. Hãy thay giá trị mẫu bằng chuỗi ngẫu nhiên dài, không dùng lại mật khẩu tài khoản khác. Tạo thư mục dữ liệu, log và phân quyền:
sudo mkdir -p /var/lib/odoo /var/log/odoo
sudo chown -R odoo:odoo /var/lib/odoo /var/log/odoo
sudo chown root:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.confĐể Odoo tự khởi động cùng máy chủ, tạo dịch vụ systemd tại /etc/systemd/system/odoo.service:
[Unit]
Description=Odoo 17
After=network.target postgresql.service
[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/opt/odoo/venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf
Restart=on-failure
[Install]
WantedBy=multi-user.targetNạp cấu hình và khởi động dịch vụ:
sudo systemctl daemon-reload
sudo systemctl enable --now odoo
sudo systemctl status odooNếu dịch vụ không chạy, xem log bằng sudo journalctl -u odoo -n 100 --no-pager hoặc kiểm tra tệp /var/log/odoo/odoo.log. Sau khi xử lý lỗi, khởi động lại bằng sudo systemctl restart odoo.

Nginx nhận kết nối từ người dùng, sau đó chuyển tiếp yêu cầu đến Odoo trên máy chủ. Tạo cấu hình cho tên miền, chẳng hạn /etc/nginx/sites-available/odoo:
server {
listen 80;
server_name erp.example.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
client_max_body_size 100m;
location /websocket {
proxy_pass http://127.0.0.1:8072;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://127.0.0.1:8069;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}Thay erp.example.com bằng tên miền thật, đồng thời tạo bản ghi DNS trỏ tên miền về IP VPS. Kích hoạt cấu hình và kiểm tra cú pháp Nginx:
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo
sudo nginx -t
sudo systemctl reload nginxĐể dùng HTTPS, cài chứng chỉ TLS hợp lệ cho tên miền theo quy trình của đơn vị cấp chứng chỉ bạn chọn. Sau đó cập nhật cấu hình Nginx để chuyển hướng HTTP sang HTTPS. Trong /etc/odoo.conf, thêm proxy_mode = True để Odoo nhận diện đúng giao thức và địa chỉ phía sau reverse proxy. Khởi động lại Odoo và Nginx sau khi chỉnh sửa.
Truy cập https://erp.example.com để mở giao diện khởi tạo cơ sở dữ liệu. Nhập mật khẩu quản trị cơ sở dữ liệu đã đặt trong admin_passwd, tên cơ sở dữ liệu, tài khoản quản trị đầu tiên và ngôn ngữ phù hợp. Giữ thông tin đăng nhập an toàn và chỉ cài các ứng dụng doanh nghiệp thực sự cần dùng.
Sau khi đăng nhập, kiểm tra các chức năng chính như tạo người dùng, cài ứng dụng, gửi email và xuất báo cáo. Nếu doanh nghiệp cần xuất báo cáo PDF, hãy cài phiên bản wkhtmltopdf tương thích với Odoo 17 theo tài liệu chính thức; kiểm tra kết quả PDF sau khi cài vì khả năng hiển thị có thể phụ thuộc phiên bản và gói phần mềm.
Một số việc nên thực hiện trước khi đưa VPS chạy Odoo vào vận hành:
odoo, postgresql, nginx./var/lib/odoo. Lưu bản sao ở nơi tách biệt với VPS và thử khôi phục định kỳ.Sao lưu cơ sở dữ liệu đơn thuần chưa đủ nếu hệ thống có tệp đính kèm, hình ảnh hoặc tài liệu tải lên. Khi khôi phục, cần đưa cả dữ liệu lẫn filestore về đúng vị trí, quyền truy cập và kiểm tra ứng dụng trước khi cho người dùng làm việc trở lại.
Nhu cầu tài nguyên của Odoo phụ thuộc vào số người dùng đồng thời, ứng dụng cài đặt, dung lượng cơ sở dữ liệu và tác vụ nền. Hãy bắt đầu bằng cách theo dõi mức sử dụng thực tế, giữ dung lượng trống cho cập nhật và sao lưu, rồi nâng cấp tài nguyên khi hệ thống có dấu hiệu thiếu CPU, bộ nhớ hoặc lưu trữ.
VibeVPS có các gói VPS AMD EPYC Gen 3 từ 81.000đ/tháng và VPS Platinum Gen 2 từ 81.000đ/tháng. Khi lựa chọn, doanh nghiệp nên đối chiếu tài nguyên từng gói với quy mô sử dụng, đồng thời cân nhắc nhu cầu hỗ trợ, sao lưu và kế hoạch tăng trưởng. Không nên chọn chỉ dựa trên mức giá nếu hệ thống ERP sẽ phục vụ nhiều phòng ban hoặc xử lý dữ liệu quan trọng.
Cài Odoo trên VPS gồm các bước chính: chuẩn bị Ubuntu, cài PostgreSQL và thư viện, triển khai mã nguồn trong môi trường Python riêng, cấu hình systemd, rồi đưa dịch vụ qua Nginx và HTTPS. Sau khi hoàn tất, hãy ưu tiên bảo mật, theo dõi hoạt động và thử quy trình sao lưu, khôi phục trước khi nhập dữ liệu doanh nghiệp. Nếu cần triển khai ERP trên máy chủ riêng, bạn có thể tham khảo các gói VPS của VibeVPS và chọn cấu hình theo nhu cầu thực tế.
Hướng dẫn chuẩn bị VPS Ubuntu, cài aaPanel và thiết lập website đầu tiên từ tên miền, mã nguồn đến cơ sở dữ liệu và SSL. Phù hợp cho người mới quản trị máy chủ.
Hướng dẫn tạo systemd service trên Linux để quản lý tiến trình ứng dụng, tự khởi động cùng VPS và kiểm tra trạng thái, nhật ký hoạt động.