Cómo instalar Redmine con Apache y Let’s Encrypt SSL en Debian 12
Redmine es una herramienta gratuita y de código abierto de gestión de proyectos y seguimiento de incidencias. Está basada en web y escrita 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).
Sigue esta guía paso a paso para instalar la herramienta de gestión de proyectos y seguimiento de incidencias Redmine en Debian 12 Server. Siguiéndola, instalarás Redmine con MariaDB como servidor de base de datos y Apache2 como servidor web.
Requisitos previos
Para comenzar el proceso, asegúrate de que tienes
- Un Servidor Debian 12.
- Un usuario no root con privilegios de administrador.
- Un nombre de dominio apuntando a la dirección IP del servidor.
Instalación de dependencias
Redmine es un gestor de proyectos basado en web y escrito en Ruby on Rails. Para instalar Redmine, primero debes instalar los siguientes paquetes:
- Servidor webApache: se utilizará como servidor web para Redmine.
- Servidor MariaDB: Redmine puede funcionar con bases de datos como MySQL/MariaDB y PostgreSQL. En esta guía se utilizará el servidor MariaDB.
- Ruby: en el momento de escribir esto, la versión estable 5.0.6 de Redmine puede instalarse con Ruby 3.1.
- Paquetes adicionales: Certbot para generar certificados SSL/TLS, build-essential para compilar código Ruby, y Subversion como sistema de control de versiones.
Antes de instalar las dependencias, actualiza y refresca tu repositorio Debian utilizando el siguiente comando.
sudo apt update
Ahora ejecuta el siguiente comando apt install para instalar las dependencias para Redmine, que incluyen Apache2, MariaDB, Ruby, ImageMagick, Certbot y Subversion.
sudo apt install apache2 libapache2-mod-passenger mariadb-server certbot python3-certbot-apache ruby ruby-dev build-essential default-mysql-server default-libmysqlclient-dev libxml2-dev libxslt1-dev zlib1g-dev imagemagick libmagickwand-dev subversion
Escribe y para proceder con la instalación.
Una vez instaladas las dependencias, verifica cada una de ellas ejecutando el siguiente comando.
Verifica el servicio apache2 para asegurarte de que se está ejecutando y está habilitado.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
La salida que se muestra a continuación confirma que apache2 está habilitado y en ejecución.
Comprueba ahora el servicio mariadb ejecutando el siguiente comando.
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
La salida debería ser similar a la del servicio apache2, lo que confirma que el servicio se está ejecutando y está habilitado.
A continuación, verifica la versión de Ruby en tu sistema mediante el siguiente comando. Deberías ver que Ruby 3.1.2 está instalado en tu máquina Debian.
ruby --version
Por último, verifica Subversion utilizando el siguiente comando. Así te asegurarás de que Subversion está instalado.
svn --version
El resultado debería ser similar a éste:
Configurar el servidor MariaDB
Tras instalar las dependencias, configurarás la instalación de tu servidor MariaDB mediante la utilidad mariadb-secure-installation y crearás una nueva base de datos y un nuevo usuario que utilizará Redmine.
Ejecuta el siguiente comando para asegurar tu instalación de MariaDB Server.
sudo mariadb-secure-installation
Durante el proceso, escribe Y para confirmar y aplicar los cambios o n para No rechazarlo. A continuación se indican algunas de las configuraciones del Servidor MariaDB que se te pedirán:
- ¿Cambiar a autenticación unix_socket? Introduce n y pulsa ENTER. El usuario raíz por defecto de MariaDB ya está protegido. opcionalmente, también puedes habilitarlo escribiendo y para sí.
- ¿Cambiar la contraseña de root? Introduce y para confirmar y establecer tu nueva contraseña de root de MariaDB.
- ¿Eliminar usuario anónimo? Introduce y para confirmar.
- ¿Deshabilitar el inicio de sesión de root de forma remota? Introduce y para confirmar. Sólo se permitirá la conexión local si utilizas el usuario raíz de MariaDB.
- ¿Quitar la base de datos de prueba y el acceso a ella? Introduce y para confirmar y eliminar la base de datos por defecto «test».
- Por último, introduce y de nuevo para recargar todos los privilegios de las tablas en tu servidor MariaDB y aplicar los nuevos cambios.
Después de configurar el Servidor mariaDB, inicia sesión en el Servidor MariaDB mediante el siguiente comando de cliente mariadb. Escribe tu contraseña de root de MariaDB cuando se te solicite.
sudo mariadb -u root -p
Ahora ejecuta las siguientes consultas para crear una nueva base de datos redmine, un nuevo usuario redmine, con la contraseña secretPassword. Los siguientes detalles de la base de datos serán utilizados por Redmine, y asegúrate de cambiar la 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 la siguiente consulta para verificar los privilegios del usuario redmine.
SHOW GRANTS FOR redmine@localhost;
Se mostrará la siguiente salida, que confirma que el usuario redmine puede acceder a la base de datos redmine.
Escribe quit para salir del Servidor MariaDB.
Descarga e instalación de Redmine
En la siguiente sección, descargarás e instalarás Redmine en tu máquina Debian. Descargarás el código fuente de Redmine a través de subversion, configurarás Redmine con el servidor de base de datos MariaDB y, a continuación, instalarás las dependencias de Ruby a través de bundler.
Antes de empezar, instala un bundler en tu sistema ejecutando el siguiente comando.
gem install bundler
Desplázate al directorio /var/www y descarga el código fuente de Redmine mediante el siguiente comando svn. En este ejemplo, descargarás Redmine estable 5.0 en el directorio redmine-5.0, por lo que tu directorio de instalación de Redmine debe ser /var/www/redmine-5.0.
cd /var/www svn co https://svn.redmine.org/redmine/branches/5.0-stable redmine-5.0
Ve al directorio /var/www/redmine-5.0 y copia la configuración por defecto de la base de datos en config/database.yml.
cd /var/www/redmine-5.0 cp config/database.yml.example config/database.yml
Abre la configuración de la base de datos de Redmine config/database. yml utilizando el siguiente comando del editor nano.
nano config/database.yml
En la sección de producción, comprueba la configuración de la base de datos con lo siguiente. Asegúrate de cambiar el nombre de la base de datos, el usuario y la contraseña.
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 y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando bundle para desactivar desarrollo y prueba, y luego instala las dependencias de Ruby para Redmine.
bundle config set --local without 'development test' bundle install
Durante el proceso, la salida mostrada debería ser similar a ésta:
Ahora genera el token secreto y migra la base de datos ejecutando el siguiente comando.
bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate
Durante la migración de la base de datos, se mostrará la salida siguiente.
Por último, ejecuta el siguiente comando para cargar los datos por defecto en tu instalación de Redmine.
RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
Si tiene éxito, deberías obtener la salida «Datos deconfiguración por defecto cargados».
Configuración del host virtual Apache2
Después de haber descargado e instalado Redmine, el siguiente paso es crear un nuevo host virtual Apache2 que se utilizará para ejecutar Redmine y generar certificados SSL/TLS a través de Certbot y Letsencrypt. Así que antes de seguir adelante, asegúrate de que tienes un nombre de dominio apuntando a la dirección IP del servidor.
Crea una nueva configuración de host virtual /etc/apache2/sites-available/redmine. conf utilizando el siguiente comando del editor nano.
sudo nano /etc/apache2/sites-available/redmine.conf
Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio en la línea ServerName.
<VirtualHost *:80>
ServerName redmine.hwdomain.io
RailsEnv production
DocumentRoot /var/www/redmine-5.0/public
ErrorLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.access.log combined
<Directory «/var/www/redmine-5.0/public»>
Allow from all
Require all granted
</Directory>
</VirtualHost>
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando para activar el módulo de reescritura en el servidor web Apache2, y luego activa el archivo de host virtual redmine.conf.
sudo a2enmod rewrite sudo a2ensite redmine.conf
Después, verifica la sintaxis de Apache2 ejecutando el siguiente comando. Si la sintaxis es correcta, aparecerá el mensaje«Sintaxis correcta«.
sudo apachectl configtest
A continuación, ejecuta el siguiente comando systemctl para reiniciar el servicio apache2 y aplicar los cambios.
sudo systemctl restart apache2
Por último, genera nuevos certificados SSL/TLS para tu instalación de Redmine utilizando el siguiente comando certbot. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tus datos.
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d redmine.hwdomain.io
Una vez finalizado el proceso, tus certificados SSL/TLS se generarán en el directorio /etc/letsencrypt/live/redmine.hwdomain.io/. Además, tu archivo de host virtual redmine.conf se configurará automáticamente con HTTPS a través del plugin de Apache Certbot.
Acceder a la instalación de Redmine
Inicia tu navegador web y visita tu nombre de dominio de Redmine, como https://redmine.hwdomain.io. Si la instalación se ha realizado correctamente, aparecerá la siguiente página de inicio de Redmine.
Ahora haz clic en el enlace Iniciar sesión de la parte superior derecha para acceder a la página de inicio de sesión de Redmine. A continuación, introduce el usuario por defecto admin con la contraseña admin, y haz clic en Iniciar sesión.
En primer lugar, se te pedirá que cambies la contraseña admin por defecto. Introduce la antigua contraseña admin, luego introduce tu nueva contraseña y repite, después haz clic en Aplicar para confirmar los cambios.
Ahora serás redirigido a tu perfil de administrador, y deberías recibir el mensaje «Lacontraseña se ha actualizado correctamente«. Desde aquí, también puedes cambiar los detalles de tu usuario administrador, luego haz clic en Guardar para confirmar.
Por último, haz clic en Administración > Información para obtener información detallada sobre tu instalación de Redmine. Aparecerá la siguiente página, y desde ahí confirma que Redmine 5.0.6 estable está instalado con Ruby 3.1.2, Rails 6.1, controlador de base de datos Mysql2 y Subversion 1.14.
Conclusión
En resumen, has instalado correctamente la herramienta de gestión de proyectos y seguimiento de incidencias Redmine en el servidor Debian 12 paso a paso. Has instalado Redmine con un servidor web Apache2 y un servidor de base de datos MariaDB y has asegurado tu instalación de Redmine con certificados SSL/TLS de Letsencrypt. Por aquí, ahora puedes añadir un servidor SMTP a Redmine e instalar extensiones y temas adicionales para tu aplicación web de gestión de proyectos Redmine.