Как установить программное обеспечение Odoo 16 ERP на Ubuntu 22.04
Это руководство существует для этих версий ОС
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 15.04 (Vivid Vervet)
На этой странице
- Предпосылки
- Установка зависимостей
- Установка Node.js
- Установка приложения Wkhtmltopdf
- Установка сервера базы данных PostgreSQL
- Скачивание Odoo 16
- Установка зависимостей Python для Odoo
- Создание конфигурации Odoo
- Запуск Odoo в качестве службы Systemd
- Запуск Odoo с обратным прокси-сервером Nginx
- Настройка брандмауэра UFW
- Перенос базы данных и установка Odoo 16
- Заключение
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. Теперь вы можете начать добавлять дополнительные плагины/надстройки, подходящие для вашего бизнеса.