Как установить программное обеспечение Odoo ERP на сервер Ubuntu 24.04

Odoo (ранее известная как OpenERP) – это самостоятельный набор из более чем 10 000 открытых программ Odoo – это бесплатное ERP-решение с открытым исходным кодом для различных типов бизнеса. Odoo, ранее известная как OpenERP, является ERP и CRM-решением и не только. Оно обеспечивает управление взаимоотношениями с клиентами (CRM), конвейер продаж, управление проектами, производство, выставление счетов, бухгалтерский учет, электронную коммерцию и многое другое.

Odoo – это одно из комплексных ERP-решений для вашего бизнеса. Она имеет 30 основных модулей по умолчанию и предоставляет более 4500 дополнительных модулей, чтобы помочь вашему бизнесу.

В этом руководстве вы установите Odoo open-source ERP на сервер Ubuntu 24.04. Вы установите и настроите последнюю стабильную версию Odoo 17, настроите базу данных PostgreSQL для Odoo и, наконец, настроите Nginx в качестве обратного прокси для приложения Odoo.

Установка зависимостей

Чтобы установить Odoo, вам сначала нужно установить некоторые зависимости от пакетов в вашу систему Ubuntu. Odoo ERP – это веб-приложение, написанное в основном на Python, поэтому вам также потребуется установить некоторые пакеты Python.

Прежде чем начать установку пакетов, выполните следующую команду apt, чтобы обновить и обновить индекс пакетов.

sudo apt update

обновить репо

Далее установите зависимости пакетов для odoo, выполнив следующие действия apt команда. Эта установка будет включать последнюю версию Python, build-essentials для компиляции пакетов Python и некоторые библиотеки, необходимые odoo.

sudo apt install git wget python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev python3-wheel libsasl2-dev python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libxrender1 libpq-dev libffi-dev fontconfig

Когда появится запрос, введите y для подтверждения и нажмите ENTER для продолжения. После этого начнется установка.

установить deps

После установки Python и других зависимостей следующим шагом будет установка Node.js, который будет использоваться для генерации статических файлов, и установка пакета wkhtmltopdf для генерации PDF-отчетов.

Установка Nodejs

Чтобы установить Odoo, вы должны убедиться, что Node.js установлен в вашей системе. Node.js используется для генерации статических файлов для веб-приложений odoo. В этом шаге вы установите Node.js 20 из стороннего репозитория Nodesource.

Выполните следующую команду, чтобы загрузить и установить репозиторий Nodesource для Node.js 20.

sudo curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Эта команда загрузит и запустит сценарий установщика. После этого сценарий установки автоматически настроит репозиторий для Node.js, добавит GPG-ключ, а также автоматически обновит индекс пакетов в вашей системе.

добавить репозиторий nodejs

Далее выполните следующую команду apt для установки пакета Node.js. Когда появится запрос, введите y подтвердите и нажмите ENTER, чтобы продолжить.

sudo apt install nodejs

установить nodejs

После установки Node.js выполните следующую команду npm, чтобы установить ‘rtlcss‘ пакет.

rtlcss‘ пакет необходим для odoo, особенно если вы используете право-левый пользовательский интерфейс для специфических языков, таких как арабский и иврит.

sudo npm install -g rtlcss

установить rtlcss

Установка Wkhtmltopdf

Для odoo open-source ERP требуется установить пакет wkhtmltopdf. Этот пакет необходим для рендеринга HTML-страниц в PDF и различные форматы изображений с помощью Qt Webkit. Пакет wkhtmltopdf будет установлен вручную через пакет .deb в систему Ubuntu.

Выполните следующую команду, чтобы загрузить .deb-файл пакета Wkhtmltopdf пакет.

cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb

Установите пакет Wkhtmltopdf через dpkg команда ниже.

sudo dpkg -i wkhtmltox_0.12.6.1-3.jammy_amd64.deb

Если вы получили ошибку, например, отсутствие пакета, исправьте ее с помощью следующих действий apt команда.

sudo apt install -f

установить wkhtmltopdf

После установки Wkhtmltopdf вы можете проверить бинарный файл пакета Wkhtmltopdf, который по умолчанию доступен на ‘/usr/local/bin‘ каталог. Вы должны увидеть две программы ‘wkhtmltopdf’ и ‘wkhtmltoimage‘.

ls /usr/local/bin

