راهنمای کامل نصب Odoo 17

15 مهر 1403 توسط
حمید پورحسنی

اودوو 17 بهبودهای عملکردی بیشتری، یک رابط کاربری ارتقاء یافته و قابلیت‌های جدیدی را ارائه می‌دهد. برای سیستم مدیریت پایگاه داده اودوو 17، PostgreSQL و پایتون نسخه 3.10 مورد نیاز هستند. این مقاله به شما فرآیند نصب اودوو 17 بر روی سرور Ubuntu 20.04 LTS را به صورت مرحله به مرحله آموزش می‌دهد.

مرحله 1: ورود به سرور اوبونتو از طریق SSH

ssh username@IP_Address -p Port_number 

از طریق SSH به سرور خود متصل شوید.

مرحله 2: به‌روزرسانی سرور

برای به‌روزرسانی سیستم عامل و بسته‌های موجود در سرور اوبونتو، دستور زیر را اجرا کنید:

sudo apt-get update
sudo apt-get upgrade

مرحله 3: امن‌سازی سرور

برای افزایش امنیت سرور خود، دستور زیر را برای نصب OpenSSH و Fail2ban اجرا کنید:

sudo apt-get install openssh-server fail2ban

استفاده از Fail2ban می‌تواند از حملات SSH جلوگیری کند.

مرحله 4: نصب بسته‌ها و کتابخانه‌ها

ابتدا بسته‌های پایتون مورد نیاز برای Odoo را نصب کنید و pip3 را تنظیم کنید:

sudo apt-get install -y python3-pip

برای نصب وابستگی‌های وب و بسته‌های دیگر، از دستورات زیر استفاده کنید. مطمئن شوید که تمامی بسته‌ها بدون مشکل نصب شده باشند:

sudo apt-get install python-dev python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev

سپس npm را نصب کنید:

sudo apt-get install -y npm

ایجاد یک لینک نمادین برای nodejs:

sudo ln -s /usr/bin/nodejs /usr/bin/node

نصب less و افزونه‌های مربوطه:

sudo npm install -g less less-plugin-clean-css

و نصب node-less:

sudo apt-get install -y node-less

مرحله 5: راه‌اندازی سرور پایگاه داده

همانطور که قبلاً اشاره شد، PostgreSQL سرور پایگاه داده مورد استفاده در Odoo است. برای نصب PostgreSQL از دستور زیر استفاده کنید:

sudo apt-get install postgresql

سپس پایگاه داده را تنظیم و نصب کنید. یک کاربر برای مدیریت پایگاه داده ایجاد کنید:

sudo su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo17

کاربر و رمز عبور ایجاد شده برای فایل پیکربندی Odoo نیاز خواهد بود. PostgreSQL از یک کاربر سیستم مجزا برای انجام وظایف استفاده می‌کند. برای تغییر بین کاربران، دستور زیر را اجرا کنید:

sudo su - postgres

سپس یک کاربر پایگاه داده برای Odoo 17 ایجاد کنید:

psql
ALTER USER odoo17 WITH SUPERUSER;

این دستور به کاربر حقوق دسترسی Superuser می‌دهد. سپس از Postgres و PSQL خارج شوید:

\q
exit

مرحله 6: ایجاد یک کاربر سیستم

برای امنیت و اجرای وظایف Odoo، یک کاربر سیستم بسازید. این کاربر دسترسی محدودی به فایل‌ها و دایرکتوری‌های Odoo خواهد داشت:

sudo adduser --system --home=/opt/odoo17 --group odoo17

مرحله 7: دریافت نسخه Odoo 17 از Git

در این مرحله باید فایل سورس Odoo را روی سرور آپلود کنید. ابتدا git را روی سرور نصب کنید:

sudo apt-get install git

سپس با تغییر کاربر سیستم به Odoo17، فایل‌ها را به دایرکتوری خانگی او دانلود کنید:

sudo su - odoo17 -s /bin/bash

دستور زیر سورس Odoo را از گیت در دایرکتوری کاربر فعلی، یعنی /opt/odoo، کلون می‌کند:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 --single-branch .

پس از پایان عملیات، از کاربر Odoo خارج شوید:

exit



مرحله 8: نصب پکیج‌های مورد نیاز پایتون

برای نصب پکیج‌های پایتون مورد نیاز Odoo، از دستور زیر استفاده کنید:

sudo pip3 install -r /opt/odoo/requirements.txt

مرحله 9: نصب Wkhtmltopdf

