跳到主內容

odoo 開源版 ERP 系統 - Debain

  BUBU 因為最近看到有人在推廣 odoo 開源版的 ERP 系統,那剛好最近有這樣子的需求就想要先架設起來研究看看並且了解整套系統是怎麼運行的。未來看有沒有機會研究怎麼開發 odoo 的模組應用在上面以便好管理事務。

運行環境


  環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式

  • 系統環境: Debian 11
  • Web 服務: Nginx 1.23
  • 資料庫服務: PostgreSQL 15

安裝過程


安裝資料庫

  odoo 所採用的資料庫是 PostgreSQL 那 BUBU 目前安裝版為會 15 版的

  • 安裝相關套件 lsb-release 此套件要預先安裝,不然在安裝 PostgreSQL 會有報錯
apt-get update && apt-get install -y lsb-release && apt-get clean all
  • 新增來源庫
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
  • 匯入金鑰
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  • 安裝資料庫服務
sudo apt-get update && sudo apt-get -y install postgresql
安裝 wkhtmltopdf

  安裝方式請參考本站之前所寫文章 BookStack 匯出成PDF檔

安裝 odoo 服務

  BUBU 當時所安裝版本是為 15 版,因 16 版剛推出怕還沒有很穩定所以先採用 15 來測試,安裝方式就是參考官方文檔即可

  • 在安裝之前先建立給 odoo 用的目錄
mkdir /var/lib/odoo
  • 匯入金?
wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
  • 新增加來源庫
echo "deb http://nightly.odoo.com/15.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
  • 安裝服務
apt-get update && apt-get install odoo
  • 自動啟動服務及確認服務
sudo systemctl enable --now odoo && sudo systemctl status odoo
  • 在網頁上輸入 http://odoo站台位置:8069,連線上之後會出現這樣子的畫面,odoo 會隨機產出資料庫密碼,那您只要輸入資料庫名稱,email等同於要登入的帳號,語系部份選擇繁體中文,這樣子系統在安裝完會預設成台灣會計系統用,不用在另外額外安裝模組了。

odoo-install-01.png

安裝 web 服務

  請參考本站手動安裝官方 NGINX 服務,Nginx 模組擴充 - Debian \ Ubuntu

  • 請在 vim /etc/odoo.conf 修改
proxy_mode = True
  • 新增加站台服務 vim /etc/nginx/conf.d/odoo.conf
#odoo server
upstream odoo {
  server 127.0.0.1:8069;
}
upstream odoochat {
  server 127.0.0.1:8072;
}

# http -> https
server {
  listen 80;
  server_name odoo.mycompany.com; #這是輸入網域名稱
  rewrite ^(.*) https://$host$1 permanent;
}

server {
  listen 443 ssl http2;
  server_name odoo.mycompany.com; #這是輸入網域名稱
  proxy_read_timeout 720s;
  proxy_connect_timeout 720s;
  proxy_send_timeout 720s;

  # Add Headers for odoo proxy mode
  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/nginx/ssl/fullchain.pem;
  ssl_certificate_key /etc/nginx/ssl/privkey.pem;
  ssl_session_timeout 30m;
  ssl_protocols TLSv1.3 TLSv1.2;
  ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  ssl_prefer_server_ciphers off;

  # log
  access_log /var/log/nginx/odoo.access.log;
  error_log /var/log/nginx/odoo.error.log;

  # Redirect longpoll requests to odoo longpolling port
  location /longpolling {
    proxy_pass http://odoo;
  }

  # Redirect requests to odoo backend server
  location / {
    proxy_redirect off;
    proxy_pass http://odoo;
  }

  # common gzip
  gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
  gzip on;
}

補充說明


備註





參考相關網頁