Redmine è uno degli strumenti software open source più popolari 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 descrive come installare e configurare l'ultima versione di Redmine su un server Ubuntu 18.04 utilizzando MySQL come back-end di database e Passenger + Nginx come server di applicazioni Ruby.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Hai un nome di dominio che punta all'IP pubblico del tuo server. In questo tutorial useremo
example.com
. - Sei loggato come utente con privilegi sudo.
- Hai installato Nginx seguendo queste istruzioni.
- Hai un certificato SSL installato per il tuo dominio. Puoi installare un certificato SSL Let's Encrypt gratuito seguendo queste istruzioni.
Creazione del database MySQL #
Redmine supporta MySQL/MariaDB, Microsoft SQL Server, SQLite 3 e PostgreSQL. In questo tutorial useremo MySQL come back-end di database.
Se non hai già MySQL installato sul tuo server Ubuntu puoi installarlo seguendo queste istruzioni.
Accedi alla shell MySQL digitando il seguente comando:
sudo mysql
Dall'interno della shell MySQL, esegui la seguente istruzione SQL per creare un nuovo database:
CREATE DATABASE redmine CHARACTER SET utf8mb4;
Quindi, crea un account utente MySQL e concedi l'accesso al database:
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Assicurati di modificare change-with-strong-password
con una password complessa. Una volta terminato, esci dalla console di MySQL digitando:
EXIT;
Installazione di Ruby #
Il modo più semplice per installare Ruby sul tuo sistema Ubuntu è tramite apt
gestore di pacchetti. Al momento in cui scrivo, la versione nei repository di Ubuntu è la 2.5.1 che è l'ultima versione stabile di Ruby.
Installa Ruby digitando:
sudo apt install ruby-full
Se vuoi installare Ruby tramite Rbenv o RVM, controlla questa guida.
Installazione di Passenger e Nginx #
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 Nginx.
Assicurati di aver seguito i prerequisiti e di aver installato Nginx prima di continuare con i passaggi seguenti.
Inizia installando i pacchetti necessari:
sudo apt install dirmngr gnupg apt-transport-https ca-certificates
Importa la chiave GPG del repository e abilita Phusionpassengerrepository:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7
sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main'
Una volta abilitato il repository apt, aggiorna l'elenco dei pacchetti e installa il modulo Passenger Nginx con:
sudo apt update
sudo apt install libnginx-mod-http-passenger
Installazione di Redmine su Ubuntu #
Inizieremo installando le dipendenze necessarie per costruire Redmine:
sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev
Al momento della stesura di questo articolo, l'ultima versione stabile di Redmine è la versione 4.0.0.
Prima di continuare con il passaggio successivo dovresti controllare la pagina di download di Redmine per vedere se è disponibile una versione più recente.
1. Download di Redmine #
Scarica l'archivio Redmine con il seguente comando curl:
sudo curl -L http://www.redmine.org/releases/redmine-4.0.0.tar.gz -o /tmp/redmine.tar.gz
Una volta completato il download, estrai l'archivio e spostalo in /opt
directory:
cd /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-4.0.0 /opt/redmine
2. Configurazione del database Redmine #
Inizia copiando il file di configurazione di esempio di Redmine:
sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
Apri il file con il tuo editor di testo:
sudo nano /opt/redmine/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: utf8
Al termine, salva il file ed esci dall'editor.
3. Installazione delle dipendenze di Ruby #
Passa alla directory redmine e installa bundler e altre dipendenze di Ruby:
cd /opt/redmine/
sudo gem install bundler --no-rdoc --no-ri
sudo bundle install --without development test postgresql sqlite
4. Genera chiavi e migra il database #
Eseguire il comando seguente per generare chiavi e migrare il database:
cd /opt/redmine/
sudo bundle exec rake generate_secret_token
sudo RAILS_ENV=production bundle exec rake db:migrate
5. Imposta le autorizzazioni corrette #
Nginx viene eseguito come www-data
utente e gruppo. Imposta i permessi corretti emettendo il seguente comando chown:
sudo chown -R www-data: /opt/redmine/
Configura Nginx #
A questo punto dovresti già avere Nginx con certificato SSL installato sul tuo sistema, in caso contrario controlla i prerequisiti per questo tutorial.
Apri il tuo editor di testo e crea il seguente file di blocco del server Nginx:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com# Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
# Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /opt/redmine/public;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
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. Gli snippet utilizzati in questa configurazione vengono creati in questa guida.
Abilita il blocco del server creando un collegamento simbolico a sites-enabled
directory:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Prima di riavviare il servizio Nginx fai un test per assicurarti che non ci siano errori di sintassi:
sudo nginx -t
Se non ci sono errori, l'output dovrebbe essere simile a questo:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Infine, riavvia il servizio Nginx digitando:
sudo systemctl restart nginx
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.