Como instalar Redmine en Debian 12
¿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”.
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”.
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.
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.