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 для продолжения. После этого начнется установка.
После установки 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-ключ, а также автоматически обновит индекс пакетов в вашей системе.
Далее выполните следующую команду apt для установки пакета Node.js. Когда появится запрос, введите y подтвердите и нажмите ENTER, чтобы продолжить.
sudo apt install nodejs
После установки Node.js выполните следующую команду npm, чтобы установить ‘rtlcss‘ пакет.
‘rtlcss‘ пакет необходим для odoo, особенно если вы используете право-левый пользовательский интерфейс для специфических языков, таких как арабский и иврит.
sudo npm install -g 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, который по умолчанию доступен на ‘/usr/local/bin‘ каталог. Вы должны увидеть две программы ‘wkhtmltopdf’ и ‘wkhtmltoimage‘.
ls /usr/local/bin
Теперь выполните следующую команду, чтобы проверить $PATH убедитесь, что переменная окружения ‘/usr/local/bin‘ каталог доступен в двоичной системе $PATH. В противном случае пакет Wkhtmltopdf не будет работать должным образом.
echo $PATH
Наконец, выполните следующую команду, чтобы убедиться, что путь к бинарным файлам пакета Wkhtmltopdf доступен. Если пакет Wkhtmltopdf доступен, вы должны получить вывод полного пути к пакету Wkhtmltopdf.
which wkhtmltopdf which wkhtmltoimage
Установка сервера баз данных PostgreSQL
ERP с открытым исходным кодом odoo поддерживает такие базы данных, как MySQL, SQLite и PostgreSQL. В этом шаге вы установите и будете использовать PostgreSQL в качестве базы данных по умолчанию для вашей установки odoo. Вы также настроите роль PostgreSQL и внесете изменения в конфигурацию PostgreSQL.
Выполните следующую команду apt для установки сервера баз данных PostgreSQL. Когда появится запрос на подтверждение, введите y, и нажмите ENTER.
sudo apt install postgresql
После установки PostgreSQL выполните следующую команду, чтобы проверить PostgreSQL и убедиться, что служба включена и работает.
sudo systemctl is-enabled postgresql sudo systemctl status postgresql
В следующем выводе видно, что служба PostgreSQL включена и будет запускаться автоматически при старте системы. А статус PostgreSQL – запущен.
Далее вам предстоит создать новую роль для odoo. Выполните следующую команду для входа в систему ‘postgres‘ пользователя и создайте новую роль с именем ‘odoo‘.
su - postgres createuser -sdP odoo
Введите пароль для новой роли ‘odoo‘ и повторите его.
Теперь войдите в оболочку PostgreSQL с помощью команды psql, приведенной ниже.
psql
Выполните следующий запрос, чтобы проверить список ролей в PostgreSQL и убедиться, что роль ‘odoo‘ доступен.
\du
Теперь введите ‘\q‘, чтобы выйти из оболочки PostgreSQL. Затем введите ‘exit‘, чтобы выйти из системы под пользователем postgres.
Теперь, после того как вы создали роль для odoo, вам нужно проверить аутентификацию для роли ‘odoo’.
Войдите в систему под именем ‘postgres‘ пользователя и проверьте ‘odoo’ роль, войдя в оболочку PostgreSQL с помощью команды psql, как показано ниже.
su - postgres psql -h 127.0.0.1 -U odoo -d postgres
После входа в систему проверьте, используя следующий запрос.
\conn
Теперь вы должны увидеть, что вы подключены к PostgreSQL с ролью ‘odoo‘.
На этом подготовка базы данных 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
После установки зависимостей 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, чтобы убедиться, что она запущена.
sudo systemctl status odoo-server
Вы должны получить вывод службы ‘odoo-server‘ запущен.
Запуск 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 ‘/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. Теперь вы можете получить доступ к установке через веб-браузер.
Настройка брандмауэра 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
Миграция и установка базы данных Odoo
Откройте веб-браузер и зайдите на доменное имя вашей установки odoo (т.е: https://odoo.local/).
Сначала вам нужно будет перенести базу данных odoo и создать нового пользователя-администратора.
В качестве мастер-пароля здесь используется ‘admin_passwd‘, который вы только что добавили в ‘/etc/odoo.conf‘ файл.
Введите имя новой базы данных, которая будет автоматически создана, и введите данные нового пользователя и пароль администратора для вашей установки odoo. Кроме того, вы можете установить флажок Демо-данные, чтобы добавить демо-данные в вашу установку.
Нажмите ‘Создать базу данных‘, чтобы начать установку odoo.
После установки odoo вы будете перенаправлены на страницу входа в odoo. Введите адрес электронной почты администратора и пароль для вашего odoo и нажмите кнопку ‘Вход‘.
Теперь у вас должна появиться панель пользователя odoo.
Заключение
Поздравляем! Вы установили Odoo open-source ERP на сервер Ubuntu 24.04. Вы также изучили базовую установку сервера базы данных PostgreSQL и веб-сервера Nginx, настроенного в качестве обратного прокси.
На данный момент вы полностью обеспечили безопасность установки Odoo на вашем сервере Ubuntu. Теперь вы можете начать добавлять дополнительные плагины/надстройки, которые подходят для вашего бизнеса.