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: Установить нужные Enterprise-модули
Конфигурационные файлы не требуют внесения изменений – путь к 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