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 |
| CPU | 2 ядра | 4 ядра |
| RAM | 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 = 2
Кількість 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 на наші сервери, якщо ви вирішите змінити хостинг-провайдера.