Поиск по сайту:

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


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 15.04 (Vivid Vervet)

На этой странице

  1. Предпосылки
  2. Установка зависимостей
  3. Установка Node.js
  4. Установка приложения Wkhtmltopdf
  5. Установка сервера базы данных PostgreSQL
  6. Скачивание Odoo 16
  7. Установка зависимостей Python для Odoo
  8. Создание конфигурации Odoo
  9. Запуск Odoo в качестве службы Systemd
  10. Запуск Odoo с обратным прокси-сервером Nginx
  11. Настройка брандмауэра UFW
  12. Перенос базы данных и установка Odoo 16
  13. Заключение

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

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

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

Предпосылки

Чтобы начать работу с этим руководством, вам потребуются следующие требования:

  • Сервер Ubuntu 22.04. В этом примере используется сервер Ubuntu с именем хоста odoo-server.
  • Пользователь без полномочий root с правами sudo root/administrator — или вы также можете использовать пользователя root.
  • Доменное имя, указывающее на IP-адрес сервера. Для работы вам потребуется доменное имя для установки Odoo.

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

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

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

sudo apt update

Затем установите зависимости пакета для odoo с помощью следующей команды apt. Эта установка будет включать в себя последнюю версию Python 3.10, 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.

Установка Node.js

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

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

sudo curl -sL https://deb.nodesource.com/setup_16.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

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

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

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

Установите пакет Wkhtmltopdf с помощью приведенной ниже команды dpkg.

sudo dpkg -i wkhtmltox_0.12.6.1-2.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.

Отредактируйте конфигурацию PostgreSQL /etc/postgresql/14/main/pg_hba.conf с помощью следующего редактора nano.

sudo nano /etc/postgresql/14/main/pg_hba.conf

Добавьте следующую конфигурацию в файл. При этом вы разрешите доступ к PostgreSQL для роли odoo с аутентификацией по паролю scram-sha-256.

host    all   odoo    127.0.0.1/32    scram-sha-256

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

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

sudo systemctl restart postgresql

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

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

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

\conninfo

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

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

Загрузка Odoo 16

Для этой демонстрации вы настроите и запустите odoo v16 с пользователем odoo. Итак, теперь вы создадите нового пользователя Unix odoo и загрузите последнюю версию исходного кода odoo 16.

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

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

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

cd /opt/odoo
git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.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) [email .

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

pip3 install wheel
pip3 install -r requirements.txt

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

deactivate

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

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

После установки зависимостей пакетов для Odoo вы начнете создавать конфигурацию для odoo и настраивать odoo как службу systemd.

Создайте новый файл конфигурации /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 = odoopass
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 16.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 только на локальном хосте, и весь клиентский доступ будет обрабатываться обратным прокси-сервером.

На этом шаге вы установите и настроите веб-сервер 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

Теперь проверьте службу odoo-server, чтобы убедиться, что она работает.

sudo systemctl status 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.hwdomain.io;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.hwdomain.io;
 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.hwdomain.io/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.hwdomain.io/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;

 # 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 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

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

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

sudo systemctl restart nginx

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

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

sudo systemctl restart nginx

Вы должны запустить службу 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

Перенос базы данных и установка Odoo 16

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

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

Мастер-пароль здесь — это admin_passwd, который вы только что добавили в файл /etc/odoo.conf.

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

Щелкните Создать базу данных, чтобы начать установку odoo.

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

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

Заключение

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

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