Установка Odoo · 11 min read · Nov 12, 2025

Как установить Odoo 14 ERP на Ubuntu 20.04

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

В этом руководстве мы научимся устанавливать Odoo 14 Stack на сервере на базе Ubuntu 20.04.

Предварительные требования

  1. Сервер на базе Ubuntu 20.04 с минимум 2 ГБ ОЗУ для размещения Odoo Stack.
  2. Второй сервер на базе Ubuntu 20.04 с минимум 2 ГБ ОЗУ для размещения базы данных PostgreSQL. Тем не менее, вы можете установить базу данных на том же сервере, что и Odoo, но для производственных сред настоятельно рекомендуется установить ее на отдельном сервере. Вы также можете выбрать любой из доступных управляемых вариантов баз данных от любого провайдера на ваш выбор.
  3. Требования к ОЗУ будут зависеть от количества одновременно работающих пользователей, использующих стек. Подробное руководство о том, как рассчитать системные требования, можно найти в документации Odoo.
  4. Держите ваши системы обновленными. shell $ sudo apt update $ sudo apt upgrade
  5. Непривилегированный пользователь с правами sudo на обоих серверах.

Настройка правил брандмауэра

Для целей этого руководства мы предположим, что у вас установлен брандмауэр ufw на обоих серверах.

На сервере Odoo нам нужно открыть порты 22, 80, 443, 6010, 5432 и 8069. 22 используется для SSH, 80 для HTTP, 443 для HTTPS, 6010 используется для связи Odoo, 5432 используется PostgreSQL, а 8069 используется приложением сервера Odoo.

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

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

На сервере PostgreSQL нам нужно открыть порты 22, 6010 и 5432. Откройте их, используя команды, которые мы только что обсудили.

Назначение имен хостов

Вы можете использовать либо IP-адреса серверов, либо их полные доменные имена (FQDN), если они доступны. Для нашего руководства мы будем использовать FQDN и для этого нам нужно установить имена хостов на обоих серверах.

На сервере Odoo откройте файл /etc/hosts.

$ sudo nano /etc/hosts

Убедитесь, что он выглядит следующим образом.

127.0.0.1    localhost
127.0.0.1    odoo.yourdomain.com         odoo
10.1.1.10    postgresql.yourdomain.com   postgresql

На сервере PostgreSQL откройте файл и убедитесь, что он выглядит следующим образом.

127.0.0.1    localhost
127.0.0.1    postgresql.yourdomain.com   postgresql
10.1.2.10    odoo.yourdomain.com         odoo

Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.

Установка и настройка PostgreSQL

Ubuntu 20.04 по умолчанию поставляется с PostgreSQL 12, и мы установим его. Запустите следующую команду на сервере PostgreSQL.

$ sudo apt install postgresql-12 postgresql-server-dev-12

Далее нам нужно создать пользователя базы данных odoo.

$ sudo -u postgres createuser odoo -U postgres -dP

Опция -u выполняет команду от имени пользователя postgres.

Опция -U указывает имя пользователя для подключения.

Опция -d предоставляет пользователю разрешение на создание баз данных.

Опция -p запрашивает пароль нового пользователя.

Настройка аутентификации на основе хостов

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

Сначала остановите службу PostgreSQL.

$ sudo systemctl stop postgresql

Откройте файл /etc/postgresql/12/main/pg_hba.conf для редактирования.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Вставьте следующую строку в конец.

host        all     odoo        odoo.yourdomain.com     md5

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

Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.

Настройка адреса прослушивания PostgreSQL

Далее нам нужно разрешить серверу базы данных прослушивать удаленные подключения. Откройте файл /etc/postgresql/12/main/postgresql.conf для редактирования.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Измените строку listen_addresses с

#listen_addresses = 'localhost' # какой IP-адрес(а) слушать;

на.

#Из раздела СОЕДИНЕНИЯ И АУТЕНТИФИКАЦИЯ
listen_addresses = '*'

* означает, что он будет слушать все IP-адреса. Вы можете изменить его на IP-адрес вашего экземпляра odoo.

Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.

Включение и запуск службы PostgreSQL

Поскольку наша конфигурация завершена, пора запустить и включить службу PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Установка Odoo

Установка зависимостей и подготовка к установке

Создайте нового системного пользователя для управления процессами Odoo на сервере Odoo.

$ sudo adduser --system --home=/opt/odoo --group odoo

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

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Установите системные зависимости, необходимые для настройки Odoo 14.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Установите Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Установите пакет Less CSS с помощью Node.

$ sudo npm install -g less less-plugin-clean-css

Скачайте пакет wkhtmltopdf версии 0.12.6.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Установите пакет.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Чтобы убедиться, что wkhtmltopdf работает правильно, скопируйте бинарные файлы в /usr/bin и дайте им соответствующие разрешения.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Скачивание файлов Odoo

Клонируйте репозиторий Odoo с Github на вашу систему.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Для нашей цели мы копируем Odoo в каталог /opt/odoo, откуда он будет установлен.

Настройка виртуальной среды Python

Этот шаг является необязательным, но рекомендуется, так как виртуальная среда Python для Odoo поможет избежать конфликтов с модулями Python операционной системы, особенно при выполнении обновлений ОС.

