EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

Odoo 19 в Docker: Полный гайд по установке на Ubuntu 24.04 (Community & Enterprise)

Введение

Развертывание ERP-системы часто кажется сложной задачей, но использование контейнеризации превращает этот процесс в четкий алгоритм. В этом руководстве мы разберем, как поднять Odoo 19 на свежей Ubuntu 24.04.

Главная особенность этого метода – универсальность. Мы сразу закладываем архитектуру, которая позволяет работать на бесплатной Community-версии, но дает возможность мгновенно перейти на Enterprise-версию простым копированием модулей. Никаких правок в конфигах “на лету” – только чистая работа с контейнерами и автоматический SSL через Caddy.

Технический стэк, на котором проверена работа данной инструкции:

  • ОС: Ubuntu 24.04 LTS (Поскольку это установка в Docker, то данный метод применим и в других Linux дистрибутивах)
  • Контейнеризация: Docker 29.1.5 + Docker Compose
  • Веб-сервер: Caddy (автоматический HTTPS)
  • База данных: PostgreSQL 18
  • BМ: 2 vCPU, 4 ГБ ОЗУ, 40 ГБ NVMe

Шаг 0: Установка Docker

Установите Docker из официального репозитория:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Добавьте пользователя в группу docker

sudo usermod -aG docker $USER
newgrp docker

Включите и запустите Docker:

sudo systemctl enable docker
sudo systemctl start docker

Проверьте его работу:

docker ps

Шаг 1: Подготовка структуры

Создайте рабочую директорию и папки:

mkdir odoo-stack && cd odoo-stack
mkdir -p addons enterprise

Шаг 2: Создайте docker-compose.yml

Создайте новый docker compose файл:

nano docker-compose.yml

Вставьте конфигурацию в этот файл (замените в db environment и в Odoo depends_on “odoo_secure_password” на ваш пароль):

services:
 db:
 image: postgres:18
 environment:
 - POSTGRES_DB=postgres
 - POSTGRES_PASSWORD=odoo_secure_password
 - POSTGRES_USER=odoo
 - PGDATA=/var/lib/postgresql/data/pgdata
 volumes:
 - odoo-db-data:/var/lib/postgresql/data/pgdata
 restart: unless-stopped

 odoo:
 image: odoo:19.0
 depends_on:
 - db
 volumes:
 - odoo-web-data:/var/lib/odoo
 - ./addons:/mnt/extra-addons
 - ./enterprise:/mnt/enterprise-addons
 environment:
 - HOST=db
 - USER=odoo
 - PASSWORD=odoo_secure_password
 command: >
 --addons-path=/usr/lib/python3/dist-packages/odoo/addons,/mnt/enterprise-addons,/mnt/extra-addons
 --proxy-mode
 restart: unless-stopped

 caddy:
 image: caddy:latest
 ports:
 - "80:80"
 - "443:443"
 volumes:
 - ./Caddyfile:/etc/caddy/Caddyfile
 - caddy-data:/data
 restart: unless-stopped

volumes:
 odoo-web-data:
 odoo-db-data:
 caddy-data:

Шаг 3: Создание Caddyfile

Создайте конфигурационный файл Caddy командой:

nano Caddyfile

Вставьте конфигурацию приведенную ниже (замените :80 на свой домен для автоматического SSL):

# Замените :80 на ВАШ_ДОМЕН для автоматического SSL
:80 {
 # Увеличиваем лимит для загрузки файлов
 request_body {
 max_size 300MB
 }
 
 # Longpolling для чатов и уведомлений
 reverse_proxy /longpolling/* odoo:8072 {
 header_up X-Forwarded-Host {host}
 header_up X-Forwarded-Proto {scheme}
 }
 
 # Основной трафик
 reverse_proxy odoo:8069 {
 header_up X-Forwarded-Host {host}
 header_up X-Forwarded-Proto {scheme}
 }
}

Шаг 4: Запуск стэка

Запустите стэк:

docker compose up -d

Проверьте статус (все 3 контейнера должны быть "Up"):

docker compose ps

Посмотрите логи (не должно быть ошибок):

docker compose logs odoo

Шаг 5: Первый вход

Откройте в браузере:

  • По IP: http://IP_ВАШЕГО_СЕРВЕРА
  • По домену: https://ВАШ_ДОМЕН (Если он уже был настроен в Caddyfile)

Заполните форму создания базы данных:

  • Master Password: Мастер пароль будет предложен при первом входе (зафиксируйте этот пароль, он очень важен)
  • Database Name: например mycompany
  • Email: Ваш email, к которому у вас есть доступ – этот email будет логином в систему
  • Password: это будет ваш пароль для входа в систему
  • Language: выберите нужный
  • Country: выберите нужную страну
  • Demo Data: если нужна чистая база, то не стоит отмечать чекбокс

Нажмите Create database и дождитесь ее создания (1-2 минуты).

Переход с Community на Enterprise

Чтобы перейти с версии Community на Enterprise, достаточно просто разместить их в отведенной стандартной директории.

Шаг 1: Получить Enterprise-модули (по подписке Odoo)

Шаг 2: Распаковать их в папку ./enterprise/

Шаг 3: Перезапустить контейнер:

docker compose restart odoo

Шаг 4. Откройте браузер, перейдите в Settings → General Settings и введите код подписки Enterprise в поле Publisher Warranty Code. Нажмите Save для активации лицензии.

Шаг 5. Перейдите в Apps → Update Apps List и установите нужные модули Enterprise.

Настройка файрвола

Если используется UFW:

sudo ufw allow ssh/tcp && \
sudo ufw allow 80/tcp && \
sudo ufw allow 443/tcp && \
sudo ufw default deny incoming && \
sudo ufw default allow outgoing && \
sudo ufw --force enable

Полезные команды

Остановить всё:

docker compose down

Перезапустить только Odoo:

docker compose restart odoo

Посмотреть логи:

docker compose logs -f odoo
docker compose logs -f db
docker compose logs -f caddy

Бэкап базы данных:

docker compose exec db pg_dumpall -U odoo > backup_$(date +%Y%m%d).sql

Восстановить базу:

cat backup_20240125.sql | docker compose exec -T db psql -U odoo

Полностью удалить всё (осторожно!):

docker compose down -v
rm -rf addons enterprise Caddyfile

Для работы с доменным именем

Чтобы получить автоматический SSL-сертификат от Let's Encrypt:

Шаг 1: Укажите A-запись в DNS: ВАШ_ДОМЕН → IP сервера

Шаг 2: Замените в Caddyfile строку :80 на ВАШ_ДОМЕН

Перезапусти Caddy:

docker compose restart caddy

Caddy автоматически получит SSL-сертификат

Шаг 3: Откройте Oddo по адресу https

://ВАШ_ДОМЕН

Можно проверить получение сертификата:

docker compose logs caddy | grep certificate

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA