Установка Odoo · 11 min read · Nov 12, 2025
Как установить Odoo 14 ERP на Ubuntu 20.04

Odoo (ранее известный как OpenERP) — это самостоятелная платформа из более чем 10,000 приложений с открытым исходным кодом, подходящих для различных бизнес-потребностей, включая CRM, электронную коммерцию, бухгалтерский учет, управление запасами, управление проектами и точку продаж. Эти приложения полностью интегрированы и доступны через общий веб-интерфейс.
В этом руководстве мы научимся устанавливать Odoo 14 Stack на сервере на базе Ubuntu 20.04.
Предварительные требования
- Сервер на базе Ubuntu 20.04 с минимум 2 ГБ ОЗУ для размещения Odoo Stack.
- Второй сервер на базе Ubuntu 20.04 с минимум 2 ГБ ОЗУ для размещения базы данных PostgreSQL. Тем не менее, вы можете установить базу данных на том же сервере, что и Odoo, но для производственных сред настоятельно рекомендуется установить ее на отдельном сервере. Вы также можете выбрать любой из доступных управляемых вариантов баз данных от любого провайдера на ваш выбор.
- Требования к ОЗУ будут зависеть от количества одновременно работающих пользователей, использующих стек. Подробное руководство о том, как рассчитать системные требования, можно найти в документации Odoo.
- Держите ваши системы обновленными.
shell $ sudo apt update $ sudo apt upgrade - Непривилегированный пользователь с правами 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.
- Создайте новую среду
virtualenvдля Odoo.shell $ python3 -m venv /home//odoo-env - Активируйте виртуальную среду. Мы создаем среду в домашнем каталоге системного пользователя. Вы можете выбрать любое место, которое вам нравится.
shell $ source /home//odoo-env/bin/activate - Обновите PIP на всякий случай.
shell (odoo-env) $ pip3 install --upgrade pip - Установите колесо 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:// или http://odoo.yourdomain.com:8069. Если все работает правильно, вы должны увидеть экран создания базы данных 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 на сервере Ubuntu 20.04. Если у вас есть какие-либо вопросы, оставляйте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.