Дружелюбность к новичкам¶
Полная картина болей, ролей команды и сравнение с альтернативами — в Зачем odpm. Ниже — сжатый вход для новичка: что установить и с чего начать.
Зачем вообще нужен odpm¶
Проект odpm создавался для того, чтобы снизить очень высокий порог входа в разработку на платформе Odoo. Речь не о том, чтобы «ещё раз установить Odoo», а о том, чтобы дать человеку готовое рабочее место: открыл каталог в редакторе, написал модуль, запустил обновление — и все пути, зависимости и службы уже согласованы между собой.
Если вы только начинаете, пройдите локальную разработку с нуля со своим репозиторием или репозиторием вашей команды (в нём должен быть odpm.json).
«Odoo установлен» — это ещё не «можно разрабатывать»¶
На Debian можно поставить системный пакет, на Fedora — свой .rpm, собрать окружение по длинной инструкции из интернета. Служба запустится, в браузере откроется окно входа. Создаётся иллюзия, что «всё готово».
Для разработчика нужно другое. Ему необходимо единое рабочее пространство, в котором одновременно доступны:
| Потребность | Почему без odpm это больно |
|---|---|
| Каталог, где пишется свой код | Каталог установки Odoo из пакета — не место для ваших модулей |
| Настройки всего окружения в одном логическом месте | Параметры размазаны: службы systemd, виртуальное окружение Python, compose-файл, переменные среды |
| Системные и Python-пакеты | Часть ставится через apt, часть через pip, непонятно, что откуда и какой версии |
| Файл конфигурации Odoo | Пути к дополнениям (addons_path), каталог данных, доступ к менеджеру баз — собираются вручную |
| Исходный код платформы Odoo | Нужен для чтения кода ядра, отладки, осмысленного обновления модулей |
| Исходники зависимых проектов | OCA, корпоративные репозитории — у каждого свой клон и своя ветка |
| Согласованные пути к дополнениям | Один пропущенный путь в конфигурации — «модуль не найден» без ясной причины |
| Своя кодовая база рядом с зависимостями | Иначе правки в «чужом» каталоге или путаница с путями в IDE |
Сложить это вручную, опираясь только на системные пакеты и разрозненные инструкции, можно, но получается не инструмент для разработчика, а постоянная ручная настройка, которую приходится повторять при смене версии Odoo или компьютера.
Второй уровень сложности: Docker «чтобы у всех было одинаково»¶
Когда в команде решают запускать Odoo в контейнере, чтобы на Ubuntu, macOS и Windows было одно и то же, задача не упрощается — она удваивается:
- на диске компьютера одни пути, внутри контейнера — другие;
- нужно правильно подключить каталоги с исходниками платформы, проекта и каждой зависимости;
- учесть права пользователя (идентификаторы UID/GID), чтобы файлы не «ломались» между хостом и контейнером;
- в конфигурации Odoo пути к дополнениям должны совпадать с тем, что видит процесс внутри контейнера;
- отдельно настраиваются порты, база PostgreSQL, при необходимости — отладчик.
На этом этапе люди чаще всего совершают однотипные ошибки: забытое подключение каталога, неверный путь, зависимость не попала в addons_path, виртуальное окружение пересобрано не там. Новичок редко понимает, на каком уровне сломалось — хост, Docker, Odoo или зависимости.
odpm как раз и задуман как слой, который собирает это целое: вы работаете в одном каталоге проекта на диске, описываете состав стека в odpm.json, а odpm клонирует репозитории, генерирует docker-compose, конфигурацию Odoo, подключения каталогов и даёт команды для резервного копирования базы, установки модулей, смены пароля администратора и отладки в VS Code.
Что должно быть на вашем компьютере¶
На хосте (вашей операционной системе) нужны только:
- Docker — на Windows и macOS обычно Docker Desktop;
- git;
- установленный odpm — см. раздел установки;
- для отладки — Visual Studio Code.
Сам Python-проект Odoo и его виртуальное окружение живут в контейнере. Запускать odpm внутри отдельного venv на хосте не нужно — так вы только усложните себе жизнь.
Первые шаги¶
- Установите odpm для вашей системы.
- Пройдите локальную разработку с нуля с репозиторием, в котором уже есть
odpm.json. - На Windows используйте инструкцию по WSL.
При команде odpm --init сработает мастер первоначальной настройки: он спросит версию Odoo, сценарий использования, каталоги для резервных копий и клонов репозиториев. Если ответ неизвестен — нажимайте Enter, будут подставлены разумные значения по умолчанию.
Краткая формулировка¶
Пакетный Odoo запускается, но не даёт готового места для разработки. Исходники платформы и дополнений, пути, окружение Python, конфигурация и единообразие в Docker — отдельная, тяжёлая работа. odpm собирает это в один проектный контур из
odpm.json, чтобы вы начинали с своего кода, а не с ручной настройки стека.