Как установить программное обеспечение Odoo 14 ERP на Ubuntu 20.04
Это руководство существует для этих версий ОС
- Ubuntu 15.04 (Vivid Vervet)
На этой странице
- Предпосылки
- Настройка правил брандмауэра
- Назначение имен хостов
- Установка и настройка PostgreSQL
- Настройка аутентификации на основе хоста
- Настройка адреса прослушивания PostgreSQL
- Включить и запустить службу PostgreSQL
- Установить зависимости и подготовиться к установке
- Загрузить файлы Odoo
- Настройка среды Virtualenv Python
- Установка зависимостей Python
- Создать сервис Odoo
- Установить права доступа к файлам
- Запустите сервер Odoo
Odoo (ранее известный как OpenERP) — это набор из более чем 10 000 приложений с открытым исходным кодом, который подходит для различных бизнес-потребностей, включая CRM, электронную коммерцию, бухгалтерский учет, инвентаризацию, управление проектами и точки продаж. Эти приложения полностью интегрированы и доступны через общий веб-интерфейс.
В этом руководстве мы научимся устанавливать Odoo 14 Stack на сервер на базе Ubuntu 20.04.
Предпосылки
-
A Ubuntu 20.04 based server with a minimum of 2GB RAM to host Odoo Stack.
-
A second Ubuntu 20.04 based server with a minimum of 2GB RAM for hosting the PostgreSQL database. You can however install the database on the same server as Odoo but for production environments, it is highly recommended that you install it on a separate server. You can also choose any of the managed database options available from any provider of your choice.
-
RAM requirement will depend on the number of concurrent users that will be using the stack. A detailed guide on how to calculate system requirements can be found in Odoo's documentation.
-
Keep your systems updated.
$ sudo apt update $ sudo apt upgrade
-
A non-root user with sudo privileges on both servers.
Настроить правила брандмауэра
Для целей этого руководства мы предполагаем, что на обоих серверах установлен брандмауэр
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), если они доступны. В нашем руководстве мы будем использовать полные доменные имена, и для этого нам нужно установить имена хостов на обоих серверах.
На сервере 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' # what IP address(es) to listen on;
к.
#From CONNECTIONS AND AUTHENTICATION Section listen_addresses = '*'
*
означает, что он будет прослушивать все IP-адреса. Вы можете изменить его на IP-адрес вашего экземпляра odoo.Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.
Включить и запустить службу PostgreSQL
Поскольку наша настройка завершена, пришло время запустить и включить службу PostgreSQL.
$ sudo systemctl start postgresql && sudo systemctl enable postgresql
Установить Одоо
Установить зависимости и подготовиться к установке
Создайте нового системного пользователя для управления процессами 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
Установите Нодейс.
$ 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
Клонируйте репозиторий Odoos Github в свою систему.
$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo
Для нашей цели мы копируем Odoo в каталог
/opt/odoo
, откуда он будет установлен.Настройка среды Virtualenv Python
Этот шаг необязателен, но рекомендуется, поскольку виртуальная среда Python для Odoo поможет избежать конфликтов с модулями Python операционной системы, особенно при обновлении ОС.
Для этого мы будем использовать
virtualenv
.-
Create a new
virtualenv
environment for Odoo.$ python3 -m venv /home/<username>/odoo-env
-
Activate the virtual environment. We are creating an environment under the system user's home directory. You are free to choose any location you like.
$ source /home/<username>/odoo-env/bin/activate
-
Update PIP just in case.
(odoo-env) $ pip3 install --upgrade pip
-
Install Python's wheel in the virtual environment.
$ 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] ; This is the password that allows database operations: 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
— это полное доменное имя или 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/<username>/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 Virtual Environment.Нажмите 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/<username>/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://<вашIP-адрес>:8069
илиhttp://odoo.yourdomain.com:8069
. Если все работает правильно, вы должны увидеть экран создания базы данных Odoos.Заполните все поля. Установите флажок в поле
Demo Data
, чтобы заполнить базу данных образцами данных, а затем нажмите кнопку «Создать базу данных».Далее вам будет показан список приложений, которые вы можете выбрать и выбрать.
При первом создании базы данных загрузка страницы дополнений займет некоторое время, поэтому не обновляйте страницу.
Установить и настроить Nginx
До сих пор мы использовали сервер Odoos для запуска стека. Но в идеале лучше запускать его на Nginx через прокси, потому что это позволит нам установить на него SSL.
Установите Нгинкс.
$ sudo apt install nginx
Чтобы запустить его через Nginx, нам нужно запустить Odoo на локальном хосте. Чтобы изменить это, остановите службу 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 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.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; # 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.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; # 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 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; }
Нажмите Ctrl + X, чтобы закрыть редактор, и нажмите Y, когда будет предложено сохранить файл.
Активируйте этот файл конфигурации, связав его с каталогом
sites-enabled
.$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
Протестируйте конфигурацию Nginx.
$ sudo nginx -t
Установить SSL
Мы установим SSL с помощью сервиса Lets 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 --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.
$ sudo systemctl start odoo-server
Запустите Odoo в своем браузере через
https://odoo.yourdomain.com
. Вы получите экран, описанный ранее. Введите необходимые данные для создания базы данных, и вы должны войти в Odoo и увидеть экран, подобный этому.Заключение
На этом мы завершаем наше руководство по установке Odoo на сервер Ubuntu 20.04. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.