Odoo 是一套開源商業應用程序。 它包括 CRM、電子商務、庫存、銷售點、項目管理等。 這些應用程序完全集成,並可通過通用 Web 界面訪問。 使用 Odoo,您可以集成您的應用程序並使商業生活更輕鬆。
Oddo 有兩個版本——社區版和企業版。 社區版對所有人免費。
Odoo 的安裝選項很少,例如來自 APT 存儲庫、使用 docker 或在虛擬環境中安裝。
在本教程中,我們將解釋如何 安裝 Odoo 14 CE 在 Ubuntu 20.04 在 Python 虛擬環境中。 使用 Let’s Encrypt 證書在 Nginx 上託管 Odoo 作為 SSL 終止代理。
先決條件
- 至少 2 GB RAM 的 Ubuntu 20.04 實例
- 對於數據庫管理 Odoo 需要 PostgreSQL
- 一個非 root 用戶 sudo 特權
步驟 1. 安裝依賴項
首先,更新您的系統。
sudo apt update
sudo apt upgrade
以下命令將安裝所有 Odoo 依賴項。
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev
步驟 2. 創建系統用戶
為了運行 Odoo,我們需要創建一個新系統 用戶和組 路徑 /opt/odoo14 下的主目錄需要能夠運行 Odoo 服務。
sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14
步驟 3. 安裝和配置 PostgreSQL
首先,使用 apt 安裝 PostgreSQL。
sudo apt install postgresql
一旦PostgreSQL安裝完成,那麼我們需要 創建一個 PostgreSQL 用戶. 請記住,我們將使用與之前創建的系統用戶相同的名稱。 那是oddo14。
sudo su - postgres -c "createuser -s odoo14"
步驟 4. 安裝 wkhtmltopdf
wkhtmltopdf – 是一個開源命令行工具,支持將 HTML 頁面呈現為 PDF 和其他類似格式。
為了能夠在 Odoo 中打印 PDF 格式和報告,需要安裝 wkhtmltopdf 包。
首先,使用 wget 命令下載包。
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb
下載完成後,使用 apt 命令安裝 wkhtmltopdf:
sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb
步驟 5. 安裝和配置 Odoo 14
正如我們在介紹中提到的,我們將從源代碼安裝 Odoo 作為隔離的 Python 虛擬環境。
首先,使用以下命令將用戶更改為 odoo14。
sudo su - odoo14
到 克隆 Odoo 14 官方源代碼來自 GitHub, 類型:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo
然後將目錄更改為 /opt/odoo14
cd /opt/odoo14
從那裡,使用以下命令為 Odoo 創建一個新的 Python 虛擬環境。
python3 -m venv odoo-venv
和 啟用 虛擬環境。
source odoo-venv/bin/activate
激活虛擬環境後,使用 pip3 安裝所有必需的 Python 模塊。
(odoo-venv) $ pip3 install wheel
並安裝
(odoo-venv) $
pip3 install -r odoo/requirements.txt
這可能需要一些時間,完成後,使用以下命令停用環境。
(odoo-venv) $ deactivate
在 /opt/odoo14 路徑中創建一個新目錄,其中將包含我們將包含在配置中的第 3 方插件。
mkdir /opt/odoo14/odoo-custom-addons
我們將此目錄添加到 addons_path 參數。 此參數將定義 Odoo 將在其中搜索模塊的目錄列表。
接下來,退出 odoo 用戶,並切換回您的 sudo 用戶。
exit
創建配置文件:
sudo nano /etc/odoo14.conf
並在文件中添加以下內容:
[options]
; This is the password that allows database operations:
admin_passwd = put_your_secure_password
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
步驟 6. 創建 Systemd 單元文件
創建一個 服務單元文件 在目錄 /etc/systemd/system/ 中調用 odoo14.service。
sudo nano /etc/systemd/system/odoo14.service
並通過以下配置:
[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
告訴 systemd 已經創建了一個新的單元文件。
sudo systemctl daemon-reload
並使用以下命令啟動 Odoo 服務並使其在啟動時啟動:
sudo systemctl enable --now odoo14
輸出:
Created symlink /etc/systemd/system/multi-user.target.wants/odoo14.service → /etc/systemd/system/odoo14.service.
驗證服務狀態:
sudo systemctl status odoo14
顯示 Odoo 服務已啟動並正在運行的輸出:
● odoo14.service - Odoo14
Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-07-22 00:42:45 UTC; 48s ago
Main PID: 149632 (python3)
Tasks: 4 (limit: 1073)
Memory: 63.7M
CGroup: /system.slice/odoo14.service
└─149632 /opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
Jul 22 00:42:45 li1129-224 systemd[1]: Started Odoo14.
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,927 149632 INFO ? odoo: Odoo version 14.0
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: Using configuration file at /etc/odoo14.conf
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: addons paths: ['/opt/odoo14/odoo/odoo/addons', '/opt/odoo14/.local/share/Odoo/addons/14.0', '/opt/odoo14/odoo/addons', '/opt/odoo14/odoo-custom-addons>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: database: odoo14@default:default
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,525 149632 INFO ? odoo.service.server: HTTP service (werkzeug) running on linoxide:8069
要查看 Odoo 服務記錄的消息,請運行:
sudo journalctl -u odoo14
輸出:
-- Logs begin at Tue 2021-07-13 12:50:08 UTC, end at Thu 2021-07-22 00:45:23 UTC. --
Jul 22 00:42:45 li1129-224 systemd[1]: Started Odoo14.
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,927 149632 INFO ? odoo: Odoo>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: Usin>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: addo>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: data>
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,210 149632 INFO ? odoo.addon>
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,525 149632 INFO ? odoo.servi>
打開瀏覽器並輸入: https://<your_domain_or_IP_address>:8069
放 主密碼 您之前在配置路徑 /etc/odoo14.conf 中定義的,並輸入其他憑據以創建數據庫。

成功創建數據庫後,將重定向到 Odoo14 儀表板。
步驟 7. 將 Nginx 配置為 SSL 終止代理(可選)
如果您想讓 Odoo 對您的環境更加安全,我們可以設置 Nginx 作為 SSL 終止代理 它將通過 HTTPS 提供流量,而不是默認的 Odoo 網絡通過 HTTP 提供流量。
SSL 終止代理提供了一個代理服務器來處理 SSL 加密。 在我們的例子中,終止代理是 Nginx,他將處理和解密傳入的 TLS 連接 (HTTPS),並將未加密的請求傳遞給 Odoo 服務。
先決條件
- 指向您的公共服務器 IP 的域名
對於本文,我們將使用 example.conf - 安裝了 Nginx
- 讓我們加密 SSL 證書
請務必檢查您是否正確設置了 Let’s Encrypt 或其他一些 SSL 證書。
到 安裝讓我們加密 SSL 證書我們首先需要安裝certbot:
# apt install certbot
# apt install python3-certbot-nginx
接下來,運行以下命令 example.com 域名並填寫所需信息:
# certbot --nginx -d example.com -d www.example.com
輸出:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):
1. 創建或編輯域服務器塊
sudo nano /etc/nginx/sites-enabled/example.com.conf
並通過以下配置:
# Odoo servers
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
# HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
return 301 https://example.com$request_uri;
}
# WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# 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;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
# log files
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
# Handle longpoll requests
location /longpolling {
proxy_pass https://odoochat;
}
# Handle / requests
location / {
proxy_redirect off;
proxy_pass https://odoo;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass https://odoo;
}
# Gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
注意:不要忘記更換 example.com 與您的 Odoo 域並設置 SSL 證書文件的正確路徑。
2. 重啟 Nginx 服務
sudo systemctl restart nginx
重啟 Nginx 服務後,我們需要告訴 Odoo 使用這個配置的代理。
3. 打開配置文件。
sudo nano /etc/odoo14.conf
4. 並添加以下行。
proxy_mode = True
5. 最後,重啟 Odoo 服務。
sudo systemctl restart odoo14
如果您按照所有步驟操作,將能夠通過 https:// 訪問您的 Odoo Web 實例example。和
結論
在本教程中,我們學習瞭如何在 Ubuntu 20.04 上安裝和配置 Odoo 14。 您可以開始發現開源 ERP Odoo 的強大之處,也可以嘗試研究 ADempiere,這是另一種類似於 Odoo 的開源 ERP 解決方案。