Ricerca nel sito web

Come installare Redmine Project Management Tool su Ubuntu 22.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

Su questa pagina

  1. Prerequisiti
  2. Installazione delle dipendenze
  3. Configurazione del server MySQL
  4. Installazione di Redmine
  5. Impostazione dell'host virtuale per Redmine
  6. Impostazione del firewall UFW
  7. Installazione di Redmine
  8. Conclusione

Redmine è uno strumento gratuito e open source per la gestione dei progetti e il monitoraggio dei problemi. Il suo software applicativo basato sul web, scritto principalmente in Ruby on Rails. È multipiattaforma e supporta più database e più lingue.

Redmine è flessibile e può essere utilizzato per diversi tipi di organizzazioni e progetti, da piccole, medie o grandi organizzazioni. Ti consente di creare e gestire più progetti e ogni progetto ha il proprio Wiki, forum, monitoraggio dei problemi, ecc. Inoltre, ti consente di creare ruoli personalizzati in base alle esigenze della tua organizzazione e molti altri.

Redmine è rilasciato con licenza GNU GPL v2 e può essere installato su qualsiasi sistema operativo come Linux, Windows o macOS. Supporta diversi tipi di database, inclusi PostgreSQL, MySQL e SQLite (impostazione predefinita).

In questa guida installerai Redmine con il server Web Apache2 e il server MySQL su un server Ubuntu 22.04. Proteggi anche l'installazione di Redmine con i certificati SSL.

Prerequisiti

Questo tutorial richiedeva i seguenti requisiti:

  • Un server Ubuntu 22.04 - Questo esempio utilizza un server Ubuntu con il nome host redmine-server.
  • Un utente non root con privilegi di root sudo - Ma puoi anche usare l'utente root.
  • Un nome di dominio punta all'indirizzo IP del tuo server: per la produzione, devi assicurarti che il tuo nome di dominio punti all'indirizzo IP del tuo server.

Una volta che hai tutto a posto, ora puoi procedere al primo passaggio dell'installazione di Redmine.

Installazione delle dipendenze

Redmine è uno strumento open source per la gestione dei progetti e il monitoraggio dei problemi scritto principalmente in Ruby e Ruby on Rails (RoR). Per installare Redmine, devi prima installare Ruby, quindi puoi installare altre dipendenze come il server Web Apache2 e il database utilizzando il server MySQL.

In questo esempio, eseguirai Redmine con il server Web Apache2 e il server MySQL.

Prima di iniziare a installare i pacchetti, eseguire il comando apt di seguito per aggiornare e aggiornare l'indice dei pacchetti di Ubuntu.

sudo apt update

Dopo che il repository è stato aggiornato, installa alcune delle seguenti dipendenze del pacchetto tramite il comando apt di seguito.

Con questo comando, installerai il web server Apache2 seguito dal liapache2-mod-passenger che verrà utilizzato per configurare l'applicazione RoR in modo da funzionare con Apache2. Installerai anche i pacchetti Ruby.

sudo apt install apache2 ruby ruby-dev build-essential libapache2-mod-passenger libmysqlclient-dev

Quando viene richiesto di confermare l'installazione, immettere y quindi premere INVIO per procedere.

Dopo aver installato Apache2 e Ruby, eseguire il seguente comando per installare il server MySQL. Redmine supporta più RDBMS come PostgreSQL, MySQL/MariaDB e SQLite. in questo esempio utilizzerai il server MySQL.

sudo apt install mysql-server

Immettere y quando viene richiesto di confermare l'installazione, quindi premere INVIO per procedere.

Per l'installazione di Redmine, dovrai anche installare un bundler sul tuo server Ubuntu. bundler è una riga di comando che verrà utilizzata per gestire i pacchetti Ruby Gems.

Esegui il seguente comando per installare un bundler sul tuo sistema.

sudo gem install bundler

Una volta installato il bundler, vedrai un output simile al seguente:

Infine, verifica i servizi Apache2 e MySQL tramite il comando systemctl di seguito. Ciò assicurerà che entrambi i servizi Apache2 e MariaDB siano in esecuzione e abilitati.

Verificare il servizio Apache2.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Sotto puoi vedere che il servizio Apache2 è abilitato e verrà eseguito automaticamente all'avvio del sistema. E lo stato corrente del servizio è in esecuzione.\

Verifica il servizio MySQL.

sudo systemctl is-enabled mysql
sudo systemctl status mysql

Vedrai un output simile al seguente: il servizio MySQL è abilitato e verrà eseguito automaticamente all'avvio. E lo stato attuale del servizio MySQL è in esecuzione.

Configurazione del server MySQL

Dopo aver installato Apache2 e il server MySQL, imposterai la password di root MySQL e proteggerai la distribuzione tramite mysql_secure_installation. Quindi, creerai anche un nuovo database MySQL e un utente per Redmine.

Accedi a MySQL tramite il comando mysql di seguito.

sudo mysql

Ora cambia la password di root di MySQL tramite la seguente query. E assicurati di cambiare la password con la tua password. Quindi, digita quit exiting dalla shell MySQL.

ALTER USER  IDENTIFIED WITH mysql_native_password BY 'password';
quit

Successivamente, esegui il seguente comando per iniziare a proteggere la distribuzione del server MySQL.

sudo mysql_secure_installation

Quando viene richiesta la password di root di MySQL, inserire la password corretta.

Quindi, ti verranno richieste altre configurazioni MySQL come disabilitare l'accesso remoto per l'utente root, rimuovere l'utente anonimo, rimuovere il test del database predefinito e ricaricare tutti i privilegi delle tabelle. Per tutte queste impostazioni del server MySQL, inserisci Y per confermare la configurazione.

Dopo aver protetto la distribuzione di MySQL, è il momento di configurare un nuovo database e un nuovo utente per Redmine.

Accedi alla shell MySQL tramite il comando mysql di seguito. Ti verrà chiesta la password di root di MySQL, inserisci la password corretta per il tuo utente root di MySQL, quindi premi INVIO.

sudo mysql -u root -p

Ora esegui le seguenti query per creare un nuovo database MySQL e un utente per Redmine. In questo esempio, creerai un nuovo database e un utente redmine con la password secretPassword. È possibile sostituire la password del database con la propria password.

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

Quindi, esegui le seguenti query per verificare i privilegi dell'utente MySQL redmine. Assicurati che l'utente MySQL redmine disponga dei privilegi per il database redmine.

SHOW GRANTS FOR ;
quit

Di seguito puoi vedere l'utente MySQL [email protetto] con privilegi per il database redmine.

Infine, digita quit per uscire dalla shell MySQL.

Con tutte le dipendenze installate e il database e l'utente MySQL creati, sei pronto per installare lo strumento di gestione del progetto Redmine sul tuo server Ubuntu.

Installazione di Redmine

In questo passaggio, installerai l'ultima versione di Redmine. Al momento della stesura di questo articolo, l'ultima versione di Redmine è la v5.0.2.

Scaricherai il codice sorgente di Redmine, configurerai il database, installerai le dipendenze di Ruby tramite build, imposterai il token segreto di Redmine e migrerai il database.

In questo esempio, installerai Redmine all'interno della directory /opt/redmine.

Spostati nella directory /opt.

cd /opt/

Ora scarica il codice sorgente di Redmine con il comando wget di seguito. Una volta scaricato, vedrai il file redmine-5.0.2.tar.gz nella tua directory /opt.

wget https://www.redmine.org/releases/redmine-5.0.2.tar.gz

Quindi, esegui il seguente comando per estrarre il codice sorgente Redmine redmine-5.0.2.tar.gz e crea un nuovo collegamento simbolico per la directory Redmine a /opt/redmine.

tar -xvzf redmine-5.0.2.tar.gz
sudo ln -s redmine-5.0.2 redmine

La directory principale di installazione di Redmine sarà /opt/redmine.

Spostati nella directory /opt/redmine.

cd /opt/redmine/

Copia la configurazione del database predefinito config/database.yml.example in config/database.yml. Quindi, apri il file di configurazione del database config/database.yml utilizzando l'editor nano.

cp config/database.yml.example config/database.yml
nano config/database.yml

Nella sezione produzione, modifica i dettagli del database MySQL e dell'utente. Assicurati di utilizzare l'utente e la password del database corretti per Redmine.

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "secretPassword"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

Salva il file ed esci dall'editor quando hai finito.

Successivamente, esegui il seguente comando bundler per installare le dipendenze di Ruby per l'applicazione Redmine.

bundle config set --local without 'development test'
bundle install

Vedrai l'output simile al seguente:

Una volta installate le dipendenze di Redmine, eseguire il seguente comando per generare il token segreto di Redmine ed eseguire la migrazione del database.

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

Nello screenshot seguente, puoi vedere il token segreto Redmine generato e il processo di migrazione del database Redmine.

Infine, carica l'impostazione predefinita per l'installazione di Redmine con il seguente comando. Quando ti viene chiesto di scegliere la lingua, inserisci en come per l'inglese.

RAILS_ENV=production bundle exec rake redmine:load_default_data

Quando vengono caricati i dati predefiniti di Redmine, vedrai il messaggio di output come \Dati di configurazione predefiniti caricati\.

Ora che Redmine è installato, dovrai configurare un host virtuale Apache2 per Redmine.

Configurazione dell'host virtuale per Redmine

In questo passaggio, creerai una nuova configurazione dell'host virtuale Apache2 per Redmine. Quindi assicurati di avere il nome di dominio che punta all'indirizzo IP del tuo server e che i certificati SSL siano generati.

Eseguire il seguente comando per abilitare i moduli Apache ssl e riscrivere.

sudo a2enmod ssl rewrite

