Redmine
Contents
Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.
Redmine is open source and released under the terms of the GNU General Public License v2 (GPL).
Requirements
Check the Redmine requirements carefully, specially if you won't use PostgreSQL. A few MariaDB and MySQL issues remain open.
Installation
These instructions are for Redmine 5.0.5 under Debian 12 (Bookworm).
Redmine database and application
1. Install your database:
# apt install postgresql # or default-mysql-server
2. Install Redmine with support for your database of choice:
# apt install redmine-pgsql # or redmine-mysql, or redmine-sqlite
This will also install all required dependencies including Ruby libraries, etc.
There will be one or more prompts asking to confirm database configuration via dbconfig-common. The default Yes should be OK unless you are upgrading (see below), using an external database or want to otherwise manually configure this.
Note: dbconfig will assume unix socket access to the database
3. Configure the web server
apt install apache2 libapache2-mod-passenger
To use your domain for Redmine only (ie. http://domain.com/):
cp /usr/share/doc/redmine/examples/apache2-passenger-host.conf /etc/apache2/sites-available/redmine.conf
To use the same domain shared with other applications (ie. http://domain.com/redmine):
cp /usr/share/doc/redmine/examples/apache2-passenger-alias.conf /etc/apache2/sites-available/redmine.conf
Edit your configuration file to add your domain name and sysadmin contact information:
edit /etc/apache2/sites-available/redmine.conf
For example:
ServerName exampledomain.com ServerAdmin admin@exampledomain.com
Next:
# a2enmod passenger # a2ensite redmine.conf # a2dissite 000-default # service apache2 reload
Alternatively, to use the same domain but a different port, base your config on apache2-passenger-host.conf, then edit apache2.conf to also Listen to <port> and redmine.conf accordingly. In this case disabling 000-default is not required.
4. Log into Redmine at http://<ip>/ with the following default admin account:
username: admin password: admin
TLS certificate
Assuming your Redmine server is exposed to Internet and it's configured with DNS entries, FQDN etc., you should obtain a TLS certificate, e.g. using LetsEncrypt.
Upgrading Redmine 3.3.1-stable (and Debian 9) to 4.0.7-stable (and Debian 10)
Before upgrading, make sure all your plugins have a newer version that supports Redmine 4.0.7. This assumes you have sudo installed and the user under which you are logged in has administrative rights (usermod -aG sudo $USER).
Upgrade Debian 9 to 10 as per the documentation, reboot as needed
After upgrading, add the Buster backports repository
- Make sure your Debian install is up-to-date
If you have any plugins in /usr/share/redmine/plugins/ move their directories elsewhere. Example :
sudo mkdir ~/RedminePlugins && mv /usr/share/redmine/plugins/* ~/RedminePlugins
Install the redmine and redmine-mysql packages from backports. This will also install Ruby and other dependencies. You should also see database migration information.
sudo apt install redmine redmine-mysql -t buster-backports
or
sudo apt install redmine redmine-pgsql -t buster-backports
and as postgres, make sure your redmine database gets reindexed reindexdb --all
Ad your user to the www-data group (logout and login again after this):
sudo usermod -aG www-data $USER
As a regular user, update Ruby and its "gems" (you may be asked for the user password) :
cd /usr/share/redmine bundle install
If you had any plugins, reinstall them in /usr/share/redmine/plugins
Follow the plugin install instructions, they should include a command similar to :
sudo bundle exec rake redmine:plugins:migrate NAME=REPLACE_WITH_YOUR_PLUGIN_NAME ENV=production
Finalize the upgrade and restart the web server:
sudo service apache2 restart
Navigate to http://yourServerAddress, you should see the login page
Differences from upstream Redmine
The Debian redmine package contains a few patches to support running multiple Redmine instances using a single codebase. You manage your instances by using dpkg-reconfigure redmine. This multi-instance support makes some things appear in places that are different from when you are using the upstream Redmine:
The application logs are located under /var/log/redmine/${instance}/ (instead of /path/to/redmine/log)
The database configuration is located at /etc/redmine/${instance}/database.yml (instead of /path/to/redmine/config/database.yml)
File attachments are located under /var/lib/redmine/${instance}/files
Plugins should be placed under /usr/share/redmine/plugins. The folder doesn't exist by default and must be created. Don't use /usr/share/redmine/lib/plugins as this result to routing error in the application.
plugins assets should be place in /var/cache/redmine/${instance}/plugin_assets/{$plugin}, could be done by a symlink
Running Redmine from its own user
The Debian redmine package can be run from its own user. To do so, you'd need to follow the following steps:
- create a new user.
- chown /etc/remdine/$instance to the desired user.
- configure apache to actually run as that user.
Other documentation
* Manual Redmine install using RVM with Debian (French)