Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
ПРОДУКТИВНОСТЬ И ПЛАНИРОВАНИЕ

OpenProject

Свой планировщик проектов вместо MS Project: диаграмма Ганта, иерархия работ, бюджеты и учет трудозатрат на собственном сервере. Ставим версию 17.8.0 в Docker, меряем аппетит и разбираемся с главным вопросом - что реально работает в бесплатной версии, а за что просят денег.

Проверено на версии 17.8.0, 28 сентября 2026~11 минутFatmetal Team
УПРАВЛЕНИЕ ПРОЕКТАМИ Лицензия: GNU GPL v3 Ruby on Rails + Angular Статус: запущен у нас, 17.8.0

Вердикт

Подходит
  • проектному офису, которому нужны Гант, вехи и зависимости, а не доска с карточками
  • тем, кто съезжает с MS Project: подписку Microsoft в России сейчас просто не продадут
  • кто считает деньги по проектам - бюджеты и учет трудозатрат идут в бесплатной версии
  • администраторам Redmine: это его же потомок, но с доской и Гантом в ядре
Не подходит
  • если нужны базовые планы Ганта - сравнение с планом стоит денег
  • команде из трех человек: девять контейнеров и 2 гигабайта памяти ради канбана избыточны
  • кому нужен портфель проектов или планирование ресурсов - это платные модули
  • тем, кто рассчитывал уложиться в CPU2-RAM4-DISK50 за 500 рублей в месяц
Мин. тариф: CPU4-RAM8-DISK100 RAM в простое: 2,18 GiB на стек Сложность: medium Время запуска: ~7,5 минуты с чистой машины Главный риск: данные лежат не в томах Docker Прод-готовность: да, с оговорками ниже
ЧТО ЭТО

Потомок Redmine, выросший в комбайн

OpenProject - не доска задач. Это система управления проектами того класса, к которому привыкли в проектных офисах: пакеты работ с иерархией, диаграмма Ганта с вехами и зависимостями, бюджеты, учет затраченного времени, совещания с протоколами, вики на каждый проект.

Задача здесь называется не задачей, а пакетом работ. Термин пришел из PRINCE2 и живет в больших организациях - им пользуются в госзаказе, инжиниринге и стройке. Это точная подсказка, чей это инструмент.

Родословная необычная и проверяемая: OpenProject - форк Redmine. Это написано не в маркетинге, а в шапке каждого файла исходников: «OpenProject is a fork of ChiliProject, which is a fork of Redmine». Вендор датирует развилку 2011 годом.

За продуктом стоит немецкая OpenProject GmbH. Ядро открыто под GPL v3, кодовой базе двадцать лет, минорные версии выходят примерно раз в месяц.

Ruby on RailsAngularPostgreSQL 17memcachedDocker ComposeGPL-3.0
ГЛАВНОЕ

Что бесплатно, а что за деньги

Открытое ядро, и граница проходит по живому. Мы проверили ее не по сайту вендора, а запросом к работающему продукту.

Хорошая новость: бесплатная 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.1166 MiB
Контейнеров9
Образы на диске2,73 ГБ
Занято на диске всего5,0 ГБ из 96
База после установки24 МБ
С чистой машины до входа7,5 минуты
Перезапуск до ответа80 секунд
Отклик /login снаружи171 мс

Веб-процесс прогревается, и первая цифра врет

Сразу после запуска веб-процесс занимает 730 MiB, весь стек - 1,52 GiB. После обхода страниц вырастает до гигабайта, после реальной работы с миграциями и API устаканивается на 1,32 GiB.

Дальше рост прекращается. Это обычный прогрев Rails с четырьмя рабочими процессами, а не утечка. В таблице выше - устоявшиеся цифры, мерили четырьмя выборками с интервалом двадцать секунд.

i

Про тариф. Младший 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

Развернуть в 1 клик →
УСТАНОВКА

