ARTICLE · 1044323
五个好用的Redmine免费插件/主题
在前一篇《JIRA vs Redmine Workflow 配置完整比较》中,我们通过比较得出,Redmine 原生 + 免费插件在大多数方面是与JIRA等效甚至更优的。这一篇我介绍几款用于解决我们部门从JIRA到Red mine迁移的实际问题的免费插件。
这里插一个小说明。在去年我给出JIRA的替代方案时,是加上了Redmine付费插件的预算的。而先后确定的两个付费插件,一个走了购买流程发现不在国内销售,一个购买后发现与我们系统不适配无法安装。这让我把解决问题的重点放在了免费插件+AI赋能上,低成本+问题解决的高效率,实践下来我觉得这是一条非常好的途径。不过,Redmine的付费插件功能比较完备,价格也在可接受的范围(比如说Redmine Agile plugin $499,Redmine Reporter plugin $199),所以必要时也是一个很好的选择。
现在开始介绍解决了我们真实问题的四款插件,它们的共同点是:轻量、专注、装上就能用,不需要大改配置。文末再加餐一款让 Redmine 界面更现代的免费主题。
插件1 Redmine Custom Workflow
用Ruby脚本定义任意的自动化逻辑
🔗 https://www.redmine.org/plugins/redmine_custom_workflows
这是本系列反复提到的一个插件——前一篇 Post Function 对照里说的「Redmine 免费脚本能力超过 JIRA 付费插件」,指的就是它。
解决什么问题
Redmine 原生的 Workflow 只能做「状态转移是否允许」这类布尔判断。但实际业务里经常需要更复杂的逻辑,比如:
l Bug 创建时自动设置优先级、截止日期和指派人
l Issue 状态变化时,自动在另一个项目创建关联 Issue
l 根据字段组合,动态计算另一个字段的值(如根据「严重程度」+「影响范围」自动算出「优先级」)
怎么用
在 Administration → Custom workflows 里新建一个 Workflow,填两段 Ruby 代码:
l before_save:保存前执行(校验、赋值)
l after_save:保存后执行(创建关联 Issue、发通知等)
示例:Bug 创建时自动设为「Immediate」优先级,且未指派时自动指派给当前用户:
if new_record?
if @issue.tracker_id == 1 # Bug tracker
@issue.priority_id = 5 # Immediate
if @issue.assigned_to.nil?
@issue.assigned_to = User.current
end
end
end
我用这个插件完美解决了JIRA数据批量导入时User ID的匹配、JIRA日期的保留和JIRA Comments的逐条导入。
插件2 Redmine Depending Custom Fields
级联下拉字段——选完A才能选B
🔗 https://github.com/jcatrysse/redmine_depending_custom_fields
解决什么问题
Redmine 原生的 Custom Field 之间没有联动关系。如果你想做「选择『产品线』后,『子模块』下拉只显示对应产品线的选项」这种级联效果,可以使用这个插件。
怎么用
插件新增两种字段格式:List (depending) 和 Key/Value list (depending),配置父子关系:
l 先建好「父字段」(如「产品线」)
l 新建子字段时,格式选「List (depending)」,指定其依赖的父字段
l 为每个父值配置对应的子选项列表
l 子字段在父字段未选择时显示为空/禁用,选择父值后自动过滤出对应选项
典型应用场景:
l 部门 → 负责人(负责人列表根据部门自动过滤)
l 问题分类 → 子分类(根因分析场景常用)
插件3 Redmine Periodic Task
定时自动创建周期性任务
🔗 https://github.com/jperelli/Redmine-Periodic-Task
解决什么问题
很多工作是周期性的——每月的安全巡检、每季度的合规审查、每年的证书续期。这类任务如果靠人工记着手动创建,很容易漏掉。
怎么用
装好插件后,项目会多出一个「Periodic Task」标签页,配置周期规则:
l 设定触发间隔:每 N 天 / 周 / 月
l 设定 Tracker、Subject、Description 模板(支持变量,如 QUARTER、WEEKISO 自动代入当前季度/周数)
l 设定 Assignee、Priority、Watchers
l 支持指定父任务,自动创建的 Issue 挂在父任务下
插件4 Redmine Dashboard
免费的任务看板与拖拽视图
🔗 https://github.com/jgraichen/redmine_dashboard
解决什么问题
Redmine Dashboard 是一提供拖拽式任务看板,按状态列分组,支持自定义筛选和分组维度。

