OpenProject
Свой планировщик проектов вместо MS Project: диаграмма Ганта, иерархия работ, бюджеты и учет трудозатрат на собственном сервере. Ставим версию 17.8.0 в Docker, меряем аппетит и разбираемся с главным вопросом - что реально работает в бесплатной версии, а за что просят денег.
Вердикт
- проектному офису, которому нужны Гант, вехи и зависимости, а не доска с карточками
- тем, кто съезжает с MS Project: подписку Microsoft в России сейчас просто не продадут
- кто считает деньги по проектам - бюджеты и учет трудозатрат идут в бесплатной версии
- администраторам Redmine: это его же потомок, но с доской и Гантом в ядре
- если нужны базовые планы Ганта - сравнение с планом стоит денег
- команде из трех человек: девять контейнеров и 2 гигабайта памяти ради канбана избыточны
- кому нужен портфель проектов или планирование ресурсов - это платные модули
- тем, кто рассчитывал уложиться в CPU2-RAM4-DISK50 за 500 рублей в месяц
Потомок Redmine, выросший в комбайн
OpenProject - не доска задач. Это система управления проектами того класса, к которому привыкли в проектных офисах: пакеты работ с иерархией, диаграмма Ганта с вехами и зависимостями, бюджеты, учет затраченного времени, совещания с протоколами, вики на каждый проект.
Задача здесь называется не задачей, а пакетом работ. Термин пришел из PRINCE2 и живет в больших организациях - им пользуются в госзаказе, инжиниринге и стройке. Это точная подсказка, чей это инструмент.
Родословная необычная и проверяемая: OpenProject - форк Redmine. Это написано не в маркетинге, а в шапке каждого файла исходников: «OpenProject is a fork of ChiliProject, which is a fork of Redmine». Вендор датирует развилку 2011 годом.
За продуктом стоит немецкая OpenProject GmbH. Ядро открыто под GPL v3, кодовой базе двадцать лет, минорные версии выходят примерно раз в месяц.
Что бесплатно, а что за деньги
Открытое ядро, и граница проходит по живому. Мы проверили ее не по сайту вендора, а запросом к работающему продукту.
Хорошая новость: бесплатная Community-версия самодостаточна. На нашем стенде без всякого ключа включены модули Ганта, досок, бэклогов, совещаний, документов, календаря, новостей, отчетов и - отдельно важное - затрат и бюджетов.
То есть основное, ради чего идут с MS Project, работает без денег: график с задачами, вехами и зависимостями, иерархия работ, план и факт по времени.
Плохая новость ровно там, где больнее всего. Около тридцати возможностей закрыты корпоративным ключом, и среди них - сравнение с базовым планом. Нажимаете на Ганте кнопку «Базовый уровень», и продукт отвечает: доступно начиная с Корпоративной версии Basic.
| Возможность | В бесплатной версии |
|---|---|
| Диаграмма Ганта | Да |
| Сравнение с базовым планом | Нет, Enterprise |
| Экспорт Ганта в PDF | Нет, Enterprise |
| Бюджеты и учет трудозатрат | Да |
| Канбан-доски, все шесть типов | Да |
| Бэклоги и спринты | Да, один активный спринт |
| Портфель проектов | Нет, Enterprise |
| Планирование ресурсов | Нет, Enterprise |
| Планировщик команды | Нет, Enterprise |
| Синхронизация групп LDAP, внешние SSO | Нет, Enterprise |
| MCP-сервер для ИИ-ассистентов | Нет, Enterprise |
Короткая формула: Гант бесплатный, базовый план платный. Если вы держите в MS Project именно базовые планы и сравниваете с ними факт - бесплатной версии не хватит, и это надо знать до установки, а не после.
Отдельная деталь для тех, кто следит за релизами. MCP-сервер, о котором вендор рассказывает в анонсе 17.8, в Community не включается вовсе. Платная граница двигается и вниз: в том же релизе связи между пакетами работ в таблице стали бесплатными.
Ведут себя закрытые функции по-разному. Гант показывает врезку с предложением попробовать. А планировщик команды на бесплатной версии просто отдает страницу 404.
Что измерили на стенде
Стенд: тариф CPU4-RAM8-DISK100, 4 ядра и 8 ГБ, Ubuntu 24.04. Установка штатным способом вендора - Docker Compose, девять сервисов.
| RAM в простое, весь стек | 2,18 GiB |
| из них веб-процесс | 1,32 GiB |
| фоновый обработчик | 660 MiB |
| PostgreSQL 17.11 | 66 MiB |
| Контейнеров | 9 |
| Образы на диске | 2,73 ГБ |
| Занято на диске всего | 5,0 ГБ из 96 |
| База после установки | 24 МБ |
| С чистой машины до входа | 7,5 минуты |
| Перезапуск до ответа | 80 секунд |
| Отклик /login снаружи | 171 мс |
Веб-процесс прогревается, и первая цифра врет
Сразу после запуска веб-процесс занимает 730 MiB, весь стек - 1,52 GiB. После обхода страниц вырастает до гигабайта, после реальной работы с миграциями и API устаканивается на 1,32 GiB.
Дальше рост прекращается. Это обычный прогрев Rails с четырьмя рабочими процессами, а не утечка. В таблице выше - устоявшиеся цифры, мерили четырьмя выборками с интервалом двадцать секунд.
Про тариф. Младший CPU2-RAM4-DISK50 не подходит по двум причинам сразу. Вендор требует четырехъядерный процессор, а там два ядра. И 2,18 GiB заняли бы больше половины его четырех гигабайт еще до первого живого пользователя.
Сравнение с родителем
Неделей раньше мы разобрали Redmine - тот самый, из которого OpenProject вырос. Тот же Docker Compose, та же Ubuntu, те же дни.
Redmine в простое занимает 267 MiB и три контейнера. OpenProject - 2232 MiB и девять. Форк тяжелее родителя примерно в восемь раз.
Важная оговорка: машины разные. Redmine мерился на тарифе 2/4, OpenProject на 4/8, и замера «сколько ест каждый на одинаковом железе» мы не делали. Корректная формулировка такая: Redmine живет на CPU2-RAM4-DISK50 с большим запасом, а OpenProject в него не помещается по процессору.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий сервис на своем домене, валидный TLS и файл с доступами.
Рекомендуемая конфигурация: CPU4-RAM8-DISK100
Развертывание
-
Взять compose из правильного репозитория
Это первая и главная развилка. Файл
docker-compose.ymlв репозитории самого продукта - для разработчиков, и он падает нарочно. Рабочий лежит отдельно.git clone --depth 1 -b stable/17 \ https://github.com/opf/openproject-docker-compose.git cd openproject-docker-compose -
Заполнить .env
Скопируйте пример и поменяйте в нем все, что помечено заглавными буквами. Заодно закрепите версию образа вместо плавающего тега.
TAG=17.8.0-slim OPENPROJECT_HOST__NAME=ваш.домен OPENPROJECT_HTTPS=true PORT=127.0.0.1:8080 SECRET_KEY_BASE=<64 случайных символа> POSTGRES_PASSWORD=<свой пароль> COLLABORATIVE_SERVER_SECRET=<32 случайных символа> POSTGRES_VERSION=17 -
Поднять стек
Первый запуск дольше обычного: разворачиваются миграции и наполняется демо-проект.
docker compose up -d docker compose ps -
Поставить обратный прокси
Наружу продукт смотрит только через прокси с сертификатом. Сам он слушает локальный порт и в интернет не выставляется.
-
Сменить пароль администратора
Из коробки это
admin/adminс принудительной сменой при первом входе. Лучше задать пароль сразу переменнойOPENPROJECT_SEED_ADMIN_USER_PASSWORD.
Русский интерфейс включается одной настройкой и переведен хорошо: Гант, бюджеты, бэклоги и администрирование - все на русском.
Где может сломаться
Симптом. Контейнеры здоровы, проверка состояния отдает 200, а любая страница - голое сообщение с кодом 400 и никаких подсказок.
Причина. Продукт сверяет адрес в запросе с тем, что записано в OPENPROJECT_HOST__NAME. Не совпало - отказ.
Решение. Записать в переменную ровно тот домен, по которому заходите. Это самая частая причина «продукт не работает» на свежей установке.
Симптом. Команда скачивания образов заканчивается ошибкой, и кажется, что установка провалилась.
Причина. Одного из образов в реестре нет вовсе - он собирается на месте при первом запуске.
Решение. Не обращать внимания и запускать стек. Скачивание образов заранее тут не обязательно.
Данные лежат не в томах Docker
Пример настроек от вендора задает пути к базе и вложениям как каталоги хоста. В результате именованные тома превращаются в обычные каталоги, и список томов Docker показывает пусто. База живет в /var/lib/postgresql/data, вложения - в /var/openproject/assets. Кто забэкапит «тома Docker», не сохранит ничего.
Служебный контейнер перезапускается в первые полминуты
Тот, что наполняет базу, несколько раз падает и стартует заново, пока ждет готовности PostgreSQL. Выглядит тревожно, но это штатное поведение: он дожидается базы и выходит с нулевым кодом.
Проверка состояния отстает от реальности
Страница входа уже отвечает, а список контейнеров еще показывает «нездоров». Статус догоняет через десяток секунд. Смотреть надо на ответ по адресу, а не только на вывод команды.
Что проверили живьем
Почта нужна для приглашений, уведомлений и восстановления пароля. Мы настроили ее на стенде и отправили письмо по-настоящему, а не проверили «отправилось без ошибки».
Письмо ушло за 0,88 секунды и дошло до ящика. Сверка сертификата при этом строгая, без послаблений - то есть настройка ровно та, которая будет у вас в бою.
Неочевидное. У продукта есть защита от обращений во внутреннюю сеть. Если почтовый сервер стоит у вас на приватном адресе, отправка будет отклонена, пока адрес не внесен в список разрешенных. На публичном сервере проблемы нет.
Базовые настройки задаются переменными окружения, но есть тонкость: перечень переменных в готовом compose-файле фиксированный, и новые туда надо добавлять отдельным файлом-дополнением.
Что закрыть обязательно
| Что | Почему |
|---|---|
| Пароль администратора | Из коробки admin / admin. Смена при первом входе обязательна, но пароль лучше задать заранее переменной |
| Ключ подписи сессий | В примере вместо ключа стоит слово OVERWRITE_ME. С ним сессии подделываются |
| Пароль базы | В примере записан открытым текстом и одинаков у всех, кто скопировал файл |
| Секрет сервиса совместного редактирования | Там же стоит OVERRIDE_ME_PLEASE - тоже требует замены |
| Версия PostgreSQL | В самом compose по умолчанию стоит 13, хотя вендор требует 16 и выше. Пример настроек это исправляет, но если пишете свой - задайте явно |
| Бэкап | Дамп базы плюс каталог вложений на хосте. Тома Docker тут ни при чем |
Проверено на версии 17.8.0, 28 сентября 2026 года. На новых версиях результаты могут отличаться.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за несколько минут получаете рабочий домен, валидный сертификат и файл с доступами.
Рекомендуемая конфигурация: CPU4-RAM8-DISK100
Сколько это стоит по сравнению с подпиской
Считаем на организацию в 25 человек - это минимальный порог подписки у самого OpenProject.
| Вариант | В месяц |
|---|---|
| Community на своем сервере | 1100 рублей за всю организацию, пользователей сколько угодно |
| OpenProject Enterprise Basic | около 149 евро, и сервер все равно свой |
| Microsoft Project Plan 3 | около 750 долларов |
Разница в десятки раз, и она не растет вместе с командой: цена сервера от числа людей не зависит.
Оговорка. За 1100 рублей вы получаете именно бесплатную версию - без базовых планов, портфеля и планирования ресурсов. Сравнение корректно для тех, кому этого хватает, и таблица выше дает проверить себя до заказа.
Для российского покупателя у истории есть второе дно: подписку Microsoft сейчас не продадут в принципе. Тогда Community - не экономия, а единственный работающий вариант.
Связь с другими стеками
- Redmine - прародитель. Легче в восемь раз, но канбана и Ганта с зависимостями в ядре нет, только плагинами.
- Plane - современный трекер для команды разработки: циклы, модули, роадмапы. Если нужна доска, а не график работ, смотрите туда.
- Vikunja и Kaneo - легкие планировщики на десятки мегабайт. Другой класс задач и другой бюджет железа.
- Nextcloud - у OpenProject есть штатная интеграция с ним для файлов проекта.
Когда это НЕ ваш выбор
Вам нужны базовые планы
Если смысл работы в том, чтобы зафиксировать план и сравнивать с ним факт, бесплатной версии не хватит. Это платная функция, и обойти ее нечем.
Команда из трех человек
Девять контейнеров, два гигабайта памяти и тариф за 1100 рублей ради списка задач - избыточно. Возьмите легкий планировщик.
Вы рассчитывали на CPU2-RAM4-DISK50
Не влезает: вендор требует четыре ядра, а в этом тарифе их два. Это единственный продукт нашей полосы управления проектами, которому 500 рублей в месяц мало.
Нужен портфель проектов или загрузка людей
Планирование ресурсов и портфель - платные модули. Причем ресурсное планирование сообщество просило годами, и вышло оно именно платным.
Короткие ответы
Хватит ли тарифа CPU4-RAM8-DISK100?
Да, с запасом. В простое стек занимает 2,18 GiB из 8 ГБ и 5 ГБ диска из 96. Тариф CPU2-RAM4-DISK50 не подходит: там два ядра вместо требуемых четырех.
OpenProject на русском?
Да, локализация в образе и включается одной настройкой. Гант, бюджеты, бэклоги и администрирование переведены.
Диаграмма Ганта правда бесплатная?
Да, сама диаграмма со всеми задачами, вехами и зависимостями работает без ключа. Платные - сравнение с базовым планом и выгрузка графика в PDF.
Стоит ли переезжать с Redmine?
Если вы доплачиваете за плагины досок и планировщика - вероятно да, в OpenProject это штатные модули. Взамен получите восьмикратный рост аппетита к памяти.
Что с бэкапом?
Дамп PostgreSQL плюс каталог вложений. Оба лежат на хосте обычными каталогами, а не в томах Docker - это легко упустить.
Можно ли потом купить платные функции?
Технически ключ вводится в администрировании и открывает их без переустановки. Практически покупка у немецкого вендора из России сейчас затруднена, и рассчитывать на нее не стоит.
Итог
OpenProject ставится за семь с половиной минут и занимает 2,18 GiB в простое - это самый тяжелый продукт нашей полосы управления проектами и единственный, которому не хватает CPU2-RAM4-DISK50. Взамен вы получаете настоящий планировщик: Гант с зависимостями, иерархию работ, бюджеты и учет времени, причем все это в бесплатной версии. Платить придется за базовые планы, портфель и планирование ресурсов - и решать, нужны ли они, лучше до установки.
Этот стек у нас запущен на тарифе CPU4-RAM8-DISK100. Нашли неточность в гайде - напишите, поправим в течение дня.