پرش به محتوا

راهنمای جامع استقرار و راه‌اندازی اودو (Odoo)

5 ژانویهٔ 2026 توسط
راهنمای جامع استقرار و راه‌اندازی اودو (Odoo)
رهام ایزدی


استقرار اودو فقط «نصب نرم‌افزار» نیست؛ شما دارید یک سیستم عملیاتی برای فروش، مالی، انبار، تولید، منابع انسانی و تجربه مشتری را وارد قلب سازمان می‌کنید. اگر همان ابتدا مرز بین پیاده‌سازی فرآیندی و راه‌اندازی فنی مشخص نشود، معمولاً یا پروژه در سفارشی‌سازی‌های بی‌پایان گیر می‌کند، یا با یک Go-Live پرریسک وارد تولید می‌شود.

در این مقاله یک نقشه‌ی اجرایی می‌سازیم که هم برای مدیر پروژه قابل فهم باشد، هم برای تیم فنی قابل اجرا: از انتخاب مدل میزبانی (Online / Odoo.sh / On-Premise) تا معماری، امنیت، بکاپ، تست، و نهایتاً Go-Live و پشتیبانی پس از راه‌اندازی. (نمونه‌ها و استانداردها بر اساس منابع رسمی و معتبر بین‌المللی است.)


مدل استقرار اودو را درست انتخاب کنید (Online vs Odoo.sh vs On-Premise)

قبل از هر تصمیم فنی، باید بدانید چه چیزی را می‌خواهید «کنترل» کنید و چه چیزی را می‌خواهید «واگذار» کنید.


1) Odoo Online (SaaS)

  • مناسب وقتی است که کمترین نگهداری زیرساخت را می‌خواهید و بیشتر تمرکز روی فرآیند و آموزش کاربران است.

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


2) Odoo.sh (PaaS روی Git)

  • مناسب برای تیم‌هایی که توسعه/ماژول اختصاصی دارند اما نمی‌خواهند درگیر نگهداری همه‌چیز شوند.

  • مزیت کلیدی: محیط‌های Production / Staging / Development و روند «تست با داده واقعی» از طریق Staging. در مستندات Odoo.sh توضیح داده شده که Staging برای تست با داده تولید ساخته می‌شود و روند Merge/Deploy با drag & drop انجام می‌گیرد.

  • نکته مهم: برخی دیتابیس‌های غیرپروداکشن (مثل staging/dev) محدودیت عمر دارند و بکاپ خودکار هم برای همه مراحل یکسان نیست؛ این‌ها باید در برنامه تست/ریکاوری شما لحاظ شود.

  • همچنین Odoo.sh درباره «Database workers» و این‌که افزایش worker لزوماً مشکل کندی را حل نمی‌کند، هشدار می‌دهد (کندی ممکن است کد/سفارشی‌سازی باشد). 


3) On-Premise (Self-Hosted)

  • مناسب وقتی است که کنترل کامل روی شبکه، دیتا، امنیت، قوانین داخلی، یا یکپارچگی‌های سنگین می‌خواهید.

  • اما هزینه‌اش این است که باید استانداردهای عملیاتی (TLS، بکاپ، مانیتورینگ، آپدیت، سخت‌سازی امنیت) را جدی بگیرید.


نصب odoo


نقشه راه پروژه استقرار: از Kick-off تا Go-Live (مدیریت پروژه، نه فقط نصب

یکی از نکات ارزشمند در متدولوژی رسمی Odoo این است که پروژه را فازبندی کنید و «نیازهای حیاتی برای Go-Live» را از «بهبودهای فاز دوم» جدا نگه دارید.


فاز 1: Kick-off و هم‌راستاسازی

در Kick-off باید:

  • نقش‌ها مشخص شوند (نماینده اصلی مشتری/Single Point of Contact یا SPoC)

  • برنامه پروژه نهایی شود

  • یک تحلیل سریع ROI/امکان‌سنجی انجام شود و سطح تعهد زمانی تیم‌ها روشن شود


فاز 2: تحلیل فرآیند و طراحی (Blueprint سبک، اما دقیق)

هدف این فاز این نیست که «همه‌چیز را مستندسازی سنگین» کنید؛ هدف این است که:

  • فرآیندهای کلیدی را انتخاب کنید (Order-to-Cash، Procure-to-Pay، Inventory، Accounting Close…)

  • شکاف‌ها (Gap) را مشخص کنید: استاندارد Odoo؟ تنظیمات؟ توسعه؟


فاز 3: پیکربندی و توسعه حداقلی برای Go-Live

در متدولوژی Odoo توصیه می‌شود توسعه‌ها را دو دسته کنید:

  1. ضروری برای ورود به تولید

  2. قابل انتقال به فاز دوم بعد از Go-Live Odoo


فاز 4: مهاجرت داده و تست جریان‌های واقعی

  • مهاجرت «داده‌های پایه» (محصول، مشتری، تامین‌کننده، حساب‌ها، موجودی افتتاحیه…) معمولاً ضروری است.

  • وارد کردن تاریخچه چندسال قبل همیشه ارزش ندارد؛ اگر قرار است به‌ندرت استفاده شود، می‌تواند به فاز دوم منتقل شود (این نگاه در متدولوژی Odoo هم مطرح است).


فاز 5: آموزش، UAT و Go-Live

توصیه‌های اجرایی Odoo برای Go-Live شامل این‌هاست:

  • آموزش باید عملی باشد (کاربر خودش جریان را انجام بدهد)

  • Go-Live را بی‌دلیل عقب نیندازید؛ عقب‌انداختن معمولاً ریسک و هزینه را بالا می‌برد

  • در روزهای اول، واکنش سریع به مشکلات مهم‌تر از «بی‌نقص بودن» است


فاز 6: Hypercare و فاز دوم

یک ماه بعد از استقرار اولیه، فاز دوم برای بهبودها/سفارشی‌سازی‌های غیرحیاتی و اصلاح اولویت‌ها انجام می‌شود.


پیش‌نیازهای فنی Odoo 19 برای On-Premise

اگر نسخه هدف شما Odoo 19 است:

  • حداقل Python 3.10+

  • حداقل PostgreSQL 13+ Odoo

این‌ها را از همان ابتدا معیار قرار دهید، چون ناسازگاری نسخه‌ها می‌تواند در مرحله نصب یا حتی بعدتر در عملکرد/امنیت مشکل ایجاد کند.


معماری پیشنهادی برای استقرار پایدار (Production-Grade)


اصل معماری: Reverse Proxy جلوی Odoo + HTTPS اجباری

خود مستندات Odoo برای حالت production تأکید می‌کند:

  • باید یک proxy جلوی Odoo باشد

  • و Odoo در حالت --proxy-mode اجرا شود تا هدرهای واقعی کاربر (scheme/host/ip) درست مدیریت شوند Odoo+1


 Websocket/LiveChat و پورت gevent

در حالت multi-processing، Odoo یک worker مخصوص LiveChat/Websocket دارد و نیاز است:

  • مسیرهایی که با /websocket/ شروع می‌شوند به worker مربوطه هدایت شوند

  • و proxy-mode فعال باشد Odoo


محاسبه Worker و RAM (تقریبی، اما مفید)

Odoo در مستندات production:

  • فرمول/مثال محاسبه تعداد worker و برآورد RAM را ارائه می‌دهد (تفکیک درخواست‌های سنگین/سبک و تخمین مصرف RAM) 

    این اعداد «قانون طبیعت» نیستند؛ مبنا برای شروع‌اند. تصمیم نهایی باید با مانیتورینگ CPU/RAM و مشاهده p95/p99 زمان پاسخ‌گویی گرفته شود.


سخت‌سازی امنیتی که برای Odoo حیاتی است

در سرور اینترنتی، Odoo صریحاً چند نکته را توصیه می‌کند که اگر رعایت نشود، ریسک نفوذ واقعی است:


 Database Manager را در تولید محدود غیرفعال کنید

  • پسورد super-admin (admin_passwd) باید قوی باشد

  • و به‌شدت توصیه می‌شود Database Manager برای سیستم‌های اینترنتی غیرفعال شود یا دسترسی آن محدود گردد (چون برای production طراحی نشده و می‌تواند خطرناک باشد).


 dbfilter و list_db = False

  • dbfilter درست + محدود کردن دیتابیس‌های قابل مشاهده، بخشی از امنیت است.

  • بعد از اینکه هر hostname فقط به یک دیتابیس match شد، list_db را False کنید تا لیست دیتابیس‌ها و صفحات مدیریت دیتابیس عملاً بسته شود.


بدون demo data در سرور عمومی

Odoo هشدار می‌دهد دیتابیس‌های دارای demo data می‌توانند شامل لاگین/پسوردهای پیش‌فرض باشند و روی اینترنت دردسرساز شوند.


ضد Brute Force و کنترل نشست‌ها

  • Odoo حتی نمونه الگو برای Fail2ban و مسدودسازی تلاش‌های ورود ناموفق ارائه می‌دهد. Odoo

  • برای دید امنیتی سطح وب‌اپلیکیشن، حداقل با OWASP Top 10 و راهنمای مدیریت نشست‌ها هم‌راستا شوید.


 TLS را استاندارد کنید (نه «فقط SSL روشن باشد»)

برای تنظیم امن TLS روی Nginx/سرویس‌ها، از Mozilla SSL Configuration Generator استفاده کنید و خروجی را مبنا قرار دهید. 


بکاپ و Disaster Recovery: چیزی که بعد از حادثه تازه جدی گرفته می‌شود

برای Odoo، بکاپ فقط «dump دیتابیس» نیست؛ چون فایل‌های پیوست/filestore و همچنین سناریوهای «بازگشت به یک لحظه خاص» هم مطرح‌اند.


دو سطح بکاپ پیشنهادی

  1. Logical backup با pg_dump (مناسب برای مهاجرت/Restore ساده)

  2. Physical backup + WAL archiving برای Point-in-Time Recovery (PITR)

PostgreSQL توضیح می‌دهد که برای PITR باید توالی پیوسته WAL آرشیوشده داشته باشید و قبل از اولین base backup، فرآیند archiving را راه‌اندازی و تست کنید.

همچنین pg_basebackup ابزار استاندارد گرفتن base backup از یک کلاستر در حال اجراست و برای PITR و replication استفاده می‌شود.


نکته عملی

  • هر استراتژی بکاپی که Restore تست‌شده ندارد، عملاً «امید» است نه بکاپ.

  • زمان بازیابی (RTO) و میزان داده قابل از دست رفتن (RPO) را از ابتدا تعریف کنید.


استقرار Odoo erp


چک‌لیست Go-Live فنی (قبل از قطع وابستگی به سیستم قبلی)


زیرساخت و عملکرد

  • Reverse proxy فعال + proxy_mode فعال Odoo+1

  • مسیر /websocket/ درست route شده (اگر پیام‌رسانی/LiveChat دارید)

  • تعداد worker و limitها بر اساس تست بار/مانیتورینگ تنظیم شده‌اند


امنیت

  • admin_passwd قوی، عدم استفاده از admin/admin

  • list_db = False و dbfilter صحیح

  • لاگ‌گذاری و ضد brute force (Fail2ban یا معادل)

  • TLS مطابق راهنمای معتبر (Mozilla)


بکاپ

  • بکاپ دیتابیس + فایل‌ها

  • تست Restore

  • اگر PITR لازم است: base backup + WAL archiving تست‌شده


نتیجه‌گیری: استقرار موفق یعنی «قابل تکرار، قابل پایش، قابل بازیابی»


اگر بخواهم این مقاله را به یک جمله تبدیل کنم:

استقرار اودو زمانی حرفه‌ای است که بتوانید آن را دوباره بسازید (reproducible)، پایش کنید (observable)، و بعد از خطا برگردانید (recoverable).

برای رسیدن به این نقطه:

  • مدل میزبانی را بر اساس «کنترل موردنیاز» انتخاب کنید (Online / Odoo.sh / On-Premise)

  • پروژه را فازبندی کنید و Go-Live را با حداقل توسعه حیاتی انجام دهید

  • امنیت، TLS، dbfilter، و محدود کردن Database Manager را جدی بگیرید

  • بکاپ را به «برنامه بازیابی» تبدیل کنید، نه یک فایل روی دیسک




راهنمای جامع استقرار و راه‌اندازی اودو (Odoo)
رهام ایزدی 5 ژانویهٔ 2026
این پست را به اشتراک بگذارید
برچسب‌ها
بایگانی