Установка Odoo ERP в Ubuntu Linux 18.04


Odoo ERP - комплексная модульная информационная система ERP-класса довольно распространенная за рубежном и совершенно непопулярная в России. Я с ней познакомился лет так пять назад и я вам скажу, что она мне реально понравилась и по сравнению с однотипными решениями Sugar CRM/Suite CRM/vTiger CRM ее CRM модуль былк как глоток свежего воздуха.

Установка Odoo ERP в тестовое и продакшн-окружение

Но по правде говоря модель работы с Odoo ERP значительно отличается от типовых решений и я бы даже сказал она нацелена на "Европейского человека". Помимо всего вышеперечисленного Odoo ERP еше и специфично устанавливается и настраивается о чем я собственно и хотел рассказать в этой статье.

Устанавливаем необходимые пакеты рабочего окружения:

# aptitude install python3 python3-dev python3-pip
# aptitude install libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev
Устанавливаем Postgresql 11-ой версии:

# echo 'deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main' >> /etc/apt/sources.list.d/pgdg.list
# wget https://www.postgresql.org/media/keys/ACCC4CF8.asc
# apt-key add ACCC4CF8.asc
# apt-get update
# aptitude install postgresql-server-dev-11 postgresql-11

Клонируем репозитарий:

# cd /usr/src/
# git clone https://github.com/odoo/odoo.git
# cd ./odoo/

Подготовка к работе:

# pip3 install -r requirements.txt
# curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
# aptitude install nodejs
# npm install -g rtlcss
# cp ./setup/odoo-wsgi.example.py ./odoo-wsgi.py
# python3 ./setup.py install

Создаем базу данных:

# su postgres
$ psql
# CREATE USER gd_odoo_erp WITH CREATEDB PASSWORD 'SePssAA';
# CREATE DATABASE odoo_erp OWNER gd_odoo_erp;

Инициализируем базу данных:

# python3 ./odoo-bin --database=odoo_erp --db_user=gd_odoo_erp --db_password="SePssAA" --db_host=127.0.0.1 --without-demo=all -i base

Редактируем конфигурационный файл odoo-wsgi.py:

import odoo

odoo.multi_process = True # Nah!

odoo.conf.server_wide_modules = ['base', 'web']
conf = odoo.tools.config


conf['addons_path'] = './addons/'

conf['db_name'] = 'odoo_erp'
conf['db_host'] = 'localhost'
conf['db_user'] = 'gd_odoo_erp'
conf['db_port'] = 5432
conf['db_password'] = 'SePssAA'

application = odoo.service.wsgi_server.application

odoo.service.server.load_server_wide_modules()

bind = '0.0.0.0:8000'
pidfile = '.gunicorn.pid'
workers = 4
timeout = 240
max_requests = 200

Тестовый запуск:

# aptitude install uwsgi-plugin-python3
# pip3 install gunicorn
# /usr/local/bin/gunicorn odoo-wsgi:application --bind 0.0.0.0:8000

Логин и пароль по умолчанию admin/admin

Odoo ERP первый запуск

Запуск в продакшн:

# adduser odoo
# aptitude install supervisor
# mkdir /home/odoo/app
# rsync -a /usr/src/odoo/ /home/odoo/app/
# chown -R odoo:odoo /home/odoo/app/
# rm -R /home/odoo/app/.git

Прописываем полный путь к каталогу аддонов в домашнем каталоге odoo (файл odoo-wsgi.py):

conf['addons_path'] = '/home/odoo/app/addons/'

Создаем конфигурационный файл супервизора (/etc/supervisor/conf.d/odoo.conf):

[program:webvirtcloud]
command=/usr/local/bin/gunicorn odoo-wsgi:application --bind 0.0.0.0:8000
directory=/home/odoo/app
user=odoo
autostart=true
autorestart=true
redirect_stderr=true

Перезапускаем супервизор и пробуем подключиться.