トピック 解説

Customizing Redmine, an open-source task management tool, for users’ specific issues to reduce DX costs

この記事を読むのに必要な時間は約 14 分です。

Up until now, Synergy Research Corporation’s VisiWork service has supported the introduction and operation of Redmine. However, in our recent user support, we have received many requests not only for the introduction and operation of Redmine, but also for customization of Redmine to solve specific issues that user companies have, or for the development of data integration interfaces between other business systems and Redmine. 

Redmine is an open-source software and is available free of charge. Even when using Redmine as a paid SaaS service, the license fee is kept within a reasonable range. Therefore, if Redmine can be used to solve user-specific issues through customization, it is possible to realize very large cost reductions compared to developing everything or using expensive packaged software.

Below we describe in turn four ways to customize Redmine: 

No.How to Customize RedmineObjective
1Code modification of the main unitFunctional change
2Utilizing Custom FieldsData attribute addition
3Development of data linkage function by API (add-in function development)Data linkage function added
4Plug-in DevelopmentFunctional expansion
Table 1: Redmine Customization Methods and Objectives

1. Code modification of the main unit

Redmine is an open-source software. When you hear of customizing an open-source software, you may associate this method with obtaining the standard version and modifying the main source code to use it. However, this method is rarely used with Redmine.

Redmine’s specifications are managed by, and the source code is updated from time to time. Therefore, a user can directly change the functionality of Redmine by making changes to the source code, but once he or she does so, it is then the responsibility of that user to follow the standard version maintained by This is not a good idea, considering that the standard version often contains security patches as part of its updates.

2. Utilizing custom fields

Custom fields are a feature in standard Redmine that allows you to add fields to standard Redmine data, such as tickets, work hours, projects, users, etc., according to user-specific requirements.

Despite the simplicity of this customization method, its ease of use has led most users to use custom fields.

In Table 1 below, the attribute “number of welds” is added as a user-specific requirement for standard tickets.

No.Field NameData (example)Classification
2projectEquipment Projects
4titleUnit A Production
5statusunder inspection
6degree of relative priorityusual
7person in charge Ichiro Hayashi
8number of welding points6custom
Table 2: Customized Ticket Fields

3. Development of data linkage function by API

In section 2, we discussed the use of custom fields. What if the data including the number of welding points is stored in an Excel sheet of the person in charge of the design department, and we want to share it with the entire design department using Redmine? The solution to this problem is to develop a data integration function using an API. This is sometimes called add-in or add-on function development.

Standard Redmine has the ability to link data with Excel sheets (CSV format files) using this API, and the data can include custom fields, so custom fields and this method work well together and make standard Redmine a more powerful tool.

However, this standard functionality can be a bit cumbersome to use repeatedly. To solve this problem, VisiWork Service has developed its own tool, TaskBuilder, which is provided free of charge to VisiWork Service customers (see related article).

However, when performing such data linkage as a routine task, it is ideal to improve efficiency by developing data linkage functions using APIs to fully automate the process and execute it on a regular basis.

4. Plug-in Development

Plug-in development is the mainstay of user-specific problem-solving methods. Plug-in development allows users to implement their own specifications without changing the standard code.

This will allow you to add your own screens, data, and logic, avoiding the problems that arise from modifying the standard Redmine source code, as pointed out in section 1.

By developing a plugin, it is possible to introduce the custom fields described in section 2. and then provide your own calculation logic for those custom fields.

For example, you can add ticket attributes such as the number of welds, length, width, and height of the product to be manufactured, as well as the number of scheduled man-hours, which is the basic information for scheduling, to be automatically calculated. It is also possible to prevent users from directly updating the scheduled man-hours to an arbitrary value using the standard ticket screen by properly setting the “Permissions on workflow fields” in the Redmine settings.

Figure 1: Plug-in ticket entry screen and automatic calculations

It is also important to note that such plug-ins, even if developed individually by the user, can usually be deployed in SaaS.

Of the four methods described above, except for 1. modifying the source code directly, the other three methods can be actively used to create a customized Redmine that solves user-specific issues.

The relationship and description of these three methods is shown in Figure 2.

Figure 2: The relationship and description of these three methods

For inquiries about this article, please send them to our Contact page.