En esta entrada vamos a ver cómo instalar Redmine en Ubuntu 20.04 LTS Focal Fossa paso a paso de tal manera que en pocos minutos podrás trabajar con este administrador de proyectos sobre tu servidor o VPS Ubuntu.
Contenido
Antes de instalar Redmine en Ubuntu 20.04 LTS Focal Fossa
Si quieres seguir los pasos de esta guía de instalación de Redmine en Ubuntu 20.04 LTS Focal Fossa es importante partir del siguiente escenario:
- Un sistema Ubuntu 20.04 LTS Focal Fossa actualizado.
- Un entorno o pila tipo LAMP (servicio web con motor de bases de datos MariaDB/MySQL/PostgreSQL).
- Acceso a línea de comandos con privilegios de sudo.
- Conexión a Internet.
En caso de no disponer del entorno necesario puede ser útil consultar previamente nuestras guías de instalación de Apache en Ubuntu 20.04 LTS, de MariaDB Server en Ubuntu 20.04 LTS o de PostgreSQL en Ubuntu 20.04 LTS.
Si ya cumples los requisitos básicos entonces es hora de regular la altura más confortable para la mesa de trabajo, abrir un navegador web y una terminal de consola.
Cómo descargar Redmine para Ubuntu 20.04 LTS Focal Fossa
Vamos a descargar Redmine para Ubuntu 20.04 LTS Focal Fossa directamente desde la sección de descargas del sitio web del proyecto.
Encontraremos paquetes para descarga de las últimas versiones estables para las ramas 5 y 4 en formatos .zip y .tar.gz, siendo este último formato el recomendado. Podemos realizar la descarga directamente desde el navegador o, si trabajamos remotamente, desde consola con alguna herramienta como wget:
~$ wget https://www.redmine.org/releases/redmine-5.0.1.tar.gz
Cómo instalar Redmine en Ubuntu 20.04 LTS Focal Fossa
Para instalar Redmine en Ubuntu 20.04 LTS Focal Fossa debemos realizar una serie de preparativos que describimos de forma ordenada y con detalle a continuación.
Dependencias
Redmine necesita una serie de dependencias que podemos satisfacer con paquetes procedentes de los repositorios de Ubuntu 20.04 LTS, por lo que actualizamos la información de los mismos:
~$ sudo apt update
E instalamos las dependencias comunes:
~$ sudo apt install -y gcc make libapache2-mod-passenger rails ruby-bundler ruby-dev zlib1g-dev
También debemos instalar la librería de desarrollo para el motor de bases de datos con el que queremos trabajar.
Si se trata de MariaDB instalaremos este paquete adicional:
~$ sudo apt install -y libmariadb-dev
Para MySQL instalamos esta librería:
~$ sudo apt install -y libmysqlclient-dev
Y para PostgreSQL instalaríamos esto:
~$ sudo apt install -y libpq-dev
Base de datos
Redmine puede trabajar con algunos de los motores de bases de datos más usados en Ubuntu 20.04 LTS, así que vamos a ver cómo prepararlos.
MariaDB/MySQL
Conectamos al servicio con el cliente de consola mysql y un usuario administrador:
~$ mysql -u root -p
Creamos la base de datos para Redmine:
> create database redmine character set utf8mb4;
Creamos el usuario que gestionará dicha base:
> create user redmine@localhost identified by 'XXXXXXXX';
Y le concedemos permisos suficientes para administrarla:
> grant all privileges on redmine.* to redmine@localhost;
Ya podemos cerrar la sesión:
> exit
PostgreSQL
Creamos un rol con contraseña para Redmine:
~$ sudo -u postgres createuser -P redmine
Y creamos la base de datos asociándola al rol anterior:
~$ sudo -u postgres createdb redmine -O redmine
Archivos de Redmine
Vamos a crear un directorio en el sistema de archivos de Ubuntu 20.04 LTS para la ubicación definitiva de Redmine:
~$ sudo mkdir /opt/redmine
Descomprimimos el paquete que descargamos anteriormente en la nueva carpeta:
~$ sudo tar xf redmine-5.0.1.tar.gz -C /opt/redmine/
Como el nombre del subdirectorio que se acaba de crear contiene el número de versión, para facilitar la configuración y mantenimiento de la plataforma definiremos un enlace simbólico a dicho subdirectorio sin números de versión:
~$ sudo ln -s /opt/redmine/redmine-5.0.1/ /opt/redmine/redmine
Creamos el archivo de configuración de la conexión a la base de datos:
~$ sudo nano /opt/redmine/redmine/config/database.yml
Con el siguiente contenido, para el caso de MariaDB/MySQL:
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
O si trabajamos con PostgreSQL:
production: adapter: postgresql database: redmine host: localhost username: redmine password: "XXXXXXXX" encoding: utf8
Una vez guardado el archivo, cambiamos el directorio de trabajo a la carpeta de instalación de Redmine:
~$ cd /opt/redmine/redmine
Editamos el archivo de configuración de dependencias:
$ nano Gemfile
Buscamos las siguientes líneas:
... gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin] ... gem "ffi", platforms: [:mingw, :x64_mingw, :mswin] ...
Y las desactivamos añadiendo un carácter # al inicio de línea, ya que estas gemas no son necesarias para Ubuntu 20.04 LTS:
... #gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin] ... # gem "ffi", platforms: [:mingw, :x64_mingw, :mswin] ...
Guardamos el archivo y lanzamos la compilación de Redmine:
$ bundle install
Es posible que se solicite la contraseña del usuario con el que estamos trabajando para realizar algunos procesos de instalación a través de sudo.
Antes del siguiente paso hay que tener en cuenta que durante la instalación de dependencias de Redmine se instaló la gema Thor de Ruby desde los repositorios de la distribución, pero la versión de dicha gema no sirve, así que la elimiminaremos:
$ sudo dpkg -r --force-depends ruby-thor
Y compilaremos la última versión disponible:
$ sudo gem install thor
Ahora ya podemos generar la clave para cifrar las cookies de Redmine (proceso que requiere la citada gema):
$ bundle exec rake generate_secret_token
Inicializamos la base de datos:
$ RAILS_ENV=production bundle exec rake db:migrate
Y la cargamos con los datos por defecto:
$ RAILS_ENV=production bundle exec rake redmine:load_default_data
Se nos preguntará por el idioma, mostrándose una lista de las posibilidades, siendo ‘es‘ el que elegiremos en este tutorial para el idioma español.
En este momento ya está todo listo para realizar una prueba de Redmine lanzando un servidor desde consola.
Si queremos acceder a dicho servidor desde red y está habilitado el firewall UFW, habrá que añadir una regla para el puerto 3000/TCP:
$ sudo ufw allow 3000/tcp
Lanzamos el servidor de prueba:
$ bundle exec ruby /usr/bin/rails server -u webrick -e production
Para acceder desde un navegador indicaremos la dirección de la máquina Ubuntu 20.04 LTS (IP, nombre DNS, dominio, localhost si trabajamos localmente, etc.) añadiendo el puerto de conexión 3000.
Por ejemplo, la máquina Ubuntu 20.04 LTS que hemos usado para realizar este tutorial es accesible en el subdominio ubuntu2004.local.lan, así que podríamos conectar con http://ubuntu2004.local.lan:3000 como URL:
Podemos ver que la aplicación funciona correctamente, mostrándose en la consola desde la que hemos lanzado la prueba el registro de eventos a medida que interactuamos con Redmine:
... 192.168.***.*** - - [***] "GET / HTTP/1.1" 200 4983 - -> / 192.168.***.*** - - [***] "GET /stylesheets/tribute-5.1.3.css?1652739046 HTTP/1.1" 200 581 ...
Finalizamos la prueba y liberamos la consola con la combinación de teclas Control-C.
Ya podemos abandonar el directorio de Redmine:
$ cd
Servicio web
Para hacer funcionar Redmine integrado en el servicio web de la máquina Ubuntu 20.04 LTS el primer paso es conceder la propiedad de los archivos de la aplicación al usuario con el que corre el servicio, ya que Redmine debe poder escribir en su directorio de instalación:
~$ sudo chown -R www-data: /opt/redmine/redmine/
Ajustaremos correctamente los permisos de acceso para impedir que otros usuarios puedan modificar tales archivos:
~$ sudo chmod -R 755 /opt/redmine/redmine/{files,log,tmp,public/plugin_assets}
Crearemos un enlace simbólico a la aplicación desde el directorio principal del sitio web por defecto del servidor:
~$ sudo ln -s /opt/redmine/redmine/public/ /var/www/html/redmine
Necesitamos realizar un ajuste en el módulo Passenger de Apache, que es el que corre la aplicación dentro del servicio web:
~$ sudo nano /etc/apache2/mods-available/passenger.conf
Añadimos la directiva PassengerUser del siguiente modo:
<IfModule mod_passenger.c> ... PassengerUser www-data </IfModule>
Guardamos este archivo y editamos la configuración del sitio web por defecto:
~$ sudo nano /etc/apache2/sites-available/000-default.conf
Añadimos el siguiente bloque Directory para que Redmine pueda correr como aplicación integrada:
<VirtualHost *:80> ... DocumentRoot /var/www/html <Directory /var/www/html/redmine> RailsEnv production RailsBaseURI /redmine PassengerResolveSymlinksInDocumentRoot on Options -MultiViews </Directory> ... </VirtualHost> ...
Finalmente, guardamos este archivo y reiniciamos el servicio web para aplicar todas estas configuraciones:
~$ sudo systemctl restart apache2
Cómo acceder a Redmine en Ubuntu 20.04 LTS Focal Fossa
Con la aplicación ya lista para su uso, vamos a acceder a Redmine en Ubuntu 20.0 LTS desde un navegador, usando la URL definitiva que se construye añadiendo la ruta /redmine a la dirección del servidor (IP, nombre DNS, dominio, localhost, etc.).
Siguiendo con el ejemplo de este tutorial, si ubuntu2004.local.lan es la dirección del servidor, http://ubuntu2004.local.lan/redmine sería la URL de acceso:
Se mostrará la página de inicio de la aplicación que ya vimos en la prueba anteriormente realizada.
Podemo iniciar sesión en la plataforma siguiendo el enlace «Iniciar sesión» del menú de la barra superior:
El usuario administrador por defecto es admin y su contraseña también es admin.
Inmediatamente tras el inicio de sesión se nos requerirá el cambio de contraseña:
Facilitaremos la contraseña actual, la nueva contraseña y su confirmación. Si todo es correcto se habrá creado la nueva contraseña y se mostrará la página del perfil del usuario administrador, donde podríamos realizar más personalizaciones.
¡Ya está todo listo para empezar a trabajar con Redmine sobre Ubuntu 20.04 LTS Focal Fossa!
Conclusión
Ahora que sabes cómo instalar Redmine en Ubuntu 20.04 LTS Focal Fossa ya puedes trabajar con este potente gestor sobre tus propios proyectos, tanto en red local como desde Internet.
Si tienes alguna duda o pregunta, quieres realizar alguna sugerencia, notificar algún error, etc. puedes dejar un comentario. Los comentarios están moderados (para evitar el SPAM), pero se revisan prácticamente a diario.
¡Apoya comoinstalar.me!
¿Ya funciona esta plataforma en tu máquina? En tal caso, si quieres agradecérnoslo cualquier mínima contribución aporta mucho al mantenimiento de este sitio y la creación de más artículos y tutoriales.
Puedes ayudarnos dejando una propina de tan solo 1 $ desde PayPal:
O, si te sientes especialmente generoso, puedes invitarnos a un café:
¡Gracias!