📄 Як встановити модуль Oblik-ERP на Odoo On-Premise, вимоги до сервера 

Як встановити модуль Oblik-ERP на Odoo On-Premise, вимоги до сервера



Кроки 1–5 описують встановлення Oblik-ERP на Odoo On-Premise у базовій конфігурації. Ця частина призначена для випадків, коли розгортання на Odoo.sh не підходить: власна інфраструктура, вимоги до розміщення даних, інтеграції з внутрішніми системами або потреба самостійно керувати ресурсами та налаштуваннями сервера.

Нижче наведено конфігурацію On-Premise-середовища, за якої розрахунок зарплати на обсяг до 2 000 працівників виконується коректно і без обривів: характеристики сервера та налаштування конфігураційних файлів. Значення перевірені на навантажувальному стенді.

Крок 1: Підготовка до встановлення

  1. Перевірка версії Odoo та системні налаштування : Перед початком встановлення перевірте, що ваша система відповідає вимогам Odoo для версії 19.0. Також перегляньте інструкцію Odoo on Premise, у розділі Конфігурація системи ви знайдете інформацію про розрахунок робочої чисельності та розрахунок обсягу пам'яті.
  2. Встановлення необхідного програмного забезпечення: Переконайтесь, що у вас є встановлені такі компоненти:
  • Python (рекомендується версія 3.6 і вище)
  • PostgreSQL (рекомендується версія 12 і вище)
  • Пакети, потрібні для роботи Odoo (зокрема pip, virtualenv, залежності тощо).

Крок 2: Встановлення Odoo

