Cómo instalar Redmine en Ubuntu 18.04 LTS

En este artículo explicamos cómo instalar Redmine en Ubuntu 18.04 LTS Bionic Beaver paso a paso, en su última versión disponible, de modo que al final del tutorial podrás trabajar con esta aplicación de planificación de proyectos sobre tu servidor o VPS Ubuntu.

Antes de instalar Redmine en Ubuntu 18.04 LTS

Si quieres completar hasta el final esta guía de instalación de Redmine en Ubuntu 18.04 LTS Bionic Beaver debes satisfacer una serie de requerimientos:

  • Una máquina Ubuntu 18.04 LTS Bionic Beaver actualizada.
  • Un entorno o pila tipo LAMP.
  • Acceso a consola con un usuario con permisos de sudo.
  • Conexión a Internet.

En este tutorial asumimos Apache como servidor web. Si usas MariaDB, no sirve la versión de los repositorios de Ubuntu 18.04, se necesita una versión más actualizada, como indicamos en la guía de instalación de MariaDB en Ubuntu 18.04.

Cómo descargar Redmine para Ubuntu 18.04 LTS

Vamos a descargar Redmine para Ubuntu 18.04 LTS desde la web oficial del proyecto:

como descargar redmine para ubuntu 18.04 lts bionic beaver

En la sección «Download» encontraremos los paquetes de las últimas ramas de Redmine en distintos formatos:

descargar redmine para ubuntu 18.04 lts bionic beaver

En este tutorial copiaremos el enlace del paquete .tar.gz de la última versión para descargarlo desde consola con wget:

~$ wget https://www.redmine.org/releases/redmine-5.0.1.tar.gz

Cómo instalar Redmine en Ubuntu 18.04 LTS

Para instalar Redmine en Ubuntu 18.04 LTS necesitamos realizar una serie de tareas en el orden adecuado, que detallamos a continuación:

Archivos de Redmine

Empezamos creando un directorio donde ubicar Redmine:

~$ sudo mkdir /opt/redmine

Descomprimimos el paquete de Redmine que acabamos de descargar en el directorio que hemos creado:

~$ sudo tar xf redmine-5.0.1.tar.gz -C /opt/redmine/

Requisitos previos

Para compilar Redmine y sus dependencias necesitamos asegurarnos de disponer de ciertas herramientas en el sistema. Como siempre, hay que empezar actualizando las listas de paquetes de los repositorios:

~$ sudo apt update

Ahora instalamos los requisitos:

~$ sudo apt install -y build-essential libapache2-mod-passenger rails ruby-bundler ruby-dev zlib1g-dev

Si la base de datos que usamos es MariaDB 10.1 procedente de los repositorios de Ubuntu 18.04 LTS, necesitamos su librería de desarrollo:

~$ sudo apt install -y libmariadbclient-dev-compat

Si usamos cualquier otra versión de MariaDB procedente del repositorio oficial, entonces la librería que necesitamos es esta:

~$ sudo apt install -y libmariadb-dev

Y si usamos MySQL será esta:

~$ sudo apt install -y libmysqlclient-dev

Configuración del servicio de bases de datos

Si usas MariaDB 10.1, procedente de los repositorios de Ubuntu 18.04, la configuración por defecto no permite un tamaño de columna superior a 767 bytes, pero Redmine necesita tamaños superiores. Por tanto habrá que hacer algunos ajustes de configuración:

~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

En la sección server añadiremos las siguientes líneas:

...
[server]
...
innodb_file_format=Barracuda
innodb_default_row_format=dynamic
innodb_large_prefix=on
...

Guardamos y cerramos el archivo, y reiniciamos el servicio de bases de datos.

~$ sudo systemctl restart mariadb

Preparación del servicio de bases de datos

Vamos a crear la base de datos y el usuario para Redmine. Podemos usar el cliente de consola mysql con el usuario que utilicemos para administrar habitualmente:

~$ mysql -u root -p

Creamos la base de datos:

> create database redmine character set utf8mb4;

Si usamos MySQL 5.x ó MariaDB creamos el usuario sin mayor complicación:

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

Pero si usamos MySQL 8.x tenemos que asegurarnos de crear el usuario con el plugin de autenticación adecuado:

> create user redmine@localhost identified with mysql_native_password by 'XXXXXXXX';

En cualquier caso, concedemos al usuario los permisos sobre la base de datos:

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

Ya podemos cerrar el cliente y regresar a consola:

> exit

Redmine

Creamos el archivo de configuración de Redmine para la conexión con la base de datos, el archivo database.yml:

~$ sudo nano /opt/redmine/redmine-5.0.1/config/database.yml

El contenido será el siguiente:

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

En esta configuración usaremos los datos que acabamos de crear en las variables database, username y password.

Hecho esto, guardamos y cerramos el archivo.

Cambiamos el directorio de trabajo al directorio de Redmine:

~$ cd /opt/redmine/redmine-5.0.1/

Ejecutaremos bundle para descargar e instalar las dependencias de Redmine:

$ bundle install

Durante el proceso se nos pedirá nuestra contraseña de usuario para que bundle pueda realizar ciertas tareas con sudo.

Generamos el token para cifrar las cookies de sesión:

$ bundle exec rake generate_secret_token

Creamos la estructura de la base de datos:

$ RAILS_ENV=production bundle exec rake db:migrate

Por último poblaremos la base con datos iniciales:

$ RAILS_ENV=production bundle exec rake redmine:load_default_data

Se nos preguntará en qué idioma cargar los datos, en este ejemplo para seleccionar el español contestamos es.

Es el momento de comprobar que todo funciona con un test.

