Cómo instalar la herramienta de gestión de proyectos Redmine en Ubuntu 22.04
Redmine es una herramienta gratuita y de código abierto para la gestión de proyectos y el seguimiento de incidencias. Es un software de aplicación basado en web, escrito principalmente en Ruby on Rails. Es multiplataforma y admite varias bases de datos y varios idiomas.
Redmine es flexible y puede utilizarse para distintos tipos de organizaciones y proyectos, desde pequeñas, medianas o grandes organizaciones. Te permite crear y gestionar múltiples proyectos, y cada proyecto tiene su propia Wiki, Foros, seguimiento de incidencias, etc. Además, te permite crear roles personalizados en función de las necesidades de tu organización, y muchas cosas más.
Redmine se publica bajo licencia GNU GPL v2 y puede instalarse en cualquier sistema operativo, como Linux, Windows o macOS. Admite distintos tipos de bases de datos, como PostgreSQL, MySQL y SQLite (por defecto).
En esta guía, instalarás Redmine con el servidor web Apache2 y el servidor MySQL en un servidor Ubuntu 22.04. También asegurarás la instalación de Redmine con certificados SSL.
Requisitos previos
Este tutorial requiere los siguientes requisitos
- Un servidor Ubuntu 22.04 – Este ejemplo utiliza un servidor Ubuntu con el nombre de host redmine-server.
- Un usuario no root con privilegios de root sudo – Pero también puedes utilizar el usuario root.
- Un nombre de dominio apuntando a la dirección IP de tu servidor – Para la producción, debes asegurarte de que tu nombre de dominio apunta a la dirección IP de tu servidor.
Una vez que tengas todo listo, ya puedes proceder al primer paso de la instalación de Redmine.
Instalación de dependencias
Redmine es una herramienta de gestión de proyectos y seguimiento de incidencias de código abierto escrita principalmente en Ruby y Ruby on Rails (RoR). Para instalar Redmine, primero debes instalar Ruby, después puedes instalar otras dependencias como el servidor web Apache2 y la base de datos mediante el servidor MySQL.
En este ejemplo, ejecutarás Redmine con el servidor web Apache2 y el servidor MySQL.
Antes de empezar a instalar los paquetes, ejecuta el siguiente comando apt para actualizar y refrescar el índice de paquetes de Ubuntu.
sudo apt update
Una vez actualizado el repositorio, instala algunas de las siguientes dependencias de paquetes mediante el comando apt que aparece a continuación.
Con este comando, instalarás el servidor web Apache2 seguido del linapache2-mod-passenger que se utilizará para configurar la aplicación RoR para que se ejecute bajo Apache2. También instalarás paquetes Ruby.
sudo apt install apache2 ruby ruby-dev build-essential libapache2-mod-passenger libmysqlclient-dev
Cuando se te pida que confirmes la instalación, introduce y y pulsa ENTER para continuar.
Una vez instalados Apache2 y Ruby, ejecuta el siguiente comando para instalar el servidor MySQL. Redmine admite varios RDBMS como PostgreSQL, MySQL/MariaDB y SQLite. en este ejemplo utilizarás el servidor MySQL.
sudo apt install mysql-server
Introduce y cuando se te pida que confirmes la instalación, y pulsa INTRO para continuar.
Para la instalación de Redmine, también necesitarás instalar un bundler en tu servidor Ubuntu. bundler es una línea de comandos que se utilizará para gestionar los paquetes Ruby Gems.
Ejecuta el siguiente comando para instalar un bundler en tu sistema.
sudo gem install bundler
Una vez instalado el bundler, verás una salida como la siguiente:
Por último, verifica los servicios Apache2 y MySQL mediante el siguiente comando systemctl. Así te asegurarás de que los servicios Apache2 y MariaDB se están ejecutando y están habilitados.
Verifica el servicio Apache2.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
A continuación puedes ver que el servicio Apache2 está habilitado y se ejecutará automáticamente al arrancar el sistema. Y el estado actual del servicio es en ejecución.
Verifica el servicio MySQL.
sudo systemctl is-enabled mysql sudo systemctl status mysql
Verás una salida similar a la siguiente – El servicio MySQL está habilitado y se ejecutará automáticamente al arrancar el sistema. Y el estado actual del servicio MySQL es en ejecución.
Configurar el servidor MySQL
Una vez instalados Apache2 y el servidor MySQL, configurarás la contraseña raíz de MySQL y asegurarás la instalación mediante mysql_secure_installation. A continuación, también crearás una nueva base de datos MySQL y un nuevo usuario para Redmine.
Accede a MySQL mediante el comando mysql que aparece a continuación.
sudo mysql
Ahora cambia la contraseña raíz de MySQL mediante la siguiente consulta. Y asegúrate de cambiar la contraseña por la tuya. A continuación, escribe quit para salir del intérprete de comandos MySQL.
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'password'; quit
A continuación, ejecuta el siguiente comando para empezar a asegurar la implementación del servidor MySQL.
sudo mysql_secure_installation
Cuando se te pida la contraseña raíz de MySQL, introduce tu contraseña correcta.
A continuación, se te pedirán otras configuraciones de MySQL, como desactivar el inicio de sesión remoto para el usuario root, eliminar el usuario anónimo, eliminar la prueba de base de datos predeterminada y recargar todos los privilegios de las tablas. Para todas esas configuraciones del servidor MySQL, introduce Y para confirmar la configuración.
Tras asegurar el despliegue de MySQL, es hora de configurar una nueva base de datos y un nuevo usuario para Redmine.
Accede al shell de MySQL mediante el comando mysql que se indica a continuación. Se te pedirá la contraseña raíz de MySQL, introduce la contraseña correcta para tu usuario raíz de MySQL y pulsa INTRO.
sudo mysql -u root -p
Ahora ejecuta las siguientes consultas para crear una nueva base de datos MySQL y un nuevo usuario para Redmine. En este ejemplo, crearás una nueva base de datos y un nuevo usuario redmine con la contraseña‘secretPassword‘. Puedes sustituir la contraseña de la base de datos por tu contraseña.
CREATE DATABASE redmine CHARACTER SET utf8mb4; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; FLUSH PRIVILEGES;
A continuación, ejecuta las siguientes consultas para verificar los privilegios del usuario MySQL redmine. Asegúrate de que el usuario MySQL redmine tiene privilegios sobre la base de datos redmine.
SHOW GRANTS FOR redmine@localhost; quit
A continuación puedes ver el usuario MySQL redmine@localhost con privilegios para la base de datos redmine.
Por último, escribe quit para cerrar la sesión en el intérprete de comandos MySQL.
Con todas las dependencias instaladas, y la base de datos MySQL y el usuario creados, estás listo para instalar la herramienta de gestión de proyectos Redmine en tu servidor Ubuntu.
Instalar Redmine
En este paso, instalarás la última versión de Redmine. En el momento de escribir esto, la última versión de Redmine es la v5.0.2.
Descargarás el código fuente de Redmine, configurarás la base de datos, instalarás las dependencias de Ruby mediante la compilación, configurarás el token secreto de Redmine y migrarás la base de datos.
En este ejemplo, instalarás Redmine en el directorio /opt/redmine.
Desplázate al directorio /opt.
cd /opt/
Ahora, descarga el código fuente de Redmine con el siguiente comando wget. Una vez descargado, verás el archivo redmine-5.0.2.tar.gz en tu directorio /opt.
wget https://www.redmine.org/releases/redmine-5.0.2.tar.gz
A continuación, ejecuta el siguiente comando para extraer el código fuente de Redmine redmine-5.0.2.tar.g z y crea un nuevo enlace simbólico para el directorio de Redmine a /opt/redmine.
tar -xvzf redmine-5.0.2.tar.gz sudo ln -s redmine-5.0.2 redmine
El directorio principal de instalación de Redmine será /opt/redmine.
Desplázate al directorio /opt/redmine.
cd /opt/redmine/
Copia la configuración por defecto de la base de datos ‘config/database.yml.example’ en ‘config/database.yml’. A continuación, abre el archivo de configuración de la base de datos ‘config/database.yml’ con el editor nano.
cp config/database.yml.example config/database.yml nano config/database.yml
En la sección ‘producción’, cambia los detalles de la base de datos MySQL y el usuario. Asegúrate de utilizar el usuario de la base de datos y la contraseña correctos para 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
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta el siguiente comando bundler para instalar las dependencias de Ruby para la aplicación Redmine.
bundle config set --local without 'development test' bundle install
Verás una salida similar a la siguiente:
Una vez instaladas las dependencias de Redmine, ejecuta el siguiente comando para generar el token secreto de Redmine y migrar la base de datos.
bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate
En la siguiente captura de pantalla, puedes ver que se genera el token secreto de Redmine y el proceso de migración de la base de datos de Redmine.
Por último, carga el predeterminado en tu instalación de Redmine con el siguiente comando. Cuando se te pida que elijas el idioma, introduce en como para Inglés.
RAILS_ENV=production bundle exec rake redmine:load_default_data
Cuando se carguen los datos por defecto de Redmine, verás el mensaje de salida como«Datos de configuración por defecto cargados«.
Ahora que Redmine está instalado, a continuación configurarás un host virtual Apache2 para Redmine.
Configurar un host virtual para Redmine
En este paso, crearás una nueva configuración de host virtual Apache2 para Redmine. Así que asegúrate de que tienes el nombre de dominio que apunta a la dirección IP de tu servidor y de que se han generado los certificados SSL.
Ejecuta el siguiente comando para habilitar los módulos ssl y reescritura de Apache.
sudo a2enmod ssl rewrite
Verás la salida como la siguiente:
Ahora, crea una nueva configuración de host virtual Apache2‘/etc/apache2/sites-available/redmine.conf‘ utilizando el editor nano.
sudo nano /etc/apache2/sites-available/redmine.conf
Añade la siguiente configuración al archivo. Y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL con tu configuración.
<VirtualHost *:80> ServerName redmine.hwdomain.io ServerAdmin [email protected] # 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>
Guarda el archivo y sal del editor.
A continuación, ejecuta el siguiente comando para activar el archivo de host virtual‘redmine.conf‘. A continuación, verifica tu configuración de Apache2 para asegurarte de que tienes la configuración adecuada.
sudo a2ensite redmine.conf sudo apachectl configtest
Ahora obtendrás el mensaje de salida«Sintaxis OK» cuando tengas la configuración adecuada de Apache2.
Por último, reinicia el servicio Apache2 mediante el siguiente comando systemctl para aplicar el nuevo archivo de host virtual.
sudo systemctl restart apache2
En este punto, Redmine está instalado y el host virtual está configurado. Ahora deberías acceder a tu instalación de Redmine a través de tu nombre de dominio.
Configurar el cortafuegos UFW
En producción, debes activar el cortafuegos. Para el sistema Ubuntu, puedes utilizar el cortafuegos por defecto UFE (Uncomplicated Firewall).
Ahora, añadirás reglas UFW que abran los servicios HTTP y HTTPS por defecto para que Redmine sea accesible desde fuera de la red.
Ejecuta el siguiente comando ufw para añadir el perfil de aplicación por defecto«OpenSSH» al UFW. A continuación, inicia y activa el cortafuegos de la UFW.
sudo ufw allow "OpenSSH" sudo ufw enable
Cuando te pida confirmación, introduce y para iniciar y habilitar el servicio de cortafuegos UFW.
A continuación, ejecuta el siguiente comando para añadir el perfil de aplicación«Apache Full» al cortafuegos. A continuación, comprueba el estado del UFW mediante el siguiente comando.
sudo ufw allow "Apache Full" sudo ufw status
Deberías ver que el estado del cortafuegos UFW está activo y que los perfiles de aplicación actualmente habilitados son OpenSSH y «Apache Full». Esto abrirá el puerto SSH 22 por defecto y los puertos 80 y 443 de los servicios HTTP y HTTPS.
Instalación de Redmine
Abre el navegador web y visita el nombre de dominio de tu instalación de Redmine (es decir: https://redmine.hwdomain.io/).
Ahora verás la página de inicio por defecto de la herramienta de gestión de proyectos y seguimiento de incidencias Redmine. Haz clic en«Iniciar sesión» para acceder al panel de administración de Redmine.
Introduce el usuario y contraseña predeterminados de administración de Redmine«admin – admin«.
Una vez que hayas iniciado sesión, se te pedirá que cambies la contraseña predeterminada de Redmine. Introduce la nueva contraseña para tu instalación de Redmine y haz clic en«Aplicar«.
Por último, edita los datos de tu usuario administrador de Redmine y haz clic en «Guardar» para aplicar las configuraciones. Ya has configurado la base de Redmine.
Para añadir un nuevo proyecto, haz clic en el menú«Proyectos«. Deberías poder crear, editar o eliminar Proyectos en tu Redmine.
Ahora, si quieres añadir configuraciones a Redmine, haz clic en el menú «Administración«. Con eso, puedes añadir más usuarios, configurar grupos, definir roles, habilitar la autenticación a través de una aplicación de terceros como LDAP, y muchas cosas más.
Conclusión
En este tutorial, has instalado y configurado la herramienta de gestión de proyectos y seguimiento de incidencias Redmine en el servidor Ubuntu 22.04. También has configurado la base de datos MariaDB y el servidor web Nginx para Redmine. Además, también has asegurado la instalación de Redmine con certificados SSL.
Ahora que tienes Redmine instalado en tu sistema, puedes ampliar tu instalación de Redmine añadiendo algunas configuraciones adicionales, como integrar Redmine en tus infraestructuras actuales, como añadir autenticaciones LDAP, e integrarlo con SCM como SVN, Git y Mercurial. Además, puedes añadir roles según tu organización o empresa.