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

Redmine

Установка в Docker и эксплуатация версии 7.0.1. Трекеру задач двадцать лет, и летом 2026 он переехал на Rails 8, научился вебхукам и перерисовал навигацию. Ставим из официального образа, меряем аппетит и собираем грабли, на которые наступили сами.

Проверено на версии 7.0.1, 27 сентября 2026~11 минутFatmetal Team
ТРЕКЕР ЗАДАЧ Лицензия: GNU GPL v2 or later Ruby on Rails 8.1 Статус: запущен у нас, 7.0.1

Вердикт

Подходит
  • команде от 20 человек, где подписка за пользователя стала заметной строкой бюджета
  • тем, кому нужны вики и форум на каждый проект в одном продукте с задачами
  • разработке: встроенный обозреватель Git и Subversion, привязка коммитов к задачам
  • кому важна неотзываемость - вендора нет, лицензию переписать некому
Не подходит
  • если нужен канбан из коробки - в ядре его нет, только плагинами
  • госзаказчикам: Redmine не в реестре отечественного ПО
  • командам до 10 человек - бесплатных тарифов у конкурентов хватит
  • кто не готов держать сервер и обновлять его сам
Мин. тариф: CPU2-RAM4-DISK50 RAM в простое: 267 MiB на стек Сложность: easy Время запуска: ~3,5 минуты с чистой машины Главный риск: плагины при мажорном обновлении Прод-готовность: да, с оговорками ниже
ЧТО ЭТО

Трекер, которому двадцать лет

Первый коммит - 28 июня 2006 года. Юбилей апстрим отметил выпуском 7.0.

Redmine - веб-приложение для управления проектами на Ruby on Rails. Проекты и подпроекты, ролевой доступ, настраиваемые трекеры и рабочие процессы, диаграмма Ганта, календарь.

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

Отдельная редкость - интеграция с системами контроля версий. Встроенный обозреватель репозитория показывает дифы и связывает коммиты с задачами, поддержаны Subversion, Git, Mercurial, Bazaar и CVS.

Компании за проектом нет вовсе. Разработку ведут волонтеры, деньги приходят от донатов и рекламы на сайте. Платной редакции, облака вендора и enterprise-лицензии не существует - весь продукт под GPL v2.

Ruby 4.0.7Rails 8.1PostgreSQL 16.15PumaCaddy 2.11.4
Вики проекта в Redmine 7.0
Вики заводится на каждый проект и входит в ядро - отдельный продукт для документации не нужен.
i

Важно: GitHub у Redmine - зеркало. Разработка идет в Subversion на svn.redmine.org, поэтому раздел Releases там пуст, а 6 тысяч звезд и три открытых issue ничего не говорят о продукте. Трекер живет на redmine.org.

ЧТО НОВОГО

Что принес мажор 7.0

Релиз вышел 30 июня 2026 года и закрыл 122 задачи.

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

Под капотом переезд на Rails 8 и поддержка Ruby 4.0. Выброшены Raphael.js в пользу нативного SVG и гем html-pipeline, ChartJs переведен на ES-модули. Для двадцатилетнего Rails-приложения это главный признак, что оно живое.

Интерфейс продолжает меняться: переделаны шапка и навигация, улучшена поддержка RTL. Превью офисных документов через Pandoc расширены на xlsx и pptx.

Ставить надо именно 7.0.1, а не 7.0.0. В точечном релизе от 26 августа закрыты четыре уязвимости, включая хранимый XSS в форматтере Textile и обход проверки видимости задач через вложенные issue-relations.

Список задач Redmine 7.0 с фильтрами, статусами и исполнителями
Список задач на нашем стенде: Redmine 7.0.1, тариф CPU2-RAM4-DISK50, интерфейс русский.
ЭКОНОМИКА

Чем отличается от платных

Главная разница не в фичах, а в единице оплаты: сервер против человека.

ПродуктМодельПорог входа
Redmine на своем сервереплата за серверот 500 руб/мес на всю команду
Яндекс Трекерза пользователяот 258 руб/польз./мес
Kaitenза пользователя250-420 руб/польз./мес
YouGileза пользователябесплатно до 10, далее 594 руб
Jira Cloudза пользователяот $7,91/польз./мес

Точка окупаемости против Яндекс Трекера - два пользователя. На команде в 30 человек разрыв уже кратный: 500 рублей против 7740.

У такого счета есть вторая сторона. В подписку входит обслуживание, а свой сервер обновляете, бэкапите и чините вы. На пяти сотрудниках разница меньше часа работы админа, и SaaS там разумнее. Экономика Redmine начинает выигрывать примерно с двадцати человек.

i

Контекст. Купить Jira на свое железо с 30 марта 2026 года нельзя: Atlassian закрыл продажи Data Center новым клиентам. У существующих лицензии истекают 28 марта 2029 года, после чего продукт становится read-only. Для рынка on-prem трекеров это не подорожание, а исчезновение опции.

ЗАМЕРЫ

Что измерили на стенде

Апстрим требований к памяти и процессору не публикует вовсе, так что цифры только наши.

СтендCPU2-RAM4-DISK50, Ubuntu 24.04.4 LTS
Версия и датаRedmine 7.0.1, 27.09.2026
Docker29.8.1, compose v5.5.1
RAM в простое, весь стек267 MiB
- приложение (Puma)220 MiB
- PostgreSQL35 MiB
- Caddy12 MiB
Образы суммарно1,56 GB
Занято на диске3,9 GB из 48
Pull образов92 с
Старт до первого ответа30 с
Итого с чистой машины~3,5 минуты
Перезапуск стека32 с
Ответ страницы, локально30 мс
Ответ через Caddy по HTTPS67 мс

267 мегабайт - это мало. Репутация тяжелого ветерана на Rails замерами не подтверждается: Redmine легче Mattermost втрое и легче Zammad вдесятеро. Процессов Puma всего один, отсюда и аппетит.

Тарифа CPU2-RAM4-DISK50 хватает с большим запасом. В следующий уводят три вещи: Sidekiq с Redis, десяток плагинов и обзор крупных git-репозиториев - вот там нужен процессор.

Проверено на версии 7.0.1, 27 сентября 2026 года. На новых версиях результаты могут отличаться.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес

В маркетплейс →
УСТАНОВКА

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

Официальная инструкция апстрима - одиннадцать шагов вручную. Но контейнер есть, и он не сторонний.

В репозитории продукта нет ни Dockerfile, ни compose-файла: это чистое Rails-приложение. Зато на Docker Hub лежит library/redmine - Docker Official Image с 74 миллионами загрузок. Ставим из него.

  1. Docker из официального репозитория

    Образ Ubuntu приходит чистым, Docker на нем нет.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
      sudo tee /etc/apt/keyrings/docker.asc > /dev/null
    echo "deb [signed-by=/etc/apt/keyrings/docker.asc] \
      https://download.docker.com/linux/ubuntu noble stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list
    sudo apt-get update && sudo apt-get install -y \
      docker-ce docker-ce-cli containerd.io docker-compose-plugin
  2. Секреты - генерируем, не придумываем

    Пароль базы и ключ сессий должны быть случайными.

    DB_PASS=$(openssl rand -hex 16)
    SECRET=$(openssl rand -hex 64)
  3. compose.yaml с закрепленными тегами

    Не latest: через месяц статья описывала бы не то, что ставится.

    services:
      db:
        image: postgres:16.15-alpine
        environment:
          POSTGRES_USER: redmine
          POSTGRES_DB: redmine
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
        volumes: [pgdata:/var/lib/postgresql/data]
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U redmine"]
          interval: 5s
          retries: 20
    
      redmine:
        image: redmine:7.0.1
        depends_on:
          db: { condition: service_healthy }
        environment:
          REDMINE_DB_POSTGRES: db
          REDMINE_DB_USERNAME: redmine
          REDMINE_DB_DATABASE: redmine
          REDMINE_DB_PASSWORD: ${POSTGRES_PASSWORD}
          SECRET_KEY_BASE: ${SECRET_KEY_BASE}
        volumes: [files:/usr/src/redmine/files]
        ports: ["127.0.0.1:3000:3000"]
  4. Запуск и первый вход

    Схема базы накатывается сама при старте контейнера.

    sudo docker compose up -d
    # через 30 секунд UI отвечает, логин admin / admin

Наружу приложение смотрит через обратный прокси - у нас это Caddy, он же берет сертификат Let's Encrypt. Порт 3000 остается на localhost.

Диаграмма Ганта в Redmine 7.0 с задачами и версией проекта
Диаграмма Ганта входит в ядро, отдельный плагин для нее не нужен.
ГРАБЛИ

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

Три случая, на которые мы наступили сами. Все три диагностируются плохо.

chown: changing ownership of 'config/configuration.yml': Read-only file system

Причина. Энтрипоинт официального образа при каждом старте делает chown на каталог config. Если смонтировать туда файл с флагом :ro, chown падает и контейнер уходит в цикл перезапусков.

Решение. Монтировать конфиг без :ro. Заодно учтите: энтрипоинт меняет и права файла, с 600 на 644. Пароль SMTP внутри configuration.yml станет читаемым для любого локального пользователя.

тихий переезд на SQLite вместо PostgreSQL

Причина. Если не передать ни одной переменной с адресом базы, образ молча уходит на SQLite. Ошибки нет, контейнер поднимается, UI работает - а база лежит файлом внутри контейнера. Апстрим SQLite для многопользовательской работы прямо запрещает.

Решение. Задавать REDMINE_DB_POSTGRES явно и проверять результат: в config/database.yml у секции production должен стоять adapter postgresql.

вебхук создан и активен, но не срабатывает

Причина. Вебхук в Redmine привязывается к проектам. Без назначенного проекта он не сработает ни на одном событии - выборка делает INNER JOIN по таблице связи. При этом запись сохраняется, флаг активности стоит, список событий заполнен, и все выглядит рабочим.

Решение. Назначить вебхуку хотя бы один проект. Отдельно помните, что доставка идет фоновой задачей внутри веб-процесса: событие, вызванное из консоли, не доедет вовсе.

i

Про Ruby. Апстрим предупреждает, что на Ruby 4.0.0-4.0.3 заметно тормозит рендер вики - это регрессия самого рантайма, починена в 4.0.4. В официальном образе 7.0.1 лежит Ruby 4.0.7, так что при установке из контейнера проблемы нет.

ЭКСПЛУАТАЦИЯ

Почта и вебхуки: что проверили живьем

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

SMTP настраивается только файлом config/configuration.yml - переменных окружения у образа для этого нет. Письмо до ящика дошло за секунду.

Отдельно померили среднее состояние, которое клиент получает при опечатке в адресе сервера. Почта настроена, но недостижима: интерфейс висит 30 секунд и отдает Net::OpenTimeout. Полминуты замершего экрана человек читает как сломанный продукт, а не как ненастроенную почту.

Вебхуки выключены по умолчанию и включаются администратором на новой вкладке Integrations. Доступно 15 типов событий. В полезной нагрузке приходит не только состояние задачи, но и дифф изменения, а подпись HMAC лежит в заголовке X-Redmine-Signature-256 в формате, совместимом с GitHub.

Вкладка Integrations в настройках Redmine 7.0 с включенными вебхуками
Вебхуки включаются одной галочкой. Название вкладки и пункта в русской локали пока не переведены.
Карточка задачи Redmine 7.0 с историей изменений и трудозатратами
Карточка задачи: поля, история изменений и списанное время в одном экране.

Русский интерфейс работает из коробки: в образе 50 локалей, русский файл весит 113 килобайт. Стартовые данные тоже ставятся на русском - трекеры, статусы и роли приходят переведенными.

БЕЗОПАСНОСТЬ

Что закрыть перед продом

Четыре пункта, из которых три не видны, пока не наступишь.

ЧтоПо умолчаниюЧем грозит
Учетная запись админаadmin / adminоткрытый сервер с угадываемой парой
SECRET_KEY_BASEгенерируется зановосессии рвутся при пересоздании контейнера
Адрес отправителя писемredmine@example.netдомена не существует, письма уедут в спам
Имя хоста и протоколlocalhost:3000, HTTPссылки внутри писем ведут в никуда

Два последних пункта коварнее прочих. Они не мешают продукту работать и всплывают только тогда, когда сотрудник получает уведомление и не может по нему перейти.

Проверяйте смену пароля результатом, а не сообщением об успехе. Мы на этом обожглись: скрипт отрапортовал, что пароль сменен, а пара admin/admin продолжала пускать - Redmine молча игнорирует попытку записать пустой пароль.

Дальше обычное: TLS снаружи, порт приложения на localhost, том под каталог files, резервная копия базы и того же каталога. Редакция 7.0.1 уже содержит исправления четырех уязвимостей, так что на 7.0.0 задерживаться незачем.

ОБНОВЛЕНИЯ

Плагины - главный риск при апгрейде

Все, чего нет в ядре, приходит от третьих лиц. И ломается вместе с мажором.

В официальном каталоге около 1340 плагинов. Ими закрывают канбан-доску, хелпдеск, CRM и развитую отчетность - в ядре этого нет.

Инструкция апстрима по обновлению о поломке плагинов не предупреждает: скопируйте папки и накатите миграции. Но в 7.0 выброшены две библиотеки, на которые плагины опирались, а из ядра удалены устаревшие CSS-классы.

Косвенное подтверждение проблемы - существование отдельного плагина Plugin Compatibility Check, совместимого с 7.0. Такой инструмент не пишут для проблемы, которой нет. Мы плагины не ставили и совместимость не проверяли, поэтому не выдаем свои догадки за факт.

i

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

Само ядро при этом обновляется предсказуемо. Мажор выходит раз в полгода, одновременно поддерживаются три ветки, и 26 августа 2026 года все три получили релиз в один день.

СОСЕДИ

Связь с другими стеками

  • Gitea или GitLab - Redmine умеет показывать их репозитории внутри проекта и связывать коммиты с задачами.
  • Plane - современная доска с циклами и роадмапами. Если нужен канбан в центре продукта, а не вики и учет времени, смотрите туда.
  • Vikunja - заметно легче, 58 MiB против 267. Но без вики, форумов и обозревателя репозиториев.
  • Сервер входящей почты - Redmine умеет заводить задачи из писем, это закрывает сценарий простого хелпдеска без отдельного продукта.
ОГРАНИЧЕНИЯ

Когда это НЕ ваш выбор

Вам нужен канбан из коробки

В ядре Redmine доски нет. Есть список задач, Гант и календарь. Канбан ставится плагином, а плагин - это то, что ломается при каждом мажорном обновлении.

Вы обязаны закупать из реестра отечественного ПО

Redmine - французский community-проект, в реестре его нет и быть не может. Формальное импортозамещение он не закрывает. Локализация данных - другое дело: сервер ваш и стоит где скажете.

Команда меньше десяти человек

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

Вам важен современный интерфейс

Навигацию в 7.0 перерисовали, но продукт остается утилитарным. Если команда выбирает трекер глазами, Redmine проиграет почти любому конкуренту.

FAQ

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

Хватит ли тарифа CPU2-RAM4-DISK50?

Да, с запасом. Весь стек в простое занимает 267 MiB из 4 GB и 3,9 GB диска из 48.

Redmine на русском?

Да, локализация в образе, включается одной настройкой. Не переведены только вкладка Integrations и пункт про вебхуки - новая фича 7.0.

Нужен ли Sidekiq?

Не обязателен. Без него фоновые задачи выполняет веб-процесс, и перезапуск контейнера теряет незавершенные. Апстрим рекомендует Sidekiq для продакшена.

Можно ли обновиться с 5.x сразу на 7.0?

Ядро - да, по штатной процедуре с миграциями. Риск не в ядре, а в плагинах: 7.0 сменил Rails и выбросил библиотеки, на которые они опирались.

Что с бэкапом?

Дамп PostgreSQL плюс каталог files с вложениями. База с рабочими данными занимает единицы мегабайт.

Итог

Redmine 7.0.1 ставится из официального образа за три с половиной минуты и занимает 267 MiB в простое - для двадцатилетнего Rails-приложения неожиданно скромно. Тарифа CPU2-RAM4-DISK50 хватает с запасом, вики и учет времени идут в ядре, а вебхуки наконец делают трекер интегрируемым. Взамен придется смириться с отсутствием канбана и помнить, что плагины переживут не каждый мажор.

Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe

Не хотите устанавливать вручную?

Запустите Redmine на этой конфигурации автоматически - от 450 ₽/мес.

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

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