Odoo — одна из самых популярных ERP-систем для малого и среднего бизнеса: CRM, учет, склад, сайт и десятки других модулей в одной системе. Развернуть Odoo 19 самостоятельно на VPS вполне реально, если есть базовые навыки работы с Linux. В этой инструкции разберем установку официальным способом — из .deb-пакета, который Odoo выпускает специально для Ubuntu.
Важный нюанс именно для девятнадцатой версии: официальный .deb-пакет Odoo 19 поддерживает только Ubuntu 24.04 LTS (Noble). Если у вас сервер на Ubuntu 22.04 или старше — придется либо обновлять систему, либо ставить Odoo из исходного кода (это уже другая, существенно более длинная инструкция).
Требования к серверу
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| ОС | Ubuntu 24.04 LTS (64-бит) | Ubuntu 24.04 LTS |
| ЦП | 2 ядра | 4 ядра |
| ОЗУ | 2 ГБ | 4–8 ГБ |
| Диск | 20 ГБ SSD | 40+ ГБ NVMe |
| Python | 3.10+ | — |
| PostgreSQL | 13.0+ | — |
| Открытые порты снаружи | 80/443 | 80/443 |
Хорошая новость по поводу Ubuntu 24.04: система по умолчанию поставляется с Python 3.12 и PostgreSQL 16 — оба уже перекрывают минимальные требования Odoo 19 с запасом, отдельно обновлять ничего не нужно.
Почему именно .deb, а не установка из исходного кода. Если ставить Odoo из git-репозитория на Ubuntu 24.04, придется обязательно создавать Python virtual environment — система блокирует глобальную установку пакетов через pip (ограничение PEP 668, "externally managed environment"). Это лишний шаг и дополнительный источник ошибок для тех, кто не работает с Python каждый день. Пакет .deb этой проблемы не имеет: все зависимости он тянет через apt, а не через pip, поэтому ставится одной командой и сразу создает systemd-службу.
Шаг 1. Подготовка сервера
Подключитесь к серверу по SSH и обновите систему:
sudo apt update && sudo apt upgrade -y
Шаг 2. Установка PostgreSQL
Пакет .deb ожидает, что сервер PostgreSQL уже установлен на этой же машине. Установите именно сервер базы данных:
sudo apt install postgresql -y
Проверьте, что служба запущена:
sudo systemctl status postgresql
Обратите внимание: этот шаг только устанавливает сам PostgreSQL. Специального пользователя базы данных для Odoo отдельно создавать не нужно — это сделает автоматически .deb-пакет на следующем шаге.
Шаг 3. Загрузка и установка Odoo 19
Загрузите .deb-пакет Community-редакции (бесплатная) со страницы официальных загрузок Odoo — выберите формат для Debian/Ubuntu. Enterprise-редакция тоже распространяется как .deb, но для ее загрузки нужен активный платный аккаунт Odoo или статус партнера.
После загрузки установите пакет:
sudo apt update sudo apt install ./odoo_19.0.latest_all.deb
Современная версия apt сама разберется с зависимостями. Если по какой-то причине команда выдаст ошибку зависимостей, сработает классическая схема:
sudo dpkg -i odoo_19.0.latest_all.deb sudo apt-get install -f -y sudo dpkg -i odoo_19.0.latest_all.deb
Установка автоматически: создает системного пользователя odoo, создает пользователя PostgreSQL для Odoo, генерирует конфигурацию /etc/odoo/odoo.conf, регистрирует службу systemd и запускает Odoo на порту 8069.
Шаг 4. Проверка службы
sudo systemctl status odoo
Если служба активна (active (running)) — установка прошла успешно.
Шаг 5. Базовая настройка конфигурации
Откройте конфиг:
sudo nano /etc/odoo/odoo.conf
Для продакшн-использования стоит сразу задать:
[options] admin_passwd = ВАШ_НАДЕЖНЫЙ_ПАРОЛЬ proxy_mode = True workers = 4
Количество workers зависит не только от количества ядер CPU, а и от объема RAM, количества одновременных пользователей и типа нагрузки (отчеты, импорт больших файлов и т.д.) — поэтому универсальной формулы, которую можно применить вслепую, нет. Распространенный ориентир для расчета — (ядра CPU × 2) + 1, но для старта на небольшом VPS безопаснее начать с малого значения (2) и увеличивать, наблюдая за нагрузкой и потреблением памяти, а не сразу ставить рассчитанное по формуле число.
Перезапустите службу после изменения конфигурации:
sudo systemctl restart odoo
Шаг 6. Брандмауэр
Поскольку Nginx будет работать на том же сервере, что и Odoo, порт 8069 (и порт 8072 для WebSocket) никогда не нужно открывать наружу — они остаются доступными только через 127.0.0.1. Снаружи достаточно открыть только порты для обычного веб-трафика:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
Первый вход (шаг 9) будем делать уже через домен, после настройки Nginx на следующем шаге.
Шаг 7. Reverse proxy и SSL
Наиболее распространенный вариант — Nginx с Let's Encrypt. Установите Nginx и Certbot:
sudo apt install nginx certbot python3-certbot-nginx -y
Создайте конфиг сайта /etc/nginx/sites-available/odoo:
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name ВАШ_ДОМЕН;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
location /websocket {
proxy_pass http://odoochat;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
}
Активируйте конфиг и получите SSL-сертификат:
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl restart nginx sudo certbot --nginx -d ВАШ_ДОМЕН
Не забудьте, что proxy_mode = True в конфигурации Odoo (шаг 5) обязателен, когда сервер стоит за reverse proxy — иначе Odoo неправильно определит протокол и IP-адреса клиентов. Блок /websocket отвечает за чат, живые обновления и другие функции реального времени — без него они просто не будут работать, хотя основной интерфейс Odoo будет доступен.
Шаг 8. Специфика Ubuntu 24.04: генерация PDF
Отдельный момент именно для Ubuntu 24.04 — пакет wkhtmltopdf в штатных репозиториях системы собран без нужного патча Qt. Последствие — PDF-отчеты (счета, коммерческие предложения) генерируются без верхних и нижних колонтитулов. Решение — установить официальную сборку из проекта wkhtmltopdf:
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb sudo apt install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb -y
Пакет собран под Ubuntu 22.04 (jammy), и на чистой Ubuntu 24.04 установка может завершиться ошибкой о отсутствующей зависимости libssl1.1 — этой библиотеки уже нет в репозиториях Noble. Если увидели такую ошибку, установите библиотеку отдельно, а затем повторите установку wkhtmltopdf:
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb sudo apt install ./libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb sudo apt install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb -y
Шаг 9. Первый вход
Откройте в браузере адрес вашего домена и заполните форму создания базы данных:
- Master Password — пароль из admin_passwd (шаг 5)
- Database Name — название вашей компании
- Email и пароль — данные для входа в систему
- Demo Data — не отмечайте, если нужна чистая база без демоданных
Типичные проблемы
- Ошибка аутентификации PostgreSQL — пользователя базы для Odoo автоматически создает сам .deb-пакет во время установки (шаг 3), а не команда apt install postgresql. Проверьте, что PostgreSQL был установлен до установки .deb-пакета Odoo и что служба postgresql активна.
- Порт 8069 занят — проверьте, не запущена ли уже другая служба Odoo (sudo lsof -i :8069).
- PDF без колонтитулов или ошибка зависимостей при установке wkhtmltopdf — см. шаг 8.
- Не работает чат / живые обновления, хотя интерфейс открывается — проверьте, что в конфигурации Nginx есть блок location /websocket, а в /etc/odoo/odoo.conf установлено proxy_mode = True.
Когда стоит доверить развертывание специалистам
Инструкция выше рассчитана на тех, кто готов самостоятельно работать с командной строкой и не боится настраивать сервер вручную. Если времени или опыта не хватает — команда REDS CLOUD бесплатно развернет и настроит Odoo на вашем VPS или выделенном сервере. Также мы бесплатно перенесем уже существующий проект Odoo на наши серверы, если вы решите сменить хостинг-провайдера.