Vedrai l'output come il seguente:

Ora, crea una nuova configurazione dell'host virtuale Apache2 /etc/apache2/sites-available/redmine.conf utilizzando l'editor nano.

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

Aggiungere la seguente configurazione al file. E assicurati di cambiare il nome di dominio e il percorso dei certificati SSL con la tua configurazione.

<VirtualHost *:80>

    ServerName redmine.hwdomain.io
    ServerAdmin

    # Redirect Requests to SSL
    Redirect permanent "/" "https://redmine.hwdomain.io/"

</VirtualHost>

<IfModule mod_ssl.c>

    <VirtualHost *:443>

        ServerName redmine.hwdomain.io
        RailsEnv production
        DocumentRoot /opt/redmine/public

        ErrorLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.error.log
        CustomLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.access.log combined

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/redmine.hwdomain.io/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/redmine.hwdomain.io/privkey.pem

        <Directory "/opt/redmine/public">
            Allow from all
            Require all granted
        </Directory>

    </VirtualHost>

</IfModule>

Salva il file ed esci dall'editor.

Successivamente, esegui il seguente comando per attivare il file dell'host virtuale redmine.conf. Quindi, verifica la configurazione di Apache2 per assicurarti di avere la configurazione corretta.

sudo a2ensite redmine.conf
sudo apachectl configtest

Ora otterrai un messaggio di output come \Syntax OK\ quando avrai le configurazioni Apache2 corrette.

Infine, riavvia il servizio Apache2 tramite il comando systemctl di seguito per applicare il nuovo file host virtuale.

sudo systemctl restart apache2

A questo punto, Redmine è installato e l'host virtuale è configurato. Ora dovresti accedere alla tua installazione di Redmine tramite il tuo nome di dominio.

Configurazione del firewall UFW

In produzione, dovresti attivare il firewall. Per il sistema Ubuntu, puoi utilizzare il firewall predefinito UFE (Uncomplicated Firewall).

Ora aggiungerai le regole UFW che aprono i servizi HTTP e HTTPS predefiniti in modo che Redmine sia accessibile dall'esterno della rete.

Esegui il seguente comando ufw per aggiungere il profilo dell'applicazione \OpenSSH\ predefinito all'UFW. Quindi, avvia e abilita il firewall UFW.

sudo ufw allow "OpenSSH"
sudo ufw enable

Quando viene richiesta la conferma, immettere y per avviare e abilitare il servizio firewall UFW.

Successivamente, esegui il seguente comando per aggiungere il profilo dell'applicazione \Apache Full\ al firewall. Quindi, verifica lo stato UFW tramite il seguente comando.

sudo ufw allow "Apache Full"
sudo ufw status

Dovresti vedere che lo stato del firewall UFW è attivo e i profili dell'applicazione attualmente abilitati sono OpenSSH e \Apache Full\. Questo aprirà la porta SSH predefinita 22 e le porte dei servizi HTTP e HTTPS 80 e 443.

Installazione di Redmine

Apri il browser Web e visita il nome di dominio della tua installazione di Redmine (ad esempio: https://redmine.hwdomain.io/).

Ora vedrai l'impostazione predefinita della home page di Redmine Project Management e Issue Tracking Tool. Fai clic su \Accedi\ per accedere al pannello di amministrazione di Redmine.

Immettere l'utente e la password predefiniti per l'amministrazione di Redmine \admin - admin\.

Dopo aver effettuato l'accesso, ti verrà chiesto di modificare la password predefinita per Redmine. Inserisci la nuova password per l'installazione di Redmine e fai clic su \Applica\.

Infine, modifica i dettagli del tuo utente amministratore Redmine e fai clic su \Salva\ per applicare le configurazioni. Ora hai configurato la base di Redmine.

Per aggiungere un nuovo progetto, fai clic sul menu \Progetti\. Dovresti essere in grado di creare, modificare o eliminare progetti sul tuo Redmine.

Ora, se desideri aggiungere configurazioni a Redmine, fai clic sul menu \Amministrazione\. Con ciò, puoi aggiungere più utenti, impostare gruppi, definire ruoli, abilitare l'autenticazione tramite un'applicazione di terze parti come LDAP e molto altro.

Conclusione

In questo tutorial, hai installato e configurato Redmine Project Management e Issue Tracking Tool sul server Ubuntu 22.04. Hai anche configurato il database MariaDB e il server web Nginx per Redmine. Inoltre, hai anche protetto l'installazione di Redmine con certificati SSL.

Ora hai Redmine installato sul tuo sistema, puoi estendere la tua installazione di Redmine aggiungendo alcune configurazioni aggiuntive come l'integrazione di Redmine nelle tue attuali infrastrutture come l'aggiunta di autenticazioni LDAP e l'integrazione con SCM come SVN, Git e Mercurial. Inoltre, puoi aggiungere ruoli in base alla tua organizzazione o azienda.