برای چاپ گزارش‌ها از Odoo به صورت فایل‌های PDF، به Wkhtmltopdf نیاز دارید که گزارش‌ها را از HTML به PDF تبدیل می‌کند. برای نصب آن، دستورات زیر را اجرا کنید:

sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo apt install -f

مرحله 10: تنظیم فایل پیکربندی

Odoo برای کارکرد به اطلاعاتی مانند کاربر پایگاه داده، رمز عبور و مکان افزونه‌ها نیاز دارد. ابتدا یک فایل پیکربندی Odoo ایجاد کنید. یک فایل نمونه پیکربندی در پوشه Odoo موجود است که می‌توانید آن را کپی کرده و در مسیر مناسب قرار دهید. برای کپی کردن فایل پیکربندی:

sudo cp /opt/odoo17/debian/odoo.conf /etc/odoo17.conf
sudo nano /etc/odoo17.conf

تنظیمات زیر را در فایل پیکربندی اعمال کنید:

​[options]
; This is the password that allows database operations: admin_passwd = admin db_host = False db_port = False db_user = odoo17 db_password = False addons_path = /opt/odoo17/addons logfile = /var/log/odoo/odoo17.log

سپس مجوزهای دسترسی کاربر سیستم Odoo را به فایل پیکربندی بدهید:

sudo chown odoo17: /etc/odoo17.conf
sudo chmod 640 /etc/odoo17.conf

برای ایجاد دایرکتوری گزارش Odoo و تنظیم مجوزهای آن:

sudo mkdir /var/log/odoo
sudo chown odoo17:root /var/log/odoo

مرحله 11: فایل سرویس Odoo

برای اجرای Odoo به عنوان یک سرویس، باید یک فایل سرویس ایجاد کنیم. فایل جدید را در مسیر /etc/systemd/system/odoo17.service ایجاد کنید:

sudo nano /etc/systemd/system/odoo17.service

سپس محتوای زیر را در فایل سرویس قرار دهید:

[Unit]
   Description=Odoo17
   Documentation=http://www.odoo.com

[Service]
   # Ubuntu/Debian convention:
   Type=simple
   User=odoo17
   ExecStart=/opt/odoo17/odoo-bin -c /etc/odoo17.conf

[Install]
   WantedBy=default.target

پس از ذخیره، مجوزهای فایل سرویس را تنظیم کنید:

bashCopy codesudo chmod 755 /etc/systemd/system/odoo17.service
sudo chown root: /etc/systemd/system/odoo17.service

مرحله 12: اجرای Odoo 17

برای راه‌اندازی Odoo، از دستور زیر استفاده کنید:

bashCopy codesudo systemctl start odoo17.service

برای بررسی وضعیت سرویس Odoo، از این دستور استفاده کنید:

bashCopy codesudo systemctl status odoo17.service

اکنون می‌توانید با وارد کردن آدرس زیر به Odoo دسترسی پیدا کنید، که شما را به صفحه ایجاد پایگاه داده هدایت می‌کند:

plaintextCopy codehttp://<your_domain_or_IP_address>:8069

بررسی لاگ‌های Odoo

در صورت بروز مشکل در نصب یا برای مشاهده لاگ‌های Odoo در زمان واقعی، می‌توانید از دستور زیر استفاده کنید:

bashCopy codesudo tail -f /var/log/odoo/odoo.log

برای تنظیم سرویس Odoo جهت اجرای خودکار پس از ری‌استارت سرور:

bashCopy codesudo systemctl enable odoo17.service

اگر تغییری در افزونه‌ها ایجاد کردید و می‌خواهید این تغییرات در اجرای Odoo اعمال شوند، سرویس Odoo را ری‌استارت کنید:

sudo systemctl restart odoo17.service

