Redmine è un'applicazione gratuita e open source per la gestione dei progetti e il monitoraggio dei problemi. È multipiattaforma e multidatabase e si basa sul framework Ruby on Rails.
Redmine include il supporto per più progetti, wiki, sistema di rilevamento 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 database back-end e Passenger + Apache come server delle applicazioni Ruby.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti:
- Nome di dominio che punta all'IP pubblico del tuo server.
- Sei loggato come root o utente con privilegi sudo.
Creazione di un database MySQL #
Redmine supporta MySQL/MariaDB, Microsoft SQL Server, SQLite 3 e PostgreSQL. Useremo MariaDB come database back-end.
Se non hai MariaDB o MySQL installato sul tuo server CentOS, puoi installarlo seguendo queste istruzioni.
Accedi alla shell MySQL usando il seguente comando:
sudo mysql
Dall'interno della shell MySQL, esegui le seguenti istruzioni SQL per creare un nuovo database, un nuovo utente e concedere all'utente l'accesso al database:
Assicurati di modificareCREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
change-with-strong-password
con una password complessa. Al termine, esci dalla shell MySQL:
EXIT;
Installazione di 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
Avvia il servizio Apache e abilitalo all'avvio all'avvio:
sudo systemctl enable httpd --now
Creazione di un nuovo utente di sistema #
Crea un nuovo utente e gruppo, con la directory home /opt/redmine
che eseguirà l'istanza Redmine:
sudo useradd -m -U -r -d /opt/redmine redmine
Aggiungi apache
utente al redmine
groupand cambia il /opt/redmine
permessi di directory in modo che Apache possa accedervi:
sudo usermod -a -G redmine apache
sudo chmod 750 /opt/redmine
Installazione di Redmine #
Al momento in cui scrivo, l'ultima versione stabile di Redmine è la versione 4.1.0.
Prima di continuare con i passaggi successivi, visita 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 group install "Development Tools"
sudo dnf install zlib-devel curl-devel openssl-devel mariadb-devel ruby-devel
Assicurati di eseguire i seguenti passaggi come redmine
utente:
sudo su - redmine
1. 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, estrai l'archivio:
tar -xvf redmine.tar.gz
2. 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 production
sezione e inserisci il database MySQL e le informazioni sull'utente che abbiamo creato in precedenza:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8mb4
Al termine, salva il file ed esci dall'editor.
3. Installazione delle dipendenze di Ruby #
Passa al redmine-4.1.0
directory 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
4. Genera chiavi e migra 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
Configurazione di Apache #
Torna al tuo utente sudo e crea il seguente vhostfile Apache:
/etc/httpd/conf.d/example.com.confexit
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 Redmine. Riavvia il servizio Apache digitando:
sudo systemctl restart httpd
Configura 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.
Una volta generato il certificato, modifica la configurazione di Apache come segue:
sudo nano /etc/httpd/conf.d/example.com.conf
/etc/httpd/conf.d/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
Protocols h2 http/1.1
<If "%{HTTP_HOST} == 'www.example.com'">
Redirect permanent / https://example.com/
</If>
DocumentRoot /opt/redmine/redmine-4.1.0/public
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory /opt/redmine/redmine-4.1.0/public>
Options Indexes ExecCGI FollowSymLinks
Require all granted
AllowOverride all
</Directory>
</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. Accesso a Redmine #
Apri il browser, digita il tuo dominio e, supponendo che l'installazione sia andata a buon fine, apparirà una schermata simile alla seguente:
Le credenziali di accesso predefinite per Redmine sono:
- Nome utente:amministratore
- Password:amministratore
Quando accedi per la prima volta, ti verrà chiesto di cambiare la password, come mostrato di seguito:
Una volta modificata la password, verrai reindirizzato alla pagina dell'account utente.
Se non riesci ad accedere alla pagina, probabilmente il tuo firewall sta bloccando le porte 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