Redmine Setup, Migration and Customization: A Practical Guide

July 10, 2025 · 6 min read

Redmine has been the backbone of project management for engineering teams since 2006. Built on Ruby on Rails, it offers issue tracking, time logging, Gantt charts, wikis, and a powerful plugin architecture — all self-hosted, all open source, with no per-seat licensing costs.

For teams that have outgrown simple task boards but do not want to pay enterprise prices for Jira, Redmine remains one of the best options available.

Why Teams Choose Redmine

The core advantages of Redmine over SaaS alternatives:

  • No per-user pricing. Add 500 users — the cost does not change.
  • Full data ownership. Your issues, time logs, and documents stay on your infrastructure.
  • Flexible custom fields. Adapt Redmine to your workflow, not the other way around.
  • Plugin ecosystem. Hundreds of community and commercial plugins for every need.
  • API access. Integrate with CI/CD pipelines, Slack, or any internal tool.

Fresh Installation: What to Consider

A standard Redmine installation on Ubuntu with MySQL or PostgreSQL takes about an hour. But the decisions made during setup have long-term consequences:

Database choice. PostgreSQL is recommended for new installations — better performance at scale and superior handling of concurrent writes. MySQL works well but requires more tuning for large datasets.

Storage for attachments. Plan for attachment storage early. Redmine stores files on the filesystem by default — ensure your backup strategy covers this directory alongside the database.

Email configuration. Outgoing email for notifications is essential. SMTP configuration with a reliable provider (or your own mail server) should be set up before onboarding users.

Migrating From an Older Version

Many organizations run Redmine installations that are years old — some dating back to version 1.x or 2.x. Upgrading these installations requires care:

Ruby version compatibility. Older Redmine versions ran on Ruby 1.9 or 2.x. Current Redmine requires Ruby 3.x. The Ruby upgrade must happen alongside the Redmine upgrade, and gems need to be re-evaluated.

Plugin compatibility. Plugins written for Redmine 2.x rarely work on Redmine 5.x without modification. Each plugin must be assessed: find a modern alternative, update the plugin, or remove the functionality.

Database migrations. Running migrations on a database with hundreds of thousands of issues requires careful planning — some migrations lock tables and need to run during maintenance windows.

We have successfully migrated Redmine installations with databases exceeding 300GB, preserving all historical data, attachments, and custom configurations. The process is methodical but achievable.

Essential Plugins Worth Installing

A few plugins that significantly improve the Redmine experience:

  • Redmine Agile — Kanban boards and sprint planning for agile teams
  • Redmine Checklists — Sub-tasks within issues without creating child issues
  • Redmine CRM — Contact management integrated with project tracking
  • Easy Redmine — Commercial extension with resource management and advanced reporting

Performance Optimization for Large Instances

Redmine installations with tens of thousands of issues and hundreds of active users can become slow without proper configuration. Key areas to address:

  • Database query optimization and index tuning
  • Puma or Passenger configuration for your server's resources
  • Background job processing for email and notifications
  • Caching with Redis or Memcached
  • Regular database maintenance (VACUUM for PostgreSQL, OPTIMIZE for MySQL)

Need help with Redmine — installation, migration, or customization? We have done this work for organizations of all sizes.

Discuss your Redmine project