Давеча появилась необходимость внедрить SLA в Redmine для некоторых типов задач. Каких‑то автоматизированных метрик в компании сейчас нет, из‑за чего руководителю направления приходится «вручную» или вернее «вглазную» контролировать сроки. Минусы этого описывать не буду. Сменить Redmine может и хотелось бы, но возможности такой нет.

Несмотря на устаревший интерфейс, по‑прежнему довольно много компаний используют Redmine, благодаря 3 китам: бесплатности, открытому исходному коду, гибкости настройки, а также те кому важно иметь систему на собственном хостинге.

Я был уверен, что задача нетривиальная. Ведь система давно на рынке, экосистема плагинов немаленькая — значит, должно быть готовое решение. Достаточно найти подходящий плагин, установить — и готово! С этой целью я начал поиск доступных вариантов.

На практике всё оказалось сложнее...

Вот и решил я разобраться, какие плагины реально работают (или не работают) на версии Redmine 5.1, какие проблемы возникают и какие варианты вообще остаются.

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

Раз уж у меня было время и желание, то подошел к вопросу с должным энтузиазмом. Таблица сравнений будет ниже.

Написал небольшое ТЗ, но здесь не будем вдаваться в него подробно. Если вкратце задача стоит так:

Чтобы не трогать работающий функционал и не быть голословным в своих догадках.

Поднял стенд Redmine в Docker с отдельной внутренней базой данных и тестовыми данными, чтобы безопасно установить, протестировать и сравнить плагины.

Оказалось, что подходящих плагинов неожиданно мало, а «живых» еще меньше. Хоть требований и немного:

  1. Необходимо контролировать время реакции;

  2. Время решения;

  3. И уметь в списке задач фильтровать по параметрам выше.

В итоге отобрал несколько наиболее живых вариантов. Искал их на официальном сайте и гитхабе.

Теперь подробнее:

Как я поднимал стенд

Чтобы изолировать все мои эксперименты, я собрал стенд в docker

  • отдельный контейнер с Redmine

  • отдельная база данных

  • доступ только через localhost

  • фиксированная версия Redmine (5.1)

Заранее вынес папку с файлами и плагинами на локальный диск, чтобы не пересобирать контейнер каждый раз.

Docker-compose.yml

services:
   postgres:
     image: postgres:16
     volumes:
       - db_data:/var/lib/postgresql/data
     environment:
       POSTGRES_USER: "redmine"
       POSTGRES_PASSWORD: "password"
       POSTGRES_DB: "redmine"
       PGDATA: "/var/lib/postgresql/data"
     restart: always
   redmine:
     image: redmine:5.1
     ports:
       - 80:3000
     volumes:
       - ./local-files:/usr/src/redmine/files
       - ./local-plugins:/usr/src/redmine/plugins
     depends_on:
       - postgres
     environment:
       REDMINE_DB_POSTGRES: "postgres"
       REDMINE_DB_USERNAME: "redmine"
       REDMINE_DB_PASSWORD: "password"
       REDMINE_DB_DATABASE: "redmine"
     restart: no
     

volumes:
  redmine_data:
  db_data:  

Запускаюсь

docker-compose up -d

И вот Redmine запущен, ожидал что будут ошибки, но запуск прошел спокойно.

в docker-desktop появились контейнеры, в браузере Redmine открывается.

Авторизуюсь в первый раз (admin/admin)

Заполнил разные справочники, создал проект и несколько задач.

И вот уже казалось бы пора проверять скачанные плагины, но нет. Сначала делаю backup хотя бы базы данных.

Из desktop версии докера сделать это несложно:

Переходим во вкладку "Volumes" -> Открываем базу -> Переходим во вкладку "Export" -> Жмем кнопку "Quick export"

Тестирование плагинов

Чтобы избежать конфликтов, проверяю плагины по отдельности. Принцип следующий:

  1. Беру плагин и кладу в папку plugins на диске

  2. Устанавливаю зависимости(bund le install)

  3. Делаю миграцию, если требуется (rake redmine:plugins)

Как правило, что требуется для установки плагина описано в месте откуда я их скачивал.

Сразу поймал пару ошибок вида:

Could not find gem 'business_time (>= 0.13.0)'
Could not find gem 'holidays (>= 7.1.0)'

Вылечил, установив нужные библиотеки:

gem install business_time
gem install holidays

Анализ плагинов

Сводная таблица

Плагин

Результат

Комментарий

1

reporting_sla

Не успешно

Несовместимость версий

2

likehopper/redmine_sla

Не успешно

Нет поддержки oracle

3

redmine_issue_sla

Не успешно

Несовместимость версий

4

redmine_sla_timer

Не успешно

Несовместимость версий

5

redmine_sla_ola

Успешно

Есть дополнительные требования к задачам

6

agile

Успешно

Не покрывает нужных сценариев

7

RedmineUP

Успешно

Не совсем то, что нужно

8

Самописный плагин

-

Оценка по времени = 3-5 дня на демоверсию

Подробнее о каждом плагине

reporting_sla

плагин для отслеживания и отчетности по соглашениям об уровне обслуживания (SLA) в Redmine, предоставляющий подробные отчеты о жизненном цикле задач с настраиваемыми расчетами SLA на основе рабочего времени, праздников, выходных и матриц приоритетов.

Ссылка: https://github.com/easy-petr/redmine-sla-plugin

Дата последнего обновления: 18.11.2025

Вывод: Версии Rails/Redmine несовместимы. Требует серьезной доработки


likehopper/redmine_sla

плагин делегирует расчет SLA хранимым процедурам PostgreSQL, что позволяет: точно обрабатывать рабочие графики сроки с учетом праздников эффективно рассчитывать большие объемы задач предсказуемые и воспроизводимые результаты движок разработан для производственной среды

Ссылка

Дата последнего обновления:  12.02.2026

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


redmine_agile

Устанавливается без доработок, работает, но не решает задачу SLA

Ссылка

Дата последнего обновления:  03.12.2025

Вывод: не про SLA, а скорее про визуализацию задач


redmine_issue_sla

Плагин, позволяющий назначать соглашения об уровне обслуживания (SLA) в зависимости от приоритета задачи и проекта. В последний раз обновлялся под Redmine 3.x

Ссылка

Дата последнего обновления:  29.01.2018

Вывод: на 5.1 не встает без переделок, плагин устарел


redmine_sla_timer

Описания как таковое отсутствует

Ссылка

Дата последнего обновления:  12.07.2020

Вывод: на redmine 5.1 без переделок не встает


redmine_sla_ola

Плагин запускается, но для нормальной работы тоже требуются доработки. Необходимо

  • добавить кастомное поле products

  • добавить поле first_reply

Без этого плагин просто бесполезен.

Ссылка

Дата последнего обновления:  12.07.2020

Вывод: рабочий вариант, но не “из коробки”


RedmineUP Helpdesk

Живой продукт. Авторы предлагают только пакетные предложения. В том числе и для тех.поддержки

Ссылка

Дата последнего обновления: нет информации

Вывод: Стабильный вариант, если есть бюджет. Есть поддержка и обновления.

Итог

Готового решения, чтобы поставить и использовать я не нашел.

Большинство плагинов просто из "коробки" не взлетят. Если вам нужен SLA в Redmine, то, по сути, есть три дороги:

  • Платить чтобы внедрил кто-то другой (redmineUP), но не всегда это оказывается проще, учитывая политику безопасности.

  • Дорабатывать существующие (redmine_sla_ola)

  • Писать свое

Четвертого я не нашел. На мой взгляд 3 вариант наиболее подходящим, по крайней мере, в моем конкретном случае.

В следующей статье покажу прототип.

Комментарии (2)


  1. VitaminND
    19.04.2026 10:05

    SLA - хотелки менежеров, мало общего имеют с реальным миром.

    Как можно по приоритету задачи установить, сколько времени должно пойти на ее решение?
    Если, конечно, задача не типовая. А типовые задачи в нашем мире программистов редко встречаются.


    1. Kirim
      19.04.2026 10:05

      SLA полезно, когда нужно остлеживать время реакции, а не всегда решение. Особенно в саппорте, чтобы запрос клиента ушел дальше вовремя. С разработкой, это может быть полезно когда SLA для менеджера на проверку задачи. Ну в целом много можно придумать таких вещей. Решение, согласен, странно автоматически оценивать