Для этого мы будем использовать virtualenv.

  1. Создайте новую среду virtualenv для Odoo. shell $ python3 -m venv /home//odoo-env
  2. Активируйте виртуальную среду. Мы создаем среду в домашнем каталоге системного пользователя. Вы можете выбрать любое место, которое вам нравится. shell $ source /home//odoo-env/bin/activate
  3. Обновите PIP на всякий случай. shell (odoo-env) $ pip3 install --upgrade pip
  4. Установите колесо Python в виртуальной среде. shell $ pip3 install wheel

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

Установите зависимости Python, необходимые для Odoo 14.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

Установка зависимостей займет некоторое время, так что будьте терпеливы.

Проверьте, установлены ли зависимости правильно, проверив список установленных модулей Python.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Выйдите из виртуальной среды Python.

$ deactivate

Настройка Odoo

Скопируйте файл конфигурации Odoo по умолчанию, чтобы создать новый.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Откройте файл для редактирования.

$ sudo nano /etc/odoo-server.conf

Отредактируйте файл так, чтобы он выглядел следующим образом.

[options]
; Это пароль, который позволяет выполнять операции с базой данных:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.

Опция admin_passwd — это пароль, который позволяет выполнять административные операции в графическом интерфейсе Odoo. Убедитесь, что вы выбрали надежный пароль.

Опция db_host — это FQDN или IP-адрес сервера PostgreSQL.

Опция db_port установлена в false, так как используется порт PostgreSQL по умолчанию 5432. Если вы хотите использовать другой порт, вам нужно будет обновить это значение.

Опция db_user — это имя пользователя PostgreSQL.

Опция db_password — это пароль пользователя PostgreSQL ‘odoo’, который мы ранее создали на сервере PostgreSQL.

Опция addons_path — это путь по умолчанию для дополнений. Вы также можете добавить пользовательский путь для дополнений, разделив их запятыми.

Опция xmlrpc_port — это порт, на котором Odoo слушает.

Создание службы Odoo

Чтобы убедиться, что Odoo продолжает работать даже после перезагрузки системы, нам нужно создать для него службу.

Создайте файл /lib/systemd/system/odoo-server.service и откройте его для редактирования.

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

Вставьте следующий код в него.

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home//odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Замените /home/ на расположение, которое вы выбрали для установки виртуальной среды Python.

Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.

Установка прав на файл

Установите права на файл odoo-server.service, чтобы только пользователь Odoo мог его читать или выполнять.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Установите права собственности на среду Python и каталог установки Odoo.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home//odoo-env

Ограничьте доступ к файлу конфигурации Odoo.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Запуск сервера Odoo

Запустите и включите сервер Odoo.

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

Проверьте статус сервера.

$ sudo systemctl status odoo-server

В вашем браузере откройте URL http://:8069 или http://odoo.yourdomain.com:8069. Если все работает правильно, вы должны увидеть экран создания базы данных Odoo.

Экран установки Odoo

Заполните все поля. Установите флажок в поле Demo Data, чтобы заполнить базу данных образцами данных, а затем нажмите кнопку Создать базу данных.

Далее вам будет показан список приложений, которые вы можете выбрать и выбрать.

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

Установка и настройка Nginx

До сих пор мы использовали сервер Odoo для запуска стека. Но в идеале лучше запустить его на Nginx с использованием прокси, потому что это позволит нам установить SSL на него.

Установите Nginx.

$ sudo apt install nginx

Чтобы запустить его через Nginx, нам нужно запустить Odoo на localhost. Чтобы изменить это, остановите службу Odoo.

$ sudo systemctl stop odoo-server

Откройте файл конфигурации сервера Odoo.

$ sudo nano /etc/odoo-server.conf

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

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Создайте файл конфигурации Nginx для Odoo.

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

Вставьте код ниже.

#сервер odoo
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

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

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

 # Добавить заголовки для режима прокси odoo
 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
 ssl_certificate /etc/letsencrypt/live/odoo.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/privkey.pem;
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # около 40000 сессий
 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;

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

 # Перенаправить долгие запросы на порт долгого опроса odoo
 location /longpolling {
 proxy_pass http://odoochat;
 }

 # Перенаправить запросы на сервер Odoo
 location / {
   proxy_redirect off;
   proxy_pass http://odoo;
 }

 # общий gzip
 gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.

Активируйте этот файл конфигурации, связав его с каталогом sites-enabled.

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

Проверьте конфигурацию Nginx.

$ sudo nginx -t

Установка SSL

Мы установим SSL с помощью сервиса Let’s Encrypt.

Для этого установите Certbot.

$ sudo apt install certbot

Остановите Nginx, так как он будет мешать процессу Certbot.

$ sudo systemctl stop nginx

Сгенерируйте сертификат. Нам также нужно создать сертификат DHParams.

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Нам также нужно настроить задачу cron для автоматического обновления SSL. Чтобы открыть редактор crontab, выполните следующую команду.

$ sudo crontab -e

Вставьте следующую строку в конец.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

Вышеуказанная задача cron будет запускать certbot в 2:25 утра каждый день. Вы можете изменить это на любое другое время, которое вам нужно.

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Запуск Odoo

Теперь, когда все настроено, мы можем снова запустить сервер Odoo.

$ sudo systemctl start odoo-server

Запустите Odoo в вашем браузере по адресу https://odoo.yourdomain.com. Вы получите экран, описанный ранее. Введите необходимые данные для создания базы данных, и вы должны войти в Odoo и увидеть экран, похожий на этот.

Домашняя страница Odoo

Заключение

Это завершает наше руководство по установке Odoo на сервере Ubuntu 20.04. Если у вас есть какие-либо вопросы, оставляйте их в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.