Introduzione

Redmine è un'applicazione gratuita e open source per la gestione dei progetti e il monitoraggio dei problemi. È multipiattaforma e cross-database e costruito sul framework Ruby on Rails.

Redmine include supporto per più progetti, wiki, sistema di tracciamento dei problemi, forum, calendari, notifiche e-mail e molto altro.

Questo tutorial spiega come installare e configurare l'ultima versione di Redmine su CentOS 8. Useremo MariaDB come back-end del database e Passenger + Apache come server delle applicazioni Ruby.

Prerequisiti

Assicurati di aver soddisfatto i seguenti prerequisiti:

Creare un database MySQL

Redmine supporta MySQL/MariaDB, Microsoft SQL Server, SQLite 3 e PostgreSQL. Useremo MariaDB come back-end del database.

Se non hai MariaDB o MySQL installato sul tuo server CentOS, puoi installarlo seguendo queste istruzioni.

Accedi alla shell MySQL digitando il comando seguente:

sudo mysql

Oppure se hai seguito la nostra guida e hai impostato una password per l'utente root, utilizza il seguente comando:

sudo mysql -u root -p

Dall'interno della shell MySQL, eseguire le seguenti istruzioni SQL per creare un nuovo database, un nuovo utente e concedere all'utente l'accesso al database:

CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';

Assicurati di cambiare change-with-strong-password con una password complessa.

Una volta terminato, esci dalla shell MySQL:

EXIT;

Installare Passenger, Apache e Ruby

Passenger è un server di applicazioni Web veloce e leggero per Ruby, Node.js e Python che può essere integrato con Apache e Nginx. Installeremo Passenger come modulo Apache.

Abilita il repository EPEL:

sudo dnf install epel-release
sudo dnf config-manager --enable epel

Una volta abilitato il repository, aggiorna l'elenco dei pacchetti e installa Ruby, Apache e Passenger:

sudo dnf install httpd mod_passenger passenger passenger-devel ruby

Avviare il servizio Apache e abilitarlo per l'avvio all'avvio:

sudo systemctl enable httpd --now

Creare un nuovo utente di sistema

Crea un nuovo utente e gruppo, con home directory /opt/redmine che eseguirà l'istanza Redmine:

sudo useradd -m -U -r -d /opt/redmine redmine

Aggiungi l'utente redmine al gruppo apache e modifica le autorizzazioni della directory /opt/redmine  in modo che Apache possa accedervi:

sudo usermod -a -G redmine apache
sudo chmod 750 /opt/redmine

Installare Redmine

Al momento in cui scrivo, l'ultima versione stabile di Redmine è la versione 4.1.0.

Prima di continuare con i passaggi successivi, visitare la pagina di download di Redmine per vedere se è disponibile una versione più recente.

Installa il compilatore GCC e le librerie necessarie per compilare Redmine:

sudo dnf install make automake curl-devel glibc-devel git bzip2 nano wget tar gettext-devel openssl-devel zlib-devel gcc autoconf mariadb-devel redhat-rpm-config ruby-devel

Assicurati di eseguire i seguenti passaggi come utente redmine:

sudo su - redmine

Download di Redmine

Scarica l'archivio Redmine con curl:

curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o redmine.tar.gz

Una volta completato il download, estrarre l'archivio:

tar -xvf redmine.tar.gz

Configurazione del database Redmine

Copia il file di configurazione del database di esempio Redmine:

cp /opt/redmine/redmine-4.1.0/config/database.yml.example /opt/redmine/redmine-4.1.0/config/database.yml

Apri il file con il tuo editor di testo:

nano /opt/redmine/redmine-4.1.0/config/database.yml

Cerca la sezione production e inserisci il database MySQL e le informazioni utente che abbiamo creato in precedenza:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "change-with-strong-password"
  encoding: utf8mb4

Salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.

Installare le dipendenze di Ruby

Passa alla directory redmine-4.1.0 e installa le dipendenze di Ruby:

cd ~/redmine-4.1.0
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite --path vendor/bundle

Generare le chiavi e migrare il database

Eseguire il comando seguente per generare chiavi e migrare il database:

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

Configurare Apache

Torna al tuo utente sudo e crea il seguente file vhost Apache:

exit
sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /opt/redmine/redmine-4.1.0/public

    <Directory /opt/redmine/redmine-4.1.0/public>
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    </Directory>

    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
Non dimenticare di sostituire example.com con il tuo dominio.

Riavvia il servizio Apache digitando:

sudo systemctl restart httpd

Configurare Apache con SSL

Se non disponi di un certificato SSL affidabile per il tuo dominio, puoi generare un certificato SSL Let's Encrypt gratuito. Seguendo queste istruzioni puoi installare in e configurare automaticamente un certificato SSL Let's Encrypt grautito .

Una volta generato il certificato, il file di configurazione creato in precedenza dovrebbe essere stato automaticamente modificato in questo modo:

sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /opt/redmine/redmine-4.1.0/public

    <Directory /opt/redmine/redmine-4.1.0/public>
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    </Directory>

    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
    
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.example.com [OR]
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Non dimenticare di sostituire example.com con il tuo dominio Redmine e impostare il percorso corretto per i file del certificato SSL. Tutte le richieste HTTP verranno reindirizzate a HTTPS.

Accedere Redmine

Apri il tuo browser e digita il tuo dominio https://DOMINIO/login.

Le credenziali di accesso predefinite per Redmine sono:

  • Nome utente: admin
  • Password: admin

Quando accedi per la prima volta, ti verrà richiesto di modificare la password.

Dopo aver modificato la password, verrai reindirizzato alla pagina dell'account utente.

Se non riesci ad accedere alla pagina, probabilmente il tuo firewall sta bloccando le porte di Apache.

Utilizzare i seguenti comandi per aprire la porta necessaria:

sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload

Conclusione

Redmine è stato installato correttamente sul sistema CentOS. Ora dovresti controllare la documentazione di Redmine e saperne di più su come configurare e utilizzare Redmine.