Развертывание

  1. Взять compose из правильного репозитория

    Это первая и главная развилка. Файл docker-compose.yml в репозитории самого продукта - для разработчиков, и он падает нарочно. Рабочий лежит отдельно.

    git clone --depth 1 -b stable/17 \
      https://github.com/opf/openproject-docker-compose.git
    cd openproject-docker-compose
  2. Заполнить .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
  3. Поднять стек

    Первый запуск дольше обычного: разворачиваются миграции и наполняется демо-проект.

    docker compose up -d
    docker compose ps
  4. Поставить обратный прокси

    Наружу продукт смотрит только через прокси с сертификатом. Сам он слушает локальный порт и в интернет не выставляется.

  5. Сменить пароль администратора

    Из коробки это admin / admin с принудительной сменой при первом входе. Лучше задать пароль сразу переменной OPENPROJECT_SEED_ADMIN_USER_PASSWORD.

Русский интерфейс включается одной настройкой и переведен хорошо: Гант, бюджеты, бэклоги и администрирование - все на русском.

ГРАБЛИ

Где может сломаться

Invalid host_name configuration

Симптом. Контейнеры здоровы, проверка состояния отдает 200, а любая страница - голое сообщение с кодом 400 и никаких подсказок.

Причина. Продукт сверяет адрес в запросе с тем, что записано в OPENPROJECT_HOST__NAME. Не совпало - отказ.

Решение. Записать в переменную ровно тот домен, по которому заходите. Это самая частая причина «продукт не работает» на свежей установке.

pull access denied for openproject/proxy

Симптом. Команда скачивания образов заканчивается ошибкой, и кажется, что установка провалилась.

Причина. Одного из образов в реестре нет вовсе - он собирается на месте при первом запуске.

Решение. Не обращать внимания и запускать стек. Скачивание образов заранее тут не обязательно.

Данные лежат не в томах Docker

Пример настроек от вендора задает пути к базе и вложениям как каталоги хоста. В результате именованные тома превращаются в обычные каталоги, и список томов Docker показывает пусто. База живет в /var/lib/postgresql/data, вложения - в /var/openproject/assets. Кто забэкапит «тома Docker», не сохранит ничего.

Служебный контейнер перезапускается в первые полминуты

Тот, что наполняет базу, несколько раз падает и стартует заново, пока ждет готовности PostgreSQL. Выглядит тревожно, но это штатное поведение: он дожидается базы и выходит с нулевым кодом.

Проверка состояния отстает от реальности

Страница входа уже отвечает, а список контейнеров еще показывает «нездоров». Статус догоняет через десяток секунд. Смотреть надо на ответ по адресу, а не только на вывод команды.

ПОЧТА

Что проверили живьем

Почта нужна для приглашений, уведомлений и восстановления пароля. Мы настроили ее на стенде и отправили письмо по-настоящему, а не проверили «отправилось без ошибки».

Письмо ушло за 0,88 секунды и дошло до ящика. Сверка сертификата при этом строгая, без послаблений - то есть настройка ровно та, которая будет у вас в бою.

i

Неочевидное. У продукта есть защита от обращений во внутреннюю сеть. Если почтовый сервер стоит у вас на приватном адресе, отправка будет отклонена, пока адрес не внесен в список разрешенных. На публичном сервере проблемы нет.

Базовые настройки задаются переменными окружения, но есть тонкость: перечень переменных в готовом 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 рублей в месяц мало.

Нужен портфель проектов или загрузка людей

Планирование ресурсов и портфель - платные модули. Причем ресурсное планирование сообщество просило годами, и вышло оно именно платным.

FAQ

Короткие ответы

Хватит ли тарифа 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. Взамен вы получаете настоящий планировщик: Гант с зависимостями, иерархию работ, бюджеты и учет времени, причем все это в бесплатной версии. Платить придется за базовые планы, портфель и планирование ресурсов - и решать, нужны ли они, лучше до установки.

TG
Разборы и замеры - в нашем канале Каждую неделю поднимаем новый self-hosted стек и меряем, сколько он ест на самом деле.
@fatmetal

Этот стек у нас запущен на тарифе CPU4-RAM8-DISK100. Нашли неточность в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи