Как установить плагин в Redmine (Bitnami, Docker)
Чтобы установить плагин в Redmine, положите его в plugins/<ID плагина>, запустите bundle install и миграции плагина, затем перезапустите Redmine. Пример с View Customize — выполните в папке Redmine, где лежит config/database.yml:
cd /path/to/redmine
git clone https://github.com/onozaty/redmine-view-customize.git plugins/view_customize
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Потом перезапустите Redmine: под Passenger хватит touch tmp/restart.txt, на сервере Bitnami — sudo /opt/bitnami/ctlscript.sh restart, в Docker — docker compose restart redmine. Иначе перезапустите сервер приложений, например Puma. Плагин появится в разделе «Администрирование → Модули».
Я проверил это на Redmine 7.0.3, 6.1.6 и 5.1.12 в официальном Docker-образе и на образе Bitnami с Redmine 6.0.6.
Что делает каждая команда
- Папка в
plugins/называется по ID плагина, а не по имени репозитория. Правильную командуgit cloneобычно дают в README. bundle installставит гемы плагина. Без него Redmine не запустится:Could not find gem 'write_xlsx' in locally installed gems.redmine:plugins:migrateсоздаёт таблицы плагина. Перед миграцией сделайте бэкап базы. Если её пропустить, страницы отдают ошибку 500:relation "view_customizes" does not exist.- Перезапуск подключает плагин: Redmine читает плагины только при старте.
Проверить из консоли:
bundle exec bin/about
Плагин будет в списке Redmine plugins:.
Имя папки должно совпадать с ID плагина
ID записан в init.rb: Redmine::Plugin.register :view_customize. Обычный git clone этого репозитория создаст папку redmine-view-customize, а ZIP-архив с GitHub распакуется в redmine_drawio-master. С такой папкой Redmine не запустится:
Redmine::PluginNotFound: Plugin not found. The directory for plugin view_customize should be /usr/src/redmine/plugins/view_customize.
Переименуйте папку и повторите шаги.
Как удалить плагин Redmine
cd /path/to/redmine
bundle exec rake redmine:plugins:migrate NAME=view_customize VERSION=0 RAILS_ENV=production
rm -rf plugins/view_customize
Затем перезапустите Redmine. VERSION=0 откатывает все миграции плагина и удаляет его таблицы вместе с данными, поэтому сначала сделайте бэкап. Соблюдайте порядок: если папку уже удалили, задача остановится с Plugin view_customize was not found, а таблицы останутся в базе.
Как установить плагин в Bitnami Redmine
В виртуальных машинах и облачных образах Bitnami Redmine лежит в /opt/bitnami/redmine. В инструкции Bitnami те же шаги:
cd /opt/bitnami/redmine/plugins
git clone https://github.com/onozaty/redmine-view-customize.git view_customize
cd ..
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
sudo /opt/bitnami/ctlscript.sh restart
В старых стеках с Redmine 3.x, как у меня в 2017 году, Redmine лежит в /opt/bitnami/apps/redmine/htdocs. Выполните те же команды там и перезапустите Apache: sudo /opt/bitnami/ctlscript.sh restart apache. У моего инсталлятора ctlscript.sh был в /opt/redmine-3.3.2-2.
Чтобы открыть «Администрирование → Модули», войдите под user: так в Bitnami называется администратор (если забыли пароль).
Bundler в Bitnami работает в режиме deployment. Если плагин добавляет гемы, bundle install падает с ошибкой the lockfile can't be updated because frozen mode is set. Снимите заморозку и повторите bundle install:
bundle config set --local frozen false
bundle install
Если гем не собирается с ошибкой make failedNo such file or directory - make или extconf.rb failed, поставьте компилятор и заголовки zlib и снова запустите bundle install:
sudo apt-get install build-essential zlib1g-dev
Флаг --no-deployment из инструкции Bitnami в Bundler 2.6 устарел: ошибка про frozen остаётся, а из .bundle/config пропадает путь vendor/bundle. После этого deployment false ставит все гемы заново, а frozen false по-прежнему работает.
Docker-образ Bitnami
Плагины лежат на томе в /bitnami/redmine/plugins, и при каждом старте контейнер прогоняет их миграции. А вот гемы на томе не сохраняются. Когда я пересоздал контейнер, он упал на шаге «Executing database migrations» с той же ошибкой про frozen lockfile. Её видно только с BITNAMI_DEBUG=true. Компилятора в образе тоже нет.
Bitnami сворачивает бесплатные образы
Бесплатные образы Bitnami, в том числе на AWS, больше не обновляются. Что случилось и как уйти с Bitnami — в посте Установка Bitnami Redmine в 2026. Новый сервер поднимайте на официальном образе redmine, плагины с гемами ставьте туда же.
Как установить плагин в Docker
При каждом старте официальный образ ставит недостающие гемы (bundle check || bundle install), а если задана REDMINE_PLUGINS_MIGRATE, ещё и прогоняет миграции плагинов. В compose.yaml:
services:
redmine:
build: .
environment:
# плюс ваши настройки REDMINE_DB_*
SECRET_KEY_BASE: "a-long-random-string"
REDMINE_PLUGINS_MIGRATE: "1"
volumes:
- ./plugins:/usr/src/redmine/plugins
В стандартном образе нет компилятора. Если гемам плагина он нужен, контейнер падает при старте с ошибкой вроде make failedNo such file or directory - make или extconf.rb failed. Поэтому рядом с compose.yaml кладём Dockerfile:
FROM redmine:7.0
RUN apt-get update \
&& apt-get install -y --no-install-recommends build-essential \
&& rm -rf /var/lib/apt/lists/*
git clone https://github.com/onozaty/redmine-view-customize.git plugins/view_customize
# первый запуск; дальше: docker compose restart redmine
docker compose up -d --build
docker compose exec redmine bundle exec bin/about
Последнюю команду запускайте, когда в docker compose logs redmine появится Listening on. Плагин будет в списке Redmine plugins:.
Удаление:
docker compose exec redmine bundle exec rake redmine:plugins:migrate NAME=view_customize VERSION=0
rm -rf plugins/view_customize
docker compose restart redmine
Ключ задавайте в SECRET_KEY_BASE, а не в REDMINE_SECRET_KEY_BASE. Из второй переменной entrypoint передаёт ключ только серверу, и docker compose exec падает с Missing `secret_key_base` . При пересоздании контейнера гемы плагинов ставятся заново, так что на этом старте нужен интернет.
Совместимость с Redmine 6 и 7
Сейчас поддерживаются три ветки: 7.0 (Rails 8.1), 6.1 (Rails 7.2, исправления ошибок и безопасности) и 6.0 (Rails 7.2, только исправления безопасности). Ветки 5.x больше не поддерживаются. Плагины ломаются на мажорных обновлениях. В 6.0 появились Rails 7.2, Propshaft для статики и SVG-иконки. В 7.0 — Rails 8.1, а старые CSS-классы icon-* удалили.
requires_redmine в init.rb задаёт только минимальную версию. Плагин redmine_banner заброшен с 2020 года и заявляет совместимость с 4.0 и выше, но на 7.0.3 Redmine с ним не запускается: LoadError: cannot load such file -- banners/application_hooks. Один сломанный плагин роняет весь Redmine: удалите его папку и перезапустите. Если плагину нужна версия новее, он скажет сам: additionals plugin requires Redmine 7.0 or higher but current is 6.1.6.stable.
Перед установкой посмотрите дату последнего коммита и требования в README. Каталог плагинов фильтрует по версии, но совместимость там отмечают сами авторы: с 7.0 заявлено 149 плагинов из 1370.
Полезные плагины для Redmine 6.1 и 7.0
Каждый я поставил на 6.1.6 и 7.0.3: гемы установились, миграции прошли, Redmine запустился. Additionals проверял только на 7.0.3. В скобках — имя папки.
- View Customize 3.6.0 (
view_customize): свой JavaScript, CSS или HTML на выбранных страницах. - Additionals 4.6.0 (
additionals): дашборды, вики-макросы, правила для задач. Веткаstable, для 6.1 — тег4.5.0. С SQLite не работает. - Issue Templates 1.2.3 (
redmine_issue_templates): шаблоны задач для каждого проекта. - Drawio 1.5.6 (
redmine_drawio): диаграммы draw.io в вики и задачах. - Wiki Extensions 1.3.0 (
redmine_wiki_extensions): вики-макросы, комментарии, теги. - XLSX format issue exporter 0.3.0 (
redmine_xlsx_format_issue_exporter): выгрузка списка задач в Excel. В Docker нужен компилятор. - Redmine OAuth 4.2.3 (
redmine_oauth): вход через Google, GitHub, GitLab, Azure AD, Okta, Keycloak или OpenID Connect. На 6.1 в Docker нужен компилятор. - Redmine Dashboard (
redmine_dashboard): доски задач и планирования. Клонируйте веткуmain: релиз 2.16.0 вышел раньше Redmine 7.