Теперь выполните следующую команду, чтобы проверить $PATH убедитесь, что переменная окружения ‘/usr/local/bin‘ каталог доступен в двоичной системе $PATH. В противном случае пакет Wkhtmltopdf не будет работать должным образом.

echo $PATH

Наконец, выполните следующую команду, чтобы убедиться, что путь к бинарным файлам пакета Wkhtmltopdf доступен. Если пакет Wkhtmltopdf доступен, вы должны получить вывод полного пути к пакету Wkhtmltopdf.

which wkhtmltopdf
which wkhtmltoimage

проверить wkhtmltopdf

Установка сервера баз данных PostgreSQL

ERP с открытым исходным кодом odoo поддерживает такие базы данных, как MySQL, SQLite и PostgreSQL. В этом шаге вы установите и будете использовать PostgreSQL в качестве базы данных по умолчанию для вашей установки odoo. Вы также настроите роль PostgreSQL и внесете изменения в конфигурацию PostgreSQL.

Выполните следующую команду apt для установки сервера баз данных PostgreSQL. Когда появится запрос на подтверждение, введите y, и нажмите ENTER.

sudo apt install postgresql

установить postgresql

После установки PostgreSQL выполните следующую команду, чтобы проверить PostgreSQL и убедиться, что служба включена и работает.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

В следующем выводе видно, что служба PostgreSQL включена и будет запускаться автоматически при старте системы. А статус PostgreSQL – запущен.

проверить postgresqlk

Далее вам предстоит создать новую роль для odoo. Выполните следующую команду для входа в систему ‘postgres‘ пользователя и создайте новую роль с именем ‘odoo‘.

su - postgres
createuser -sdP odoo

Введите пароль для новой роли ‘odoo‘ и повторите его.

Теперь войдите в оболочку PostgreSQL с помощью команды psql, приведенной ниже.

psql

Выполните следующий запрос, чтобы проверить список ролей в PostgreSQL и убедиться, что роль ‘odoo‘ доступен.

\du

Теперь введите ‘\q‘, чтобы выйти из оболочки PostgreSQL. Затем введите ‘exit‘, чтобы выйти из системы под пользователем postgres.

создание и проверка пользователя postgres

Теперь, после того как вы создали роль для odoo, вам нужно проверить аутентификацию для роли ‘odoo’.

Войдите в систему под именем ‘postgres‘ пользователя и проверьте ‘odoo’ роль, войдя в оболочку PostgreSQL с помощью команды psql, как показано ниже.

su - postgres
psql -h 127.0.0.1 -U odoo -d postgres

После входа в систему проверьте, используя следующий запрос.

\conn

Теперь вы должны увидеть, что вы подключены к PostgreSQL с ролью ‘odoo‘.

подключиться к postgresql

На этом подготовка базы данных PostgreSQL для odoo завершена. Далее вы начнете установку odoo с загрузки исходного кода и установки зависимостей Python.

Загрузка Odoo 17

В этой демонстрации вы установите и запустите odoo v17 с пользователем ‘odoo’. Итак, сейчас вы создадите нового пользователя Unix ‘odoo’ и загрузите последнюю версию исходного кода odoo 17.

Выполните следующую команду для создания нового пользователя ‘odoo‘. В этом примере домашний каталог по умолчанию для пользователя ‘odoo‘ будет ‘/opt/odoo‘, а оболочкой по умолчанию является bash.

sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo

Теперь переместите рабочий каталог в ‘/opt/odoo‘ и загрузите исходный код odoo с помощью следующей команды git. В этом примере вы установите odoo 17.

cd /opt/odoo
git clone https://github.com/odoo/odoo.git --depth 1 --branch 17.0 --single-branch odoo-server

Теперь у вас должна появиться новая директория ‘odoo-server‘ внутри ‘/opt/odoo‘ директория.

Наконец, выполните следующую команду, чтобы изменить право собственности на исходный код odoo на пользователя и группу ‘odoo‘.

sudo chown -R odoo:odoo /opt/odoo/odoo-server

После загрузки исходного кода odoo вы начнете установку зависимостей пакета Python для odoo.

Установка зависимостей Python для Odoo

В этом шаге вы настроите виртуальную среду Python для odoo и установите зависимости Python с помощью команды pip3.

Переместите рабочий каталог в ‘/opt/odoo/odoo-server’ и создайте новую виртуальную среду Python ‘venv’ с помощью следующей команды.

cd /opt/odoo/odoo-server
python3 -m venv venv

