Introducción
Redmine es una de las herramientas de software de gestión de proyectos y seguimiento de problemas de código abierto más populares. Es multiplataforma y de base de datos cruzada y se basa en el marco de Ruby on Rails.
Redmine incluye soporte para múltiples proyectos, wikis, sistema de seguimiento de problemas, foros, calendarios, notificaciones por correo electrónico y mucho más.
Este tutorial describe cómo instalar y configurar la última versión de Redmine en un servidor Ubuntu 18.04 usando MySQL como el backend de la base de datos y Passenger + Nginx como el servidor de aplicaciones Ruby.
Prerrequisitos
Asegúrese de haber cumplido los siguientes requisitos previos antes de continuar con este tutorial:
- Tiene un nombre de dominio que apunta a la IP pública de su servidor. En este tutorial usaremos
example.com
. - Ha iniciado sesión como usuario con privilegios de sudo.
- Ha instalado Nginx siguiendo estas instrucciones.
- Tiene un certificado SSL instalado para su dominio. Puede instalar un certificado SSL Let's Encrypt gratuito siguiendo estas instrucciones.
Si desea instalar Redmine en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Crea una base de datos MySQL
Redmine es compatible con MySQL /MariaDB, Microsoft SQL Server, SQLite 3 y PostgreSQL. En este tutorial usaremos MySQL como el backend de la base de datos.
Si aún no ha instalado MySQL en su servidor Ubuntu, puede instalarlo siguiendo estas instrucciones.
Inicie sesión en el shell de MySQL escribiendo el siguiente comando:
sudo mysql
O si ha establecido una contraseña para el usuario root, use el siguiente comando para iniciar sesión en MySQL shel:
sudo mysql -u root -p
Desde dentro del shell de MySQL, ejecute la siguiente declaración SQL para crear una nueva base de datos:
CREATE DATABASE redmine CHARACTER SET utf8mb4;
A continuación, cree una cuenta de usuario de MySQL y otorgue acceso a la base de datos:
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Asegúrese de cambiar change-with-strong-password
por una contraseña segura.
Una vez hecho esto, salga de la consola mysql escribiendo:
EXIT;
Instalar Ruby
La forma más sencilla de instalar Ruby en su sistema Ubuntu es a través del administrador de paquetes apt
En el momento de escribir estas líneas, la versión en los repositorios de Ubuntu es 2.5.1, que es la última versión estable de Ruby.
Instale Ruby escribiendo:
sudo apt install ruby-full
Instalar Passenger y Nginx
Passenger es un servidor de aplicaciones web rápido y ligero para Ruby, Node.js y Python que se puede integrar con Apache y Nginx. Instalaremos Passenger como módulo Nginx.
Asegúrese de haber seguido los requisitos previos e instalado Nginx antes de continuar con los siguientes pasos.
Empiece por instalar los paquetes necesarios:
sudo apt install dirmngr gnupg apt-transport-https ca-certificates
Importe la clave GPG del repositorio y habilite el repositorio Phusionpassenger:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7
sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main'
Una vez que el repositorio apt esté habilitado, actualice la lista de paquetes e instale el módulo Nginx Passenger con:
sudo apt update
sudo apt install libnginx-mod-http-passenger
Instalar Redmine en Ubuntu
Comenzaremos instalando las dependencias necesarias para construir Redmine:
sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev
En el momento de escribir estas líneas, la última versión estable de Redmine es la versión 4.1.0.
Antes de continuar con el siguiente paso, debe consultar la página de descarga de Redmine para ver si hay una versión más nueva disponible.
Descarga de Redmine
Descarga el archivo de Redmine con el siguiente comando curl:
sudo curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o /tmp/redmine.tar.gz
Una vez que se complete la descarga, extraiga el archivo y muévalo al directorio /opt
cd /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-4.1.0 /opt/redmine
Configurar la base de datos de Redmine
Comience copiando el archivo de configuración de muestra de Redmine:
sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
Abra el archivo con su editor de texto:
sudo nano /opt/redmine/config/database.yml
Busque la production
e ingrese la base de datos MySQL y la información del usuario que creamos anteriormente:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8
Una vez hecho esto, guarde el archivo y salga del editor.
Instalar dependencias de Ruby
Vaya al directorio redmine e instale el paquete y otras dependencias de Ruby:
cd /opt/redmine/
sudo gem install bundler --no-rdoc --no-ri
sudo bundle install --without development test postgresql sqlite
Generar claves y migrar la base de datos
Ejecute el siguiente comando para generar claves y migrar la base de datos:
cd /opt/redmine/
sudo bundle exec rake generate_secret_token
sudo RAILS_ENV=production bundle exec rake db:migrate
Establecer los permisos correctos
Nginx funciona como usuario y grupo de www-data
Establezca los permisos correctos emitiendo el siguiente comando chown:
sudo chown -R www-data: /opt/redmine/
Configurar Nginx
A estas alturas, ya debería tener Nginx con certificado SSL instalado en su sistema; de lo contrario, verifique los requisitos previos para este tutorial.
Ahora necesita configurar Nginx para que sirva a Redmine, preste atención para agregar correctamente los siguientes parámetros passenger_enabled on;
y passenger_min_instances 1;
.
Abra su editor de texto y cree /edite el siguiente archivo de bloqueo del servidor Nginx así:
sudo nano /etc/nginx/sites-available/example.com
server {
root /opt/redmine/public;
index index.html;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
server {
if ($host = www.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 404; # managed by Certbot
}
No olvide reemplazar example.com
con su dominio de Redmine y establecer la ruta correcta para los archivos del certificado SSL. Todas las solicitudes HTTP serán redirigidas a HTTPS.
Habilite el bloqueo del servidor creando un enlace simbólico al directorio sites-enabled
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Antes de reiniciar el servicio Nginx, pruebe para asegurarse de que no haya errores de sintaxis:
sudo nginx -t
Si no hay errores, la salida debería verse así:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Finalmente, reinicie el servicio Nginx escribiendo:
sudo systemctl restart nginx
Iniciar sesión en Redmine
Abra su navegador, escriba su dominio y, suponiendo que la instalación se haya realizado correctamente, aparecerá una pantalla de inicio de sesión.
Las credenciales de inicio de sesión predeterminadas para Redmine son:
- Nombre de usuario: admin
- Contraseña: admin
Cuando inicie sesión por primera vez, se le pedirá que cambie su contraseña.
Después de cambiar su contraseña, será redirigido a la página de la cuenta de usuario.
Conclusión
Redmine se ha instalado con éxito en el sistema Ubuntu. Ahora debería consultar la documentación de Redmine y obtener más información sobre cómo configurar y utilizar Redmine.