How to Install Redmine on Debian 9 (Stretch)

I was having some trouble installing redmine because I am not an experienced Debian administrator! I used the talking points in several other guides and some googling to get these instructions together.

1. Install the pre-requisites for redmine and all its packages.

apt install gcc build-essential zlib1g zlib1g-dev zlibc ruby-zip libssl-dev libyaml-dev libcurl4-openssl-dev ruby gem libapache2-mod-passenger apache2 apache2-dev libapr1-dev libxslt1-dev checkinstall libxml2-dev ruby-dev vim libmagickwand-dev imagemagick sudo rails

2. Install your database of choice. If installing another database, it's very easy! Just follow the instructions here instead:

apt install postgresql

3. If installing postgres, install dev. Use the version number installed in the previous step.

apt install postgresql-server-dev-* (See version in step 2 during install)

4. Choose a directory where to install redmine. I used /opt. You can use wherever you like, but you will need to update the following steps as necessary based on your desired install location.

Install redmine in /opt

cd /opt

mkdir redmine

cd redmine

Get redmine - use the download page and review the functionality that you need to determine the right version for you. I wanted DMSF, which is not yet compatible with the latest version. If in doubt, check it out!

wget http://www.redmine.org/releases/redmine-3.3.4.tar.gz

Unpack

tar xzf ./redmine-3.3.4.tar.gz

5. Login as the default postgres user and create a new role and database. Use your own password )).

sudo -u postgres psql postgres

CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'your_password' NOINHERIT VALID UNTIL 'infinity';

CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

then press CTRL-D to escape the shell.

edit /etc/postgresql/9.6/main/pg_hba.conf and set postgres to trust :

"local all postgres trust “
sudo service postgresql reload

6. Create the /opt/redmine/redmine-3.3.4/config/database.yml file with the following contents…

production:

adapter: postgresql
database: redmine
host: localhost
username: redmine
password: your_password

Note that the spacing is important in this file! under the “Production” line, each other line must be indented by two spaces, not tabs. Replace your_password with the password specified above. Seriously, don’t use your_password…. Remeber to save!

7. Next, set up the database schema and load the initial database.

bundle exec rake generate_secret_token

RAILS_ENV=production bundle exec rake db:migrate

RAILS_ENV=production bundle exec rake redmine:load_default_data

8.Do a quick test to verify that redmine is working using webrick.

bundle exec ruby /usr/bin/rails server -b your_ip webrick -e production

And try to connect via browser to your ip:3000. Webrick is not for production systems. It is a good way to check things before getting started with Apache, though.

9. Next, let’s set up Apache.

cd /opt/

sudo chown -R www-data:www-data /opt/redmine

cd /opt/redmine/redmine-3.3.4

sudo chmod -R 755 files log tmp public/plugin_assets

sudo chown www-data:www-data Gemfile.lock

9.1 Create a symbolic link which points from the working directory of apache to the redmine public folder…

sudo ln -s /opt/redmine/redmine-3.3.4/public/ /var/www/html/redmine

9.2 Need to create a new vhost configuration…

sudo nano /etc/apache2/sites-available/master.conf

and paste in….

<VirtualHost *:80>

ServerAdmin
Servername hostname
DocumentRoot /var/www/html/

<Location /redmine>
RailsEnv production
RackBaseURI /redmine
Options -MultiViews
</Location>

</VirtualHost>

Then, run….

sudo a2dissite 000-default.conf

sudo a2ensite master.conf

9.3 add this line to /etc/apache2/mods-available/passenger.conf…. in the body of the document- not just the 1st line.

PassengerUser www-data

run…

sudo service apache2 restart

10. Open your browser and navigate to: http://your-ip-address/redmine

And hopefully, you're up and running.

Sources: