راهنمای راه‌اندازی نرم‌افزار Odoo با Docker و نصب دستی
این مقاله راهنمایی جامع برای نصب و پیکربندی نرم‌افزار Odoo به دو روش Docker و دستی است.

راهنمای راه‌اندازی نرم‌افزار Odoo با Docker و نصب دستی

در این مقاله به بررسی کامل راه‌اندازی نرم‌افزار Odoo با دو روش Docker و نصب دستی پرداخته می‌شود. یاد خواهید گرفت که چگونه Odoo را بهینه کنید و پیشنهادات امنیتی و مقیاس‌پذیری را اعمال کنید. این راهنما شامل مراحل، نکات و ترفندهای لازم برای نصب و پیکربندی به بهترین نحو برای اجرا در سرورهای ابری و VPS است.
0 Акции
0
0
0
0

چطور می‌توان Odoo را سریع، امن و قابل‌مقیاس‌پذیر راه‌اندازی کرد؟

در این راهنما گام‌به‌گام نصب و کانفیگ Оду به دو روش متداول — نصب با Docker و نصب سنتی (manual) — همراه با نکات امنیتی، بهینه‌سازی عملکرد، بکاپ و راهکارهای HA/Scale برای سرورهای ابری و VPS توضیح داده شده است. مثال‌ها و دستورات برای توزیع‌های مبتنی بر Debian/Ubuntu ارائه می‌شوند و تمام تنظیمات عملیاتی و پیشنهادهای سخت‌افزاری حفظ شده‌اند.

معرفی مختصر معماری Odoo

Оду شامل اجزای کلیدی زیر است:

  • اپلیکیشن Python (backend) که با PostgreSQL ارتباط دارد.
  • Web client که HTTP/WS را از طریق پورت 8069 ارائه می‌دهد؛ longpolling برای گزارشات و اعلانات بلادرنگ.
  • Файловый магазин برای ذخیره پیوست‌ها در دیسک یا راهکارهای ابری (S3).
  • ماژول‌های اضافی و افزونه‌ها (community Или enterprise).

Предпосылки

پیش از نصب مطمئن شوید موارد زیر فراهم هستند:

  • Операционная система: Ubuntu 20.04/22.04 یا Debian 11/12
  • PostgreSQL 12+ (سازگار با نسخه Odoo)
  • Питон 3.8+، pip، virtualenv (برای نصب معمولی)
  • Docker Engine + docker-compose (برای روش کانتینری)
  • Nginx یا HAProxy به‌عنوان reverse proxy و SSL termination
  • حافظه و پردازنده متناسب با بار کاربران و اتوماسیون

نصب Odoo با Docker

Преимущества: ایزوله‌شدن، سادگی استقرار، سازگاری نسخه‌ها و مدیریت از طریق docker-compose.

نمونه docker-compose.yml برای شروع

version: '3.7'
services:
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: odoo
      POSTGRES_USER: odoo
      POSTGRES_PASSWORD: odoo_password_here
    volumes:
      - odoo_db_data:/var/lib/postgresql/data
    restart: always

  odoo:
    image: odoo:16.0
    depends_on:
      - db
    ports:
      - "8069:8069"
    environment:
      HOST: db
      PORT: 5432
      USER: odoo
      PASSWORD: odoo_password_here
    volumes:
      - odoo_data:/var/lib/odoo
      - ./config:/etc/odoo
    restart: always

volumes:
  odoo_db_data:
  odoo_data:

دستورات اجرایی پایه

docker-compose up -d
docker-compose logs -f odoo

نکات عملی برای محیط تولید

  • استفاده از image رسمی یا بیلد سفارشی که ماژول‌ها و وابستگی‌های موردنیاز شما را شامل شود.
  • حجم‌ها (volumes) باید persistent باشند؛ برای استقرار در کلستر از NFS یا storage driver مناسب استفاده کنید.
  • پیکربندی SSL را در لایه reverse-proxy انجام دهید؛ کانتینر Odoo را با proxy_mode = True اجرا کنید.
  • برای پشتیبان‌گیری از دیتابیس از pg_dump یا ابزارهای مبتنی بر WAL استفاده کنید.

نمونه Nginx reverse proxy (برای SSL)

server {
  listen 80;
  server_name odoo.example.com;
  return 301 https://$host$request_uri;
}
server {
  listen 443 ssl;
  server_name odoo.example.com;

  ssl_certificate /etc/letsencrypt/live/odoo.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/odoo.example.com/privkey.pem;

  proxy_read_timeout 720s;
  proxy_connect_timeout 720s;
  proxy_send_timeout 720s;

  location / {
    proxy_pass http://127.0.0.1:8069;
    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;
    proxy_set_header Host $host;
  }

  location /longpolling {
    proxy_pass http://127.0.0.1:8072;
  }
}

نصب Odoo به‌صورت معمولی (Manual) روی لینوکس

این روش مناسب سرورهای تک‌منظوره و زمانی است که نیاز به کنترل کامل دارید.

مراحل کلی نصب

مرحله 1 — نصب پیش‌نیازها:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3-pip build-essential python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libpq-dev libjpeg-dev libfreetype6-dev node-less npm wkhtmltopdf

مرحله 2 — نصب PostgreSQL و ایجاد کاربر/دیتابیس:

sudo apt install -y postgresql
sudo -u postgres createuser -s odoo
# یا ایجاد با رمز
sudo -u postgres psql -c "CREATE USER odoo WITH PASSWORD 'secure_password';"
sudo -u postgres psql -c "CREATE DATABASE odoo OWNER odoo;"

مرحله 3 — ساخت کاربر سیستمی و محیط مجازی:

sudo useradd -m -U -r -s /bin/bash odoo
sudo mkdir /opt/odoo && sudo chown odoo: /opt/odoo
sudo -u odoo git clone https://www.github.com/odoo/odoo --depth 1 --branch 16.0 /opt/odoo/odoo
cd /opt/odoo/odoo
python3 -m venv odoo-venv
source odoo-venv/bin/activate
pip install -r requirements.txt

مرحله 4 — پیکربندی Odoo (نمونه /etc/odoo.conf):

[options]
; This is the password that allows database operations:
admin_passwd = your_admin_db_password
db_host = False
db_port = False
db_user = odoo
db_password = secure_password
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom_addons
logfile = /var/log/odoo/odoo.log
proxy_mode = True
workers = 4
max_cron_threads = 1

مرحله 5 — سرویس systemd (فعال‌سازی و اجرای Odoo):

sudo systemctl daemon-reload
sudo systemctl enable --now odoo

پیکربندی تولیدی (production) و بهینه‌سازی عملکرد

تنظیمات حیاتی در odoo.conf برای محیط production:

  • workers: برای حالت چندپردازشی. فرمول پیشنهادی: workers = (CPU cores * 2) + 1
  • db_maxconn: تعداد حداکثر اتصال‌های DB (مثلاً workers * 3)
  • limit_memory_soft و limit_memory_hard: برای جلوگیری از OOM
  • proxy_mode = True در صورت استفاده از reverse proxy
  • longpolling: جداسازی به سرویس یا پورت متفاوت (معمولاً 8072)

نمونه محاسبه: سرور 4 هسته‌ای => workers = 9 و db_maxconn = 60 (قابل تنظیم بر اساس نیاز).

امنیت و سخت‌افزار پیشنهادی

امنیت شبکه و تنظیمات پیشنهادی

  • فایروال: فقط پورت‌های ضروری را باز کنید (مثلاً SSH, 80, 443) و دسترسی 8069/8072 را به شبکه خصوصی یا reverse proxy محدود نمایید.
  • TLS: استفاده از Let’s Encrypt و تجدید خودکار.
  • Fail2Ban: جلوگیری از brute-force روی SSH و پنل ادمین.
  • PostgreSQL: اتصال فقط از localhost یا شبکه خصوصی، پسوردهای قوی و محدودسازی کاربران.
  • دسترسی‌ها در Odoo: محدود کردن مجوزها و اعمال کنترل‌های سطح دسترسی برای کاربران.

سخت‌افزار پیشنهادی بر اساس استفاده

  • توسعه / تست: 1 vCPU، 2GB RAM، 20GB SSD
  • کسب‌وکار کوچک (5-20 کاربر): 2-4 vCPU، 4-8GB RAM، 50-200GB SSD
  • سازمان متوسط (20-200 کاربر): 4-8 vCPU، 16-64GB RAM، NVMe SSD
  • HA/Enterprise: چندین سرور (app nodes + dedicated DB master+replica + filestore on NFS/object storage)

بکاپ، مانیتورینگ و راهکارهای HA/Scale

بکاپ

پیشنهادها برای بکاپ:

  • База данных: منظم با pg_dump یا snapshot در سطح بلاک و تست restore.
  • Файловое хранилище: rsync به object storage (S3-compatible) یا mount NFS و بکاپ آن.
  • خودکارسازی: اسکریپت‌های cron و نگهداری ۷/۳۰ روزه و انتقال به مکان جغرافیایی دیگر.
pg_dump -U odoo -Fc odoo > /backups/odoo_$(date +%F).dump

Мониторинг

Использование Prometheus + Grafana یا ابزارهای SaaS برای بررسی CPU, RAM, disk i/o, connections و queueها. لاگ‌ها را به central logging (ELK/Graylog) ارسال کنید.

High Availability و مقیاس‌پذیری

  • PostgreSQL replication (streaming replication) یا استفاده از Managed DB.
  • Балансировщик нагрузки (HAProxy/Nginx) و چندین Odoo app nodes.
  • Файловый магазин به‌صورت shared storage (NFS/Gluster) یا S3-compatible برای تضمین دسترسی همزمان.

انتخاب لوکیشن و سرویس‌های پیشنهادی

نکات مهم انتخاب لوکیشن و شبکه:

  • Задержка: انتخاب دیتاسنتر نزدیک به کاربران نهایی برای کاهش پینگ.
  • Compliance: رعایت قوانین محلی و مقررات حریم خصوصی.
  • Сеть: برای حساسیت به تأخیر از لوکیشن‌های با پینگ پایین و شبکه BGP مناسب استفاده کنید.
  • CDN: برای توزیع استاتیک و کاهش بار روی Odoo مفید است.

خدمات مرتبط مطرح شده در سند ورودی شامل ارائه ۸۵+ لوکیشن جهانی، سرور ابری و VPS، سرور ضدDDoS، Managed Database، CDN و امکان میزبانی GitLab و CI/CD برای مدیریت ماژول‌ها و addonها است.

راهکارهای عملیاتی (Use Cases)

  • فروشگاه eCommerce: CDN برای تصاویر و استاتیک، تنظیم کش و افزایش workers.
  • POS و فروش حضوری: شبکه محلی با پینگ پایین یا سرورهای لوکال برای تضمین عملکرد در قطعی اینترنت.
  • تولید و انبار: ادغام با IoT و مدیریت queue برای گزارشات سنگین.
  • آنالیز و ML: Odoo برای ML سبک مناسب است؛ برای مدل‌های سنگین از سرورهای GPU مجزا استفاده کنید.

جمع‌بندی و گام‌های بعدی

در این راهنما نصب سریع با Docker و نصب دستی برای کنترل کامل، نکات امنیتی، بهینه‌سازی عملکرد، بکاپ و راهکارهای HA پوشش داده شد. انتخاب صحیح لوکیشن، سخت‌افزار و پیکربندی شبکه تاثیر مستقیم بر پایداری و عملکرد Odoo دارد.

اگر نیاز به محیطی با لوکیشن‌های متعدد، محافظت ضدDDoS، Managed DB و پشتیبانی فنی دارید، سرویس‌های مطرح‌شده در سند ورودی مناسب هستند و می‌توانند به استقرار امن و مقیاس‌پذیر کمک کنند.

Часто задаваемые вопросы

Вам также может понравиться