怎么用
安装步骤比一般插件简单——它是无数据库迁移的插件:
l 下载插件放入 plugins 目录(无需执行 migrate)
l 重启 Redmine
l 在项目 Settings → Modules 里启用 Dashboard 模块
l 在 Administration → Roles and permissions 里为角色开启「View Dashboard」权限
核心功能:
l 拖拽 Issue 卡片在不同状态列之间移动,状态变更会记录在 Issue History 里
l 支持按 Assignee、Priority、Tracker、Project 等维度分组
l 支持自定义筛选条件,构建专属视图
💡 Redmine Dashboard 和 Agile 插件功能有重叠,但没有 Sprint 规划、Story Points、Burndown Chart 这些 Scrum 专属功能。如果团队只是需要「看板可视化」而不严格执行 Scrum,Dashboard 完全够用,且免费;如果需要完整的 Scrum 流程管理,再考虑 Agile 插件。
Opale — 让 Redmine 界面更现代的免费主题
一款开箱即用的响应式主题,告别 Redmine 的“上古”界面
🔗 https://github.com/gagnieray/opale
前面四款都是「补功能」的插件,这里补一个「改观感」的主题。Redmine 原生界面偏「工程师审美」,字体小、留白少、配色朴素,从 JIRA 迁移过来的同事常吐槽「看着像二十年前的系统」。主题(Theme)不改任何功能,只换一套皮肤,是提升第一印象最低成本的方式。
解决什么问题
l Redmine 默认主题偏紧凑、老旧,在大屏和手机上都不够友好
l 想要更现代的排版(更大字号、更多留白、扁平化配色),又不想动源码
l 希望手机浏览器访问时也有不错的响应式体验
Opale 是在主题 PurpleMine2 基础上做的现代化 fork,明确支持 Redmine 5.x–7.x,设计干净、响应式良好,是免费主题里综合体验最好的选择之一。

怎么用
l 从项目的 Releases 页下载正式版本(如 1.7.0),解压
l 将文件夹改名为 opale,放入 Redmine 的主题目录
l 进入 Administration → Settings → Display,在 Theme 下拉框选择 Opale 并保存
💡 Docker 部署要特别注意主题目录的位置。 从 Redmine 6.0 起,第三方主题的目录由旧版的 public/themes/ 改到了项目根目录的 themes/(内置的 Alternate/Classic 主题在 app/assets/themes/,不受影响)。如果你用官方 Docker 镜像、挂载路径仍写成 ./themes:/usr/src/redmine/public/themes,主题不会出现在下拉框里——把挂载目标改成 /usr/src/redmine/themes 再重建容器即可。加完主题后记得重启 Redmine,它只在启动时扫描一次主题列表。
💡 换主题只是「化个现代妆」,它能显著改善配色、留白与响应式观感,但改不动 Redmine 的页面结构(工单页仍是长表单、列表仍是表格),不会变成 JIRA 那样的卡片流/看板。若想在此基础上做更细的样式微调,可配合 View Customize 类插件注入自定义 CSS,但对多数团队来说,Opale 原生效果已经足够好。
本内容遵循 CC 4.0 BY-SA 版权协议
免责声明:本文内容基于 Redmine 6.1.x,插件版本更新后部分功能可能有所变化,请以插件官方页面为准。文中观点来自作者实际使用经验,不代表任何厂商立场。