Затем активируйте виртуальную среду Python ‘venv’ с помощью следующей команды.

source venv/bin/activate

После активации виртуальной среды Python вы увидите, что ваша текущая оболочка изменилась на ‘(venv) root@hostname…‘.

Теперь выполните следующую команду pip3 для установки Python-пакета wheel и установки зависимостей odoo Python через файл requirements.txt.

pip3 install wheel
pip3 install -r requirements.txt

установить deps odoo

После установки зависимостей Python выполните следующую команду, чтобы выйти из виртуальной среды Python ‘venv’.

deactivate

Теперь вы скачали исходный код odoo и установили зависимости Python. Далее вам предстоит создать новую конфигурацию и каталог для установки odoo.

Создание конфигурации Odoo

Создайте новый файл конфигурации ‘/etc/odoo.conf‘, используя следующий редактор nano.

sudo nano /etc/odoo.conf

Добавьте в файл следующую конфигурацию. И не забудьте изменить ‘admin_passwd‘ и укажите пользователя и пароль базы данных, указав свои данные.

[options]
; This is the password that allows database operations:
admin_passwd = adminpassodoo
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = odoo
addons_path = /opt/odoo/odoo-server/addons
xmlrpc_port = 8069
logfile = /var/log/odoo/odoo-server.log
log_level = debug

Сохраните файл и выйдите из редактора.

Теперь измените право собственности на файл конфигурации odoo ‘/etc/odoo.conf‘ для системного пользователя ‘odoo’.

sudo chown odoo:odoo /etc/odoo.conf

Далее выполните следующую команду, чтобы создать новую директорию, которая будет использоваться для хранения журналов odoo.

sudo mkdir /var/log/odoo

Затем измените право собственности на каталог журналов odoo ‘/var/log/odoo‘ пользователю ‘odoo‘ и измените разрешение на 755.

sudo chown odoo:odoo /var/log/odoo
sudo chmod 755 /var/log/odoo

Запуск Odoo в качестве службы Systemd

На данном этапе вы можете запустить odoo вручную через командную строку. Чтобы сделать это проще, вы можете запустить odoo как службу systemd. Это позволит вам управлять odoo с помощью команды systemctl.

Сейчас вы создадите новый файл службы systemd и запустите odoo как службу systemd.

Для начала создайте новый файл службы systemd ‘/lib/systemd/system/odoo-server.service’, используя следующий редактор nano.

sudo nano /lib/systemd/system/odoo-server.service

Добавьте в файл следующую конфигурацию.

[Unit]
Description=Odoo 17.0 Service
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-server/venv/bin/python3 /opt/odoo/odoo-server/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Сохраните файл и выйдите из редактора, когда закончите.

Далее перезагрузите менеджер systemd, чтобы применить новый служебный файл, с помощью команды systemctl, приведенной ниже.

sudo systemctl daemon-reload

Запустите и включите службу ‘odoo-server’ с помощью следующей команды.

sudo systemctl start odoo-server
sudo systemctl enable odoo-server

настройка службы odoo

Наконец, проверьте службу odoo, чтобы убедиться, что она запущена.

sudo systemctl status odoo-server

Вы должны получить вывод службы ‘odoo-server‘ запущен.

проверить odoo

Запуск Odoo с помощью обратного прокси-сервера Nginx

Рекомендуемый способ развертывания odoo на производстве – использование обратного прокси. Это позволит вам запустить odoo только на localhost, а весь клиентский доступ будет обрабатываться обратным прокси.

В этом шаге вы установите и настроите веб-сервер Nginx в качестве обратного прокси для веб-приложения odoo. Кроме того, установка odoo будет защищена с помощью SSL. Итак, прежде чем начать настройку Nginx, убедитесь, что вы указали доменное имя на IP-адрес сервера и сгенерировали SSL Letsencrypt.

Сначала измените конфигурационный файл odoo ‘/etc/odoo.conf‘, используя следующий редактор nano.

sudo nano /etc/odoo.conf

Добавьте в файл следующую конфигурацию. Эта конфигурация запустит odoo в качестве внутреннего приложения, которое будет работать на 127.0.0.1.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Сохраните файл и выйдите из редактора, когда закончите.

Теперь выполните следующую команду, чтобы перезапустить службу ‘odoo-server’ и применить новые изменения.

sudo systemctl restart odoo-server

Далее вам предстоит установить и настроить Nginx.