Скористайтеся основною інструкцією з Odoo, доступною за посиланням: [ODOO INSTALLATION GUIDE

  1. Клонуйте репозиторій Odoo з GitHub.
  2. Налаштуйте ваше віртуальне середовище Python.
  3. Встановіть необхідні залежності через pip.
  4. Сконфігуруйте PostgreSQL для Odoo.
  5. Створіть конфігураційний файл для Odoo з правильними параметрами доступу до бази даних.

Крок 3: Налаштування перезапуску Odoo

Оскільки для встановлення оновлень продукту необхідно перезавантажити Odoo, важливо налаштувати автоматичний запуск служби Odoo після перезавантаження системи.

  1. Налаштуйте систему для перезапуску Odoo: Оптимально, щоб це робив фахівець, який відповідає за розгортання та супроводження Odoo.
  2. Якщо використовується systemd, то створіть файл systemd або використовуєте init.d: Цей файл повинен описувати, як і коли Odoo має стартувати автоматично після перезавантаження сервера. Приклад системного файлу:

    [Unit]
    Description=Odoo
    After=postgresql.service
    
    [Service]
    User=odoo
    ExecStart=/path/to/your/odoo/odoo-bin -c /etc/odoo.conf
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  3. Активуйте службу: Використовуйте команду sudo systemctl enable odoo для того, щоб Odoo автоматично запускалась під час старту системи.



Крок 4: Встановлення продукту Oblik-ERP

  1. Завантажте модуль продукту продукту  "Oblik-ERP" на Odoo App Store 
  2. Розархівуєте файли модуля "Oblik-ERP" та перемістіть його у відповідну папку для зовнішніх модулів на сервері Odoo, вказану в конфігурації Odoo. 
    Інформацію про встановлення модулів, ви можете переглянути у документації Odoo
    .
    Важливо!
    1. Модуль лоадера (oblik_iap_client) повинен бути лише в одному екземпларі і лежати на файловій системі (зазвичай це /home/odoo/.local/share/Odoo/addons/19.0);
    2. Модуль не можна розміщати в репозиторії!;
    3. Власником директорії /home/odoo/.local/share/Odoo/addons/19.0 та всього її вмісту повинен бути користувач від якого запускається і працює Odoo. У власника мають бути права на запис.
  3. Перезапустіть Odoo;
  4. Перейдіть у робочу базу Odoo;
  5.  Ввімкніть режим розробника - "Settings" (Налаштування)-> опустіться вниз сторінки та активуйте його;
  6. Перейдіть у модуль "Apps" (Додатки) ;
  7. Натисніть на кнопку"Update Apps List" (Оновити список додатків), щоб оновити список доступних модулів;
  8.  Оберіть модуль `oblik_bootloader` у списку та натисніть на кнопку "Activate".
  9. Зареєструйте свою базу даних в налаштуваннях модуля Oblik-ERP Accounting згідно інструкції 📄 Налаштування та оновлення Oblik-ERP в базі даних (19 версія)та активуйте функціонал модуля через інтерфейс Odoo, щоб він став доступним для використання.

Зверніть Увагу! Якщо не було коректно налаштовано автоматичний перезапуск Odoo, то після кроку 6 потрібно запустити Odoo вручну.

Крок 5: Завершальні дії

  1. Запустіть Odoo: Після завершення всіх налаштувань повністю запустіть Odoo.
  2. Перевірте роботу продукту "Oblik-ERP": Увійдіть у систему та переконайтеся, що всі модулі працюють коректно.
Пам’ятайте! Будь-які оновлення продукту "Oblik-ERP" вимагають перезавантаження Odoo, тому важливо, щоб адміністратор слідкував за налаштуванням автоматичного запуску Odoo після перезавантаження. Рекомендуємо налаштувати respown Odoo, щоб вона автоматично запустилася після зупинки.  Якщо у вас виникнуть додаткові питання або знадобиться допомога, будь ласка, звертайтесь! Успіхів!

Вимоги до сервера Odoo On-Premise для розрахунку зарплати до 2 000 працівників


Перевірено на навантажувальному стенді. Нижче — мінімальна конфігурація, на якій розрахунок проходить, і налаштування, без яких він обривається навіть на потужнішому залізі.

  • 2VCPU DEDICATED;
  • 8ГБ RAM;
  • 80ГБ ДИСК.

1. Сервер

Вимоги сформульовані до параметрів, а не до конкретного провайдера — підійде будь-яка майданчик, що забезпечує наведені нижче характеристики. Принципова умова одна: виділені (dedicated) vCPU, не спільні.

Мінімальні вимоги

РесурсВимога
vCPU2, виділені (dedicated)
Процесорсерверного класу, AMD EPYC 3-го покоління або новіший чи рівноцінний Intel Xeon
RAM8 ГБ, бажано ECC
Диск80 ГБ, NVMe SSD

На тарифах зі спільними (shared) vCPU процесорний час розподіляється між орендарями одного фізичного хоста. Тривалість розрахунку в такому середовищі непрогнозована: один і той самий обсяг даних може оброблятися суттєво довше залежно від навантаження сусідніх систем. На виділених vCPU один vCPU відповідає окремому потоку фізичного ядра, тому час виконання стабільний і відтворюваний.

Заміри, на яких базуються ці вимоги, проводилися на стенді Hetzner Cloud CCX13 (2 виділені vCPU, 8 ГБ, 80 ГБ NVMe). Апаратний базис цієї лінії описаний у документації провайдера — його зручно використовувати як орієнтир при звірці пропозицій інших майданчиків.


2. odoo.conf

Стандартні значення Odoo розраховані на короткі запити: ліміт часу за замовчуванням — 60 секунд. Масове нарахування в них не вкладається, тому конфігурацію потрібно привести до такого вигляду. Рекомендовані ліміти часу — 900 секунд (15 хвилин), тобто той самий рівень, у якому розрахунок укладається на Odoo.sh.

/ETC/ODOO/ODOO.CONF

workers               = 2
max_cron_threads      = 2

limit_time_cpu        = 900           ; 15 хв процесорного часу
limit_time_real       = 900           ; 15 хв реального часу
limit_time_real_cron  = -1            ; крон без обмеження часу

limit_memory_soft     = 2147483648    ; 2.0 GiB на процес
limit_memory_hard     = 2684354560    ; 2.5 GiB на процес

db_maxconn            = 15
unaccent              = True

logfile               = /var/log/odoo/odoo.log
log_level             = warn
КлючовеНавіщо
limit_time_cpu / real900 секунд замість дефолтних 60. Без цього операція, запущена з інтерфейсу, обривається з помилкою раніше, ніж завершиться розрахунок.
limit_time_real_cron = -1Знімає обмеження часу з планових дій — саме кроном виконується масове нарахування. На відміну від запиту з інтерфейсу, планова задача не тримає користувача в очікуванні, тому обмежувати її часом немає потреби.
limit_memory_soft / hard2 і 2.5 GiB на процес. Розрахунок тримає в пам'яті великий обсяг записів; на дефолтних лімітах воркер перезапускається посеред роботи.
workers = 2Рівно під 2 виділені ядра. Разом із двома крон-процесами це вся паралельність системи — більше на цій конфігурації ставити не можна, бо не вистачить пам'яті.

Якщо конфігурацію вже змінювали

Наведені значення є мінімально рекомендованими. Якщо у вашому odoo.conf ліміти часу вже вищі за наші — залиште їх без змін. Знижувати їх до цих значень не потрібно: це може обірвати операції, які зараз виконуються успішно.

Виняток — limit_memory_soft і limit_memory_hard. Вони прив'язані до фактичного обсягу оперативної пам'яті сервера, тому їх не варто піднімати «про запас»: сумарна стеля всіх процесів Odoo не повинна перевищувати доступну пам'ять.


3. nginx

Друга половина того самого рішення. Немає сенсу дозволяти Odoo працювати 15 хвилин, якщо проксі розриває з'єднання на 60-й секунді — користувач отримає 504 Gateway Timeout, хоча розрахунок на сервері триває. Значення таймаутів узгоджуються з limit_time_real.

NGINX · КОНФІГУРАЦІЯ САЙТУ

proxy_read_timeout     900s;
proxy_send_timeout     900s;
proxy_connect_timeout  900s;

ГОЛОВНЕ

Сервер і конфігурація працюють тільки разом. Найпоширеніша помилка — виділити відповідні ресурси, але лишити налаштування за замовчуванням: нарахування обривається по таймауту, і це сприймається як «система не тягне», хоча ресурсів достатньо, а причина — в одному рядку конфігураційного файлу.