Redmine 2.1.0 en Ubuntu 12.04, Canaima o Debian 6 con Apache2 y PostgreSQL

Redmine es una herramienta para la gestión de proyectos que incluye un sistema de seguimiento de incidentes con seguimiento de errores. Otras herramientas que incluye son calendario de actividades, diagramas de Gantt para la representación visual de la línea del tiempo de los proyectos, wiki, foro, visor del repositorio de control de versiones, RSS, control de flujo de trabajo basado en roles, integración con correo electrónico.

rdm-gantt

http://en.wikipedia.org/wiki/WEBrick

Redmine por defecto utiliza como servidor http, webrick y como base de datos MySQL. Es bastante fácil montarlo así, mas adelante veremos por qué no montarlo de esta manera.

Primero que nada instalamos los paquetes necesarios:

apt-get install ruby rubygems libruby libapache2-mod-passenger

Descargamos RedMine 2.1.0

wget http://rubyforge.org/frs/download.php/76448/redmine-2.1.0.tar.gz

Instalamos otras dependencias

apt-get install libmagickcore-dev libmagickwand-d

Ahora bien, vamos a instalar la primera gema, llamada bundler, esta se encarga de instalar todas las gemas que necesite nuestro proyecto.

gem install bundler

Nos movemos al directorio donde este ubicado Redmine

cd /directorio/redmine/

Ahora ya dentro del directorio de Redmine ejecutamos la gema bundler, para que nos descargue e instale todas las gemas que necesite Redmine.

En Debian: /var/lib/gems/1.8/bin/bundle install –without development test postgresql sqlite

En Ubuntu: bundle install –without development test postgresql sqlite

Ahora bien, a partir de development test, estamos omitiendo la instalación de los adaptadores para la base de datos, como a nosotros nos interesa instalar Redmine en Postgresql lo quitamos de la linea y agregamos otro que queramos omitir, como por ejemplo MySQL. Nuestro código queda así:

bundle install --without development test mysql sqlite

Ahora entramos a la carpeta config:

cd config
cp database.yml.example database.yml
nano database.yml

Configuramos los datos de conexión

echo “production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: password
encoding: utf8

Ejecutamos en la consola

rake generate_secret_token

Creamos la estructura de la base de datos.

RAILS_ENV=production rake db:migrate

Insertamos el contenido a nuestra base de datos.

RAILS_ENV=production rake redmine:load_default_data

Levantamos el servidor.

ruby script/rails server webrick -e production

Vamos a http://localhost:3000/

Cuenta de administración
login: admin
password: admin

Estas instrucciones son validas para Debian y Canaima, solo se deben adaptar.

Hasta aquí Redmine esta levantado, pero levantado con Webrick este servidor da como resultado, solicitudes y consultas del sistema a un tiempo muy lento. Por tal motivo decidimos cambiar de servidor a Apache2.

Redmine Apache2

Primero que nada, todos los pasos que se realizaron anteriormente. no se deben descartar, simplemente vamos a adaptar el Redmine a Apache.

passenger-install-apache2-module

Asignamos algunos permisos al Redmine, como ya saben Apache trabaja con el usuario y el grupo www-data

chown -R www-data:www-data files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Creamos un enlace simbólico

ln -s /directorio donde este redmine/redmine-2.1.0/public/ /var/www/redmine

Editamos: /etc/apache2/httpd.conf y agregamos las siguientes lineas:

RailsEnv production
RailsBaseURI /redmine

Hasta aquí puede que este bien, en mi caso tuve problema con el enrutamiento y se soluciono así:

Nos movemos a la dirección:

cd /etc/apache2/sites-enabled

Editamos el archivo 000default

nano 000-default

Agregamos:

Alias /redmine “/var/www/redmine-2.1.0/public/”
<Directory “/var/www/redmine-2.1.0/public/”>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order deny,allow
allow from all
</Directory>

Explico las lineas

Alias /redmine = nombre de nuestro alias tiene que ser igual al que le asignamos RailsBaseURI en /etc/apache2/httpd.conf
“/var/www/redmine2.1.0/
public/” = Direccion del redmine en tu servidor
Así al pedir localhost/redmine sera ejecutado desde apache y no desde Webrick, fíjense ya el redmine no sale por el puerto 3000

Todo un éxito las paginas cargan en micro segundos.

Como complemento. para visualizar las paginas que estemos usando con passenger

passenger-memory-stats

————– Passenger processes ————–
PID   VMSize   Private   Name
——————————————————
30091 47.8 MB 9.3 MB Passenger spawn server
30158 283.6 MB 115.1 MB Rails: /var/www/gitorious
30613 315.6 MB 133.6 MB Rails: /home/xxxx/org
### Processes: 3
### Total private dirty RSS: 258.02 MB

En mi caso descomprimí redmine y lo renombre con “org”

Listo redmine, funcionando con apache2

Configuracion del servicio smtp

La gran ventaja que tiene redmine es su herramienta de notificaciones por correo. Para activar esta cualidad  debemos seguir los siguientes pasos que nos van a permitir  usar nuestra cuenta gmail como correo de notificaciones del redmine

Nos ubicamos en el directorio de redmine.

cd config

Ahora bien compiamos el archivo configuration.yml.example de esta manera

cp configuration.yml.example configuration.yml

Editamos el archivo

nano configuration.yml

Ahora configuramos dicho archivo. Aqui una configuración valida que funciona.

Personalmente esta función de notificaciones es un punto importante del Redmine, ya que permite poner al tanto al grupo de trabajo de lo que sucede, en tiempo real.
production:
       email_delivery:
         delivery_method: :smtp
       smtp_settings:
         enable_starttls_auto: true
         address: "smtp.gmail.com"
         port: '587'
         domain: "smtp.gmail.com"
         authentication: :plain
         user_name: "xxxx@gmail.com"
         password: "xxxx"
 OJO Importante los espacios en el archivo.

Instalacion de Plugins ejemplo con «Plugin People»

Plugin People

  • Avatares para los usuarios locales
  • Lista de usuarios global con ACL flexible
  • Implementos para los usuarios
  • Persona VCF exportación
  • Cumpleaños lista Siguiente
  • Nueva lista de personas

Descomprimir el plugin en plugins/ folder

Ejecutar:

bundle install --without sqlite mysql

rake redmine:plugins NAME=redmine_people RAILS_ENV=production

http://redminecrm.com/projects/people/pages/1

Comandos de Ruby

Un extra, por si acaso tenemos problemas con las gemas. «-v» = version

Eliminar todas las gemas

gem list | cut -d" " -f1 | xargs sudo gem uninstall -aIx

Eliminar una gema

gem uninstall

gem uninstall -v

Instalar una gema

gem install

gem install -v

Ver todas las gemas instaladas

gem list

Fuentes