Redmine es una aplicación web de código abierto para la gestión de proyectos y el seguimiento de problemas. Redmine se basa en Ruby on Rails Framework, tiene soporte multiplataforma y multibase de datos y viene con traducciones para 42 idiomas. El software le permite realizar un seguimiento de múltiples proyectos, integra noticias, gestión de documentos y archivos y un wiki de soporte por proyecto. Las cuentas de usuario se pueden autenticar en un directorio LDAP y el software de terceros se puede conectar a través de una API REST.
En este tutorial, instalaremos Redmine 3.2 con Nginx como servidor web, MySQL como servidor de base de datos en un sistema operativo CentOS 7 (64 bits).
Requisito previo
- CentOS 7:64 bits.
- Privilegios de raíz.
Paso 1 - Instalar las dependencias de Redmine
Redmine tiene muchas dependencias que instalaremos primero. Inicie sesión en su servidor CentOS 7 como usuario root:
ssh [email protected]
Instale todas las dependencias requeridas por Redmine y los paquetes necesarios para ruby y rvm con el siguiente comando yum:
yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion
La instalación le pedirá una contraseña de MySQL. Escriba su nueva contraseña raíz de MySQL cuando se le solicite.
Paso 2:instalar Ruby y RVM
En este paso, instalaremos rvm (última versión) y ruby 2.2. Redmine 3.2 es compatible con la versión 2.2 de Ruby. RVM (Ruby Version Manager) es una herramienta de línea de comandos que le permite instalar, administrar y trabajar con múltiples entornos Ruby en el mismo servidor.
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5
Cuando finalice la instalación, debemos recargar RVM y agregarlo al archivo .bashrc para la recarga automática:
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc
Vuelva a cargar el archivo .bashrc y verifique la versión de Ruby y RVM.
source ~/.bashrc
ruby -v
rvm -v
Paso 3:configurar la base de datos para Redmine
En este paso, instalaremos el paquete mysql-server desde el repositorio oficial de MySQL.
Agregue el repositorio Oracle MySQL y verifique la lista de repositorios.
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist
para asegurarse de que el repositorio del servidor MySQL se haya agregado correctamente.
Instale el servidor MySQL con este comando yum.
yum install mysql-server
Cuando finalice la instalación, inicie el servicio mysqld y configure la contraseña de root de MySQL.
systemctl start mysqld
Se ha iniciado el servidor Mysql. Ahora obtenga la contraseña raíz temporal para el servidor mysql con el siguiente comando grep:
grep 'temporary password' /var/log/mysqld.log
Verá un resultado similar a este:
2016-10-31T23:06:50.974555Z 1 [Note] A temporary password is generated for [email protected]: />y.)uWui8j*
Entonces sabemos que la contraseña raíz para el servidor MySQL es:/>y.)uWui8j*
Ahora estableceremos una nueva contraseña de root para el servidor mysql. Inicie sesión en mysql shell con el usuario root y la contraseña generada:
mysql -u root -p
GENERATED PASSWORD: />y.)uWui8j*
Establezca una nueva contraseña de usuario raíz con la siguiente consulta mysql:
ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]!';
A continuación, cree una nueva base de datos llamada "redmine" y cree un nuevo usuario 'redmine' con la contraseña 'redmine' (¡use una contraseña segura en su servidor aquí!). Luego otorgue todos los privilegios para el usuario a la base de datos 'redmine'.
create database redmine;
create user [email protected] identified by '[email protected]!';
grant all privileges on redmine.* to [email protected] identified by '[email protected]!';
flush privileges;
exit
Se han creado la base de datos y el usuario.
Paso 4:instalar Phusion Passenger y Nginx
Phusion Passenger es un servidor de aplicaciones web que se puede usar junto con apache y nginx. Soporta múltiples lenguajes:Ruby, Python y Nodejs. Es fácil para nosotros, rápido, puede manejar más tráfico y proporciona mejoras de seguridad.
En este capítulo, instalaremos Phusion Passenger y lo integraremos con nuestro servidor web nginx. Instale el pasajero con el comando de gema a continuación, luego ejecute el comando Passenger-nginx-module.
gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module
El comando le preguntará qué lenguaje de programación se utilizará, seleccione Ruby y Python .
Se le preguntará sobre la instalación de nginx; seleccione "Sí:descargue, compile e instale Nginx por mí. (recomendado) ".
Se le pedirá el directorio de instalación nginx, use el predeterminado '/opt/nginx/' , simplemente presione "Entrar ".
Paso 5:configurar Nginx
Cuando haya terminado la instalación de nginx, vaya al directorio de instalación y edite el archivo nginx.conf con un editor.
cd /opt/nginx/
cd conf/
vim nginx.conf
Pegue la siguiente configuración en la línea 24:
include vhost/*.conf;
Guarde el archivo y salga del editor.
Cree un nuevo directorio 'vhost' para la configuración del host virtual.
mkdir -p /opt/nginx/conf/vhost
Vaya al directorio vhost y cree la configuración de redmine virtualhost con vim:
cd /opt/nginx/conf/vhost/
vim redmine.conf
Pegue la configuración del host virtual a continuación:
server {
listen 80;
server_name www.redmine.me;
root /var/www/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
Guarde el archivo.
Ubuntu 16.04 usa systemd como sistema de inicio. A continuación, configuramos nginx para systemd. Vaya al directorio systemd y cree un nuevo archivo de servicio llamado 'nginx.service'.
cd /lib/systemd/system/
vim nginx.service
Pegue el script nginx para systemd a continuación:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Guardar y salir.
Vuelva a cargar el servicio systemd e intente iniciar nginx con el comando systemctl:
systemctl daemon-reload
systemctl start nginx
Si desea verificar nginx, verifique el puerto abierto 80:
netstat -plntu | grep nginx
El resultado debería ser así:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4871/nginx
Paso 6 - Instalar Redmine
Cree un nuevo directorio para la instalación de Redmine. Usaré el directorio '/var/www/' aquí.
mkdir -p /var/www/
Vaya al directorio '/var/www/' y descargue Redmine con el comando svn:
cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine
Vaya al directorio de Redmine y copie el archivo de configuración y el archivo de configuración de la base de datos:
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Edite el archivo base de datos.yml con vim:
vim config/database.yml
En la línea de la sección de producción, complete el nombre de la base de datos, usuario y contraseña:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "[email protected]!"
encoding: utf8
Guarde el archivo.
En el directorio de redmine, cree algunos directorios nuevos y cambie el propietario a usuario y grupo nadie:
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets
Instale el paquete y las dependencias de gemas para redmine:
gem install bundler
bundle install --without development test
Genere el token secreto, luego genere la base de datos:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
Reinicie nginx y visite el nombre de dominio de redmine con un navegador web:
systemctl restart nginx
Visite la instalación de redmine, la mía es:www.redmine.co
Inicie sesión en la página de administración:www.redmine.co/login
El usuario y la contraseña predeterminados son 'admin'.
Cree un nuevo proyecto de muestra.
Ejemplo de página de proyecto.
La instalación de Redmine con Nginx y MySQL en CentOS 7 ha sido exitosa.
Conclusión
Redmine es una aplicación web para la gestión de proyectos y el seguimiento de problemas. Redmine es multiplataforma, por lo que podemos ejecutarlo en Windows, Linux o Mac OS. Redmine tiene soporte para muchas bases de datos como MySQL, PostgreSQL, Microsoft SQL Server y SQLite. Redmine es fácil de instalar y configurar, podemos usar Apache o Nginx como servidor web. Redmine es muy potente y tiene muchas funciones, como compatibilidad con varios idiomas, administración de archivos, wiki y una API REST. Redmine es una de las mejores soluciones gratuitas si desea crear su propia gestión de proyectos con seguimiento de problemas.