Como instalar Redmine en Debian 12

redmine

¿Que es Redmine?

Redmine es una plataforma de gestión de proyectos de código abierto y personalizable que se utiliza para coordinar equipos, asignar tareas, supervisar el progreso y garantizar una comunicación efectiva en proyectos de diferentes tipos y tamaños.

Requisitos

  • Sistema Debian 12 actualizado.
  • Privilegios de root o sudo.
  • Acceso a internet.
  • Servicio web apache
  • Gestor de bases de datos (MariaDB, MySQL o PostgreSQL).

Instalación de redmine

Vamos a descargar la última versión disponible de Redmine desde su sitio oficial utilizando el comando wget:

root@redmine:~# wget --no-check-certificate https://www.redmine.org/releases/redmine-5.0.5.tar.gz

Ahora que tenemos el paquete de redmine descargado vamos a preparar el sistema para la instalación:

Dependencias

Primero vamos a instalar las dependencias comunes de redmine con apt:

root@redmine:~# apt install -y gcc make ruby-bundler ruby-dev zlib1g-dev libapache2-mod-passenger

Dependiendo del gestor de base de datos que vamos a utilizar necesitaremos algunas dependencias adicionales.

En el caso de MariaDB:

root@redmine:~# apt install -y libmariadb-dev

Si se trata de MySQL:

root@redmine:~# apt install -y default-libmysqlclient-dev

Y para PostgreSQL:

root@redmine:~# apt install -y libpq-dev

Base de datos

Ahora vamos a configurar el gestor de base de datos para que redmine pueda conectarse y guardar su información. Dependiendo del que hemos elegido su configuración puede ser distinta:

MariaDB/MySQL

Conectamos al servicio con el cliente mysql y un usuario administrador:

root@redmine:~# mysql -u root -p

Creamos la base de datos de Redmine:

> create database redmine character set utf8mb4 collate utf8mb4_unicode_ci;

Creamos el usuario:

> create user redmine@localhost identified by 'redmine';

Damos suficientes permisos al usuario para gestionar la base de datos:

> grant all privileges on redmine.* to redmine@localhost;

Y cerramos la conexión:

> exit;
PostgreSQL

Creamos el rol para Redmine con contraseña:

root@redmine:~# sudo -u postgres createuser -P redmine

Y creamos la base de datos asociándola al nuevo rol:

root@redmine:~# sudo -u postgres createdb redmine -O redmine

Archivo de Redmine

Vamos a descomprimir el archivo descargado anteriormente en su ubicación definitiva con el comando tar. En mi caso será en /opt:

root@redmine:~# tar -xf redmine-5.0.5.tar.gz -C /opt/

Ahora cambiamos al directorio de configuración de redmine:

root@redmine:~# cd /opt/redmine-5.0.5/config/

Creamos con nuestro editor de texto el fichero ‘database.yml’:

root@redmine:/opt/redmine-5.0.5# nano database.yml

Según el gestor de base de datos que utilicemos, puede ser diferente la configuración que necesitamos:

Para MariaDB/MySQL:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: redmine

Y para PostgreSQL:

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
  ```

Guardamos el fichero y ejecutamos el compilador de Redmine:

```bash
root@redmine:/opt/redmine-5.0.5# bundle install

Generamos la clave de cifrado de la cookies de Redmine:

root@redmine:/opt/redmine-5.0.5# bundle exec rake generate_secret_token

Conectamos redmine con la base de datos:

root@redmine:/opt/redmine-5.0.5# RAILS_ENV=production bundle exec rake db:migrate

Cargamos los datos por defecto:

root@redmine:/opt/redmine-5.0.5# RAILS_ENV=production bundle exec rake redmine:load_default_data

Prueba de funcionamiento

Haremos una prueba de funcionamiento con el servidor de consola para comprobar que los pasos realizados hasta ahora se realizaron correctamente.

Nos desplazamos al directorio de redmine:

root@redmine:/opt/redmine-5.0.5# cd /opt/redmine-5.0.5/

Añadimos al Gemfile el servidor de consola ‘webrick’:

root@redmine:/opt/redmine-5.0.5# bundle add webrick

Ejecutamos el servidor de consola:

root@redmine:/opt/redmine-5.0.5# bundle exec ruby /usr/local/bin/rails server -u webrick -e production

Para acceder desde el navegador tendremos que usar la ip o nombre de la máquina donde está instalado redmine y el puerto 3000 “http://ip-máquina:3000”.

prueba1-redmine

Cuando terminemos la prueba, liberamos la consola con la combinación de teclas ctr + c.

Salimos de directorio de redmine:

root@redmine:/opt/redmine-5.0.5# cd

Servicio web

Editamos el archivo del módulo “Passenger” del servicio web para que trabaje con el usuario www-data:

root@redmine:~# nano /etc/apache2/mods-available/passenger.conf

Dentro del bloque IfModule añadiremos la directiva PassengerUser con el usuario www-data:

<IfModule mod_passenger.c>
...
        PassengerUser www-data
</IfModule>

Guardamos el archivo y cambiamos con chown el propietario de los archivos de Redmine al usuario del servicio web:

root@redmine:~# chown -R www-data: /opt/redmine-5.0.5/

Ajustamos los permisos de los ficheros y directorios de redmine de manera segura:

root@redmine:~# chmod -R 755 /opt/redmine-5.0.5/{files,log,tmp,public/plugin_assets}

Creamos un enlace simbólico a la aplicación web de Redmine desde el directorio de la web por defecto de apache:

root@redmine:~# ln -s /opt/redmine-5.0.5/public/ /var/www/html/redmine

Editamos la configuración del sitio web por defecto:

root@redmine:~# nano /etc/apache2/sites-available/000-default.conf

Añadimos las siguientes líneas al fichero de configuración:

<Location /redmine>
        RailsEnv production
        RackBaseURI /redmine
        Options -MultiViews
</Location>

El fichero quedaría de la siguiente manera:

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

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

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf

        <Location /redmine>
                RailsEnv production
                RackBaseURI /redmine
                Options -MultiViews
        </Location>

</VirtualHost>

Guardamos los cambios y reiniciamos el servicio de apache:

root@redmine:~# systemctl restart apache2

Si al reiniciar nos da algún error relacionado con ‘Invalid command ‘RailsEnv’, hay que habilitar el módulo ‘passenger’ de apache y volver a reiniciar el servicio:

root@redmine:~# a2enmod passenger

Acceso a Redmine

Ya está todo listo para acceder a nuestro redmine instalado sobre Debian 12.

Para acceder tenemos que poner en nuestro navegador el nombre o la ip del equipo donde está instalado redmine y hacemos referencia al servicio con /redmine “http://ip-máquina/redmine”.

redmine-web1

Podemos iniciar sesión pulsando pobre el enlace “Iniciar sesión» del menú superior:

  • Usuario por defecto: “admin”
  • Contraseña por defecto: “admin”

Después de pulsar en ‘Acceder’ redmine pedirá que asignes una nueva contraseña al usuario admin.

redmine-web2

Cuando creemos la nueva contraseña redmine nos redirigirá a la página del perfil del usuario.

Ahora ya podemos empezar a trabajar con nuestro Redmine sobre Debian 12.

redmine-web3