نکات مهم برای دیپلوی Odoo 17 در محیط تولید

  1. استفاده از Reverse Proxy (مانند Nginx): برای بهینه‌سازی کارایی و مدیریت بهتر ترافیک، پیشنهاد می‌شود از یک سرور وب مانند Nginx به عنوان Reverse Proxy استفاده کنید. این کار باعث می‌شود درخواست‌های ورودی به Odoo مدیریت شوند و ترافیک سنگین به طور مؤثرتر هندل شود.
    می‌توانید Odoo را پشت یک Nginx راه‌اندازی کنید و Nginx را به‌گونه‌ای پیکربندی کنید که درخواست‌های HTTPS را به Odoo فوروارد کند. این کار به بهبود امنیت، استفاده از گواهینامه SSL و مدیریت بهتر اتصال‌ها کمک می‌کند.
    برای نصب Nginx:
    sudo apt install nginx
    
    سپس فایل تنظیمات Nginx را برای Odoo ایجاد کنید.
  2. فعال‌سازی SSL (با استفاده از Let’s Encrypt): استفاده از HTTPS به جای HTTP به شدت توصیه می‌شود تا امنیت داده‌های کاربران تضمین شود. شما می‌توانید از گواهینامه‌های SSL رایگان توسط Let’s Encrypt استفاده کنید. برای نصب Let’s Encrypt:
    sudo apt install certbot python3-certbot-nginx
    
    سپس با استفاده از دستور زیر، SSL را برای دامنه Odoo فعال کنید:
    sudo certbot --nginx -d your_domain
    
  3. بهینه‌سازی عملکرد سرور PostgreSQL: در محیط‌های تولیدی با بار زیاد، بهینه‌سازی سرور پایگاه داده PostgreSQL اهمیت ویژه‌ای دارد. شما می‌توانید پارامترهای PostgreSQL را برای تنظیمات بهتر عملکرد، مثل افزایش shared_buffers و work_mem، بر اساس منابع سرور تنظیم کنید.
    نمونه‌ای از فایل تنظیمات PostgreSQL:
    sudo nano /etc/postgresql/@version_of_postgres/main/postgresql.conf
    
    سپس مقادیر مناسب برای پارامترها را تغییر دهید.
  4. تنظیمات لاگ‌گیری: در محیط تولیدی، تنظیمات لاگ‌گیری دقیق به شما کمک می‌کند مشکلات را سریع‌تر پیدا و رفع کنید. اطمینان حاصل کنید که لاگ‌های Odoo در فایل مناسب ذخیره شوند و فضای لاگ‌ها بررسی و مدیریت شود. همچنین، برای جلوگیری از پر شدن فضای سرور، از logrotate برای مدیریت و چرخش لاگ‌ها استفاده کنید.
    برای نصب logrotate:
    sudo apt install logrotate
    
  5. استفاده از Workers: برای بهبود کارایی Odoo در حالت تولید، از workers استفاده کنید. کارگران (Workers) فرآیندهای جداگانه‌ای هستند که درخواست‌های همزمان بیشتری را پردازش می‌کنند. تعداد کارگران بستگی به منابع سخت‌افزاری سرور دارد. توصیه می‌شود تعداد کارگران را بر اساس فرمول زیر تعیین کنید:
    Workers = (CPU Cores x 2) + 1
    
    برای مثال، اگر سرور شما 4 هسته CPU دارد، می‌توانید 9 worker تنظیم کنید.
    در فایل پیکربندی Odoo، خط زیر را اضافه کنید:
    workers = 9
    
  6. استفاده از Redis برای Caching: برای بهبود عملکرد و کاهش بار روی پایگاه داده، پیشنهاد می‌شود Redis را برای ذخیره‌سازی کش (Caching) تنظیم کنید. Redis به شما کمک می‌کند که درخواست‌های مکرر به پایگاه داده کاهش یابد و سرعت بارگذاری صفحات افزایش یابد.
    برای نصب Redis:
    sudo apt install redis-server
    
    سپس Redis را در تنظیمات Odoo فعال کنید:
    [options]
    longpolling_port = 8072
    proxy_mode = True
    dbfilter = ^%h$
    
  7. تنظیم پشتیبان‌گیری خودکار (Backup): همواره تهیه نسخه پشتیبان منظم از پایگاه داده و فایل‌های Odoo اهمیت دارد. شما می‌توانید اسکریپت‌های پشتیبان‌گیری خودکار را تنظیم کنید تا مطمئن شوید در صورت بروز مشکل، داده‌ها و اطلاعات حیاتی از دست نمی‌روند. از ابزارهایی مانند pg_dump برای تهیه نسخه پشتیبان از پایگاه داده و rsync برای پشتیبان‌گیری از فایل‌های سیستم استفاده کنید.

نمونه اسکریپت پشتیبان‌گیری از پایگاه داده PostgreSQL:

bashCopy code#!/bin/bash
backup_dir="/backup/db"
date=$(date +%F)
filename="odoo_backup_$date.sql"
pg_dump odoo_db > "$backup_dir/$filename"

با رعایت این نکات و تنظیمات، می‌توانید یک استقرار مطمئن، امن و کارآمد برای Odoo در محیط تولید ایجاد کنید.