Выполните следующую команду apt для установки пакета веб-сервера Nginx. Введите y при появлении запроса и нажмите ENTER, чтобы продолжить и подтвердить установку.

sudo apt install nginx

установить nginx

После установки Nginx создайте новую конфигурацию блоков сервера Nginx ‘/etc/nginx/sites-available/odoo.conf’, используя следующий редактор nano.

sudo nano /etc/nginx/sites-available/odoo.conf

Добавьте в файл приведенную ниже конфигурацию и не забудьте изменить доменное имя и путь к SSL-сертификатам на свои настройки.

#odoo server
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}

# http -> https
server {
listen 80;
server_name odoo.local;
rewrite ^(.*) https://$host$1 permanent;
}

server {
listen 443 ssl http2;
server_name odoo.local;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;

# Add Headers for odoo proxy mode
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;

# SSL parameters
ssl_certificate /etc/letsencrypt/live/odoo.local/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/odoo.local/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_dhparam /etc/ssl/certs/dhparam.pem;

# log
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;

# Redirect longpoll requests to odoo longpolling port
location /longpolling {
proxy_pass http://odoochat;
}

# Redirect requests to the odoo backend server
location / {
proxy_redirect off;
proxy_pass http://odoo;
}

# common gzip
gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
gzip on;
}

Сохраните файл и закройте редактор, когда закончите.

Теперь активируйте новую конфигурацию блока сервера Nginx и проверьте конфигурацию Nginx, чтобы убедиться в правильности настроек.

sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
sudo nginx -t

Если конфигурация верна, вы увидите сообщение типа ‘test successful – syntax OK’.

Наконец, выполните следующую команду systemctl, чтобы перезапустить службу Nginx и применить новые изменения.

sudo systemctl restart nginx

Итак, вы закончили установку и настройку обратного прокси-сервера Nginx для odoo ERP. Теперь вы можете получить доступ к установке через веб-браузер.

проверка nginx

Настройка брандмауэра UFW

Рекомендуется включить брандмауэр на вашей установке odoo. В этом шаге вы узнаете, как настроить брандмауэр UFW.

По умолчанию на общем сервере Ubuntu установлен пакет ufw, поэтому вы можете просто начать его настройку.

Выполните следующую команду, чтобы добавить приложение OpenSSH в брандмауэр ufw. Затем запустите и включите ufw.

sudo ufw allow "OpenSSH"
sudo ufw enable

Когда появится запрос на подтверждение, введите y и нажмите ENTER, чтобы продолжить. Служба брандмауэра ufw будет включена и запущена.

Далее выполните следующую команду, чтобы добавить ‘Nginx Full‘ приложение. Этот профиль приложения предоставляется пакетами Nginx при установке по умолчанию и открывает порты HTTP и HTTPS для вашего приложения.

sudo ufw allow "Nginx Full"

Наконец, проверьте список включенных правил на ufw. Вы должны увидеть два приложения ‘OpenSSH‘ и ‘Nginx Full‘ включено.

sudo ufw status

настройка ufw

Миграция и установка базы данных Odoo

Откройте веб-браузер и зайдите на доменное имя вашей установки odoo (т.е: https://odoo.local/).

Сначала вам нужно будет перенести базу данных odoo и создать нового пользователя-администратора.

В качестве мастер-пароля здесь используется ‘admin_passwd‘, который вы только что добавили в ‘/etc/odoo.conf‘ файл.

Введите имя новой базы данных, которая будет автоматически создана, и введите данные нового пользователя и пароль администратора для вашей установки odoo. Кроме того, вы можете установить флажок Демо-данные, чтобы добавить демо-данные в вашу установку.

Нажмите ‘Создать базу данных‘, чтобы начать установку odoo.

 

После установки odoo вы будете перенаправлены на страницу входа в odoo. Введите адрес электронной почты администратора и пароль для вашего odoo и нажмите кнопку ‘Вход‘.

 

Теперь у вас должна появиться панель пользователя odoo.

приборная панель odoo

Заключение

Поздравляем! Вы установили Odoo open-source ERP на сервер Ubuntu 24.04. Вы также изучили базовую установку сервера базы данных PostgreSQL и веб-сервера Nginx, настроенного в качестве обратного прокси.

На данный момент вы полностью обеспечили безопасность установки Odoo на вашем сервере Ubuntu. Теперь вы можете начать добавлять дополнительные плагины/надстройки, которые подходят для вашего бизнеса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *