On this page
Redmine already has a good query builder — on the Issues page, the Spent time
page and the Projects page. What it has no way to do is keep one as a named
report you re-run on the first of the month, hand to somebody as a branded PDF,
or have arrive by email every Monday. Reports does that by reusing those three
builders rather than inventing a fourth: the filter row here is the filter row
from the Issues page, so a relative date like "this month" means the month you
press Run in.
On your own Redmine
Requirements
- Redmine 6.0 or newer (Rails 7.2, Ruby 3.1 or newer)
- PostgreSQL 14+, or MySQL 8.0+ / MariaDB 10.6+
- No additional gems. The PDF uses Redmine's own PDF support and the spreadsheet
is written with
rubyzip, which Redmine already depends on.
Install
cd /path/to/redmine
cp -r redminepro_reports plugins/
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redminepro_reports
# restart Redmine
Then grant Use reports to a role.
Scheduled delivery needs one cron line
There is no background daemon. Deliveries ride a rake task, so add one entry to your scheduler — hourly is enough, because a schedule fires on the first tick at or after its hour:
0 * * * * cd /path/to/redmine && RAILS_ENV=production bundle exec rake redminepro_reports:deliver
Safe to run on several application servers at once: each occurrence is claimed in the database before anything is sent, so nobody receives the same report twice.
Standalone behaviour
Identical, and no plan gate applies — with no RedminePRO plan signal at all
there is no tier to enforce. The Reports module is a no-op and its checkbox is
withdrawn from project settings; it exists only to give the permission its own
heading on the role form.
The Saved report widget appears only when My Dashboard 1.2.5 or newer is
installed, and schedule events reach the Audit Trail only when the Audit Trail is
installed. Nothing else changes.
Update and remove
Copy the new directory over the old one, run the migrate command, restart. To remove:
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redminepro_reports VERSION=0
rm -rf plugins/redminepro_reports
# restart Redmine
Both tables are dropped and the saved queries underneath the reports go with them. Nothing else is touched: every row a report ever showed lives in Redmine's own issues, time entries and projects.
Already on RedminePRO Cloud? It is installed and maintained for you: see the configuration guide.