Si quieres realizar una conexión de prueba desde otra máquina de la red y tienes el firewall UFW activado, añade la regla necesaria:

~$ sudo ufw allow 3000/tcp

Para lanzar el test usaremos el siguiente comando:

$ bundle exec ruby /usr/bin/rails server -u webrick -e production

Quedará en ejecución el servidor de prueba, esperando conexiones en el puerto 3000 TCP, sin devolver el control a la consola y mostrando un registro de eventos a medida que sucedan.

Ya podemos introducir en el navegador la dirección IP, nombre de máquina o dominio de la máquina Ubuntu 18.04, especificando el puerto 3000.

Por ejemplo, la máquina Ubuntu 18.04 LTS sobre la que hemos preparado este tutorial es accesible en el subdominio ubuntu64.local.lan, así que usaremos http://ubuntu64.local.lan:3000 como URL de acceso:

como instalar redmine en ubuntu 18.04 lts bionic beaver

La prueba funciona perfectamente, así que podemos detener el servidor de prueba con [Control-C] y recuperar la consola de nuevo.

Configuración del servidor web

Cambiamos la propiedad de los archivos de Redmine al usuario y grupo con el que corre el servicio web en Ubuntu 18.04 (www-data para Apache):

~$ sudo chown -R www-data:www-data /opt/redmine/redmine-5.0.1/

Adecuamos los permisos para que sólo el servidor web pueda escribir:

~$ sudo chmod -R 755 /opt/redmine/redmine-5.0.1/{files,log,tmp,public/plugin_assets}

Creamos un enlace simbólico desde el directorio de documentos del servidor web al directorio de documentos de Redmine:

~$ sudo ln -s /opt/redmine/redmine-5.0.1/public/ /var/www/html/redmine

Para configurar el módulo Passenger de Apache, editamos su archivo de configuración:

~$ sudo nano /etc/apache2/mods-available/passenger.conf

Añadimos la directiva PassengerUser:

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

Sólo queda configurar el sitio web principal de Ubuntu 18.04 para configurar la ruta /redmine, para lo que editamos su archivo de configuración:

~$ sudo nano /etc/apache2/sites-available/000-default.conf

Añadimos un bloque Directory dentro del bloque VirtualHost:

<VirtualHost *:80>
...
        <Directory /var/www/html/redmine>
                RailsEnv production
                RailsBaseURI /redmine
                PassengerResolveSymlinksInDocumentRoot on
                Options -MultiViews
        </Directory>
...
</VirtualHost>
...

Finalmente, reiniciamos el servidor web:

~$ sudo systemctl restart apache2

Acceder a Redmine en Ubuntu 18.04 LTS

Está todo listo para probar Redmine en Ubuntu 18.04 LTS, así que accedemos desde el navegador indicando como URL la dirección IP, nombre de máquina o dominio añadiendo la ruta /redmine.

Siguiendo con el ejemplo del tutorial, como la máquina que hemos utilizado es accesible en el subdominio ubuntu64.local.lan, ahora usaríamos http://ubuntu64.local.lan/redmine como URL:

instalar redmine en ubuntu 18.04 lts bionic beaver

¡Listo para trabajar!

Puedes iniciar sesión con el usuario admin y la clave temporal admin. Una vez que accedemos a Redmine tendremos que cambiar la contraseña temporal por una definitiva, tras lo cual se nos presentará la página de configuración del perfil del usuario administrador, donde personalizaremos los datos y guardaremos los cambios:

redmine en ubuntu 18.04 lts bionic beaver

Ya está la aplicación lista para empezar a trabajar con proyectos y usuarios.

Conclusión

Si has llegado hasta aquí, ya sabes cómo instalar Redmine en Ubuntu 18.04 LTS, toda una travesía para disfrutar de esta aplicación, que no debería faltar en ningún entorno de equipos de desarrollo.

En caso de dudas, preguntas, sugerencias, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya tienes la aplicación funcionando gracias a esta guía de instalación de Redmine en Ubuntu 18.04 LTS? Si es así y te apetece agradecérnoslo, cualquier mínima aportación ayuda al mantenimiento de este sitio y creación de nuevos tutoriales de Ubuntu 18.04 y Redmine. Puedes hacerlo dejando 1 $ de propina desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

5 comentarios en «Cómo instalar Redmine en Ubuntu 18.04 LTS»

  1. ¡Hola! Muy bueno el post, pero me quedo justo en el final cuando «hay que añadir un bloque Directory dentro del bloque VirtualHost«. Cuando lo hago e intento reiniciar Apache arroja el siguiente error:

    «Job for apache2.service failed because the control process exited with error code.
    See «systemctl status apache2.service» and «journalctl -xe» for details.
    »

    Y se me detiene el servicio de Apache. Esto pasa cuando agrego el directorio que indicas.
    Lo borro y ya puedo reiniciar el servicio y Apache vuelve a funcionar. No sé en qué me estoy equivocando. ¿¿Alguna Ayuda??
    Muchas gracias.

    Responder
    • ¡Hola! Haz justo lo que te indica el mensaje de error, usar el comando journalctl:

      ~$ sudo journalctl -xe

      Analiza cada línea para encontrar la que te indica cuál es exactamente el error. También puedes revisar el registro de errores de Apache.

      Responder
      • ¿Has probado a lanzar los dos comandos que suguiere el mensaje de error para obtener alguna pista del problema? ¿Has mirado a ver si hay algo en el registro de errores del servidor web? Ten en cuenta que hay que ser cuidadoso con las rutas mostradas en el tutorial, ya que la versión actual puede diferir de la que aparece en el texto. Precisamente acabo de actualizar el tutorial y te aseguro que todo funciona a la primera.

        Responder

Deja un comentario