Odoo yazılımını Docker ve manuel kurulum ile kurma kılavuzu
این مقاله راهنمایی جامع برای نصب و پیکربندی نرم‌افزار Odoo به دو روش Docker و دستی است.

Odoo yazılımını Docker ve manuel kurulum ile kurma kılavuzu

Bu makale, hem Docker hem de manuel kurulum yöntemlerini kullanarak Odoo'yu kurmanın adım adım bir rehberini sunacaktır. Odoo'yu nasıl optimize edeceğinizi ve güvenlik ve ölçeklenebilirlik önerilerini nasıl uygulayacağınızı öğreneceksiniz. Bu kılavuz, bulut ve VPS sunucularında çalışacak şekilde en iyi şekilde kurmak ve yapılandırmak için adımlar, ipuçları ve püf noktaları içermektedir.
0 Hisse senetleri
0
0
0
0

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

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

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

Odoo شامل اجزای کلیدی زیر است:

  • اپلیکیشن Python (backend) که با PostgreSQL ارتباط دارد.
  • Web client که HTTP/WS را از طریق پورت 8069 ارائه می‌دهد؛ longpolling برای گزارشات و اعلانات بلادرنگ.
  • Dosya deposu برای ذخیره پیوست‌ها در دیسک یا راهکارهای ابری (S3).
  • ماژول‌های اضافی و افزونه‌ها (community Veya enterprise).

Ön koşullar

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

  • İşletim sistemi: Ubuntu 20.04/22.04 یا Debian 11/12
  • PostgreSQL 12+ (سازگار با نسخه Odoo)
  • Python 3.8+، pip، virtualenv (برای نصب معمولی)
  • Docker Engine + docker-compose (برای روش کانتینری)
  • Nginx یا HAProxy به‌عنوان reverse proxy و SSL termination
  • حافظه و پردازنده متناسب با بار کاربران و اتوماسیون

نصب Odoo با Docker

Avantajları: ایزوله‌شدن، سادگی استقرار، سازگاری نسخه‌ها و مدیریت از طریق 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

بکاپ

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

  • Veritabanı: منظم با pg_dump یا snapshot در سطح بلاک و تست restore.
  • Dosya deposu: rsync به object storage (S3-compatible) یا mount NFS و بکاپ آن.
  • خودکارسازی: اسکریپت‌های cron و نگهداری ۷/۳۰ روزه و انتقال به مکان جغرافیایی دیگر.
pg_dump -U odoo -Fc odoo > /backups/odoo_$(date +%F).dump

İzleme

Kullanımı Prometheus + Grafana یا ابزارهای SaaS برای بررسی CPU, RAM, disk i/o, connections و queueها. لاگ‌ها را به central logging (ELK/Graylog) ارسال کنید.

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

  • PostgreSQL replication (streaming replication) یا استفاده از Managed DB.
  • Yük Dengeleyici (HAProxy/Nginx) و چندین Odoo app nodes.
  • Dosya deposu به‌صورت shared storage (NFS/Gluster) یا S3-compatible برای تضمین دسترسی همزمان.

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

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

  • Gecikme süresi: انتخاب دیتاسنتر نزدیک به کاربران نهایی برای کاهش پینگ.
  • Compliance: رعایت قوانین محلی و مقررات حریم خصوصی.
  • Ağ: برای حساسیت به تأخیر از لوکیشن‌های با پینگ پایین و شبکه 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 و پشتیبانی فنی دارید، سرویس‌های مطرح‌شده در سند ورودی مناسب هستند و می‌توانند به استقرار امن و مقیاس‌پذیر کمک کنند.

Sıkça Sorulan Sorular

Ayrıca Şunları da Beğenebilirsiniz