Gestión de proyectos con OpenProject

openproject-dsing-800

La gestión de proyectos en las empresas e incluso para los trabajadores autónomos es clave. OpenProject es un sistema de gestión de proyectos que funciona a través de la web, que de ésta manera permite a múltiples usuarios, independientemente de su localización, participar y gestionar los proyectos. OpenProject es software libre, utiliza la Licencia Pública General GNU, y sus desarrollo es continuo desde la comunidad.


¿Qué ofrece OpenProject?

  • Gestión de proyectos
  • Gestión de problemas e incidencias
  • Plazos de los proyectos
  • Wiki
  • Gestión documental
  • Foro
  • Muchas otras características

¿Quién hay detrás de OpenProject?

La Fundación OpenProject se creó en el año 2012. La fundación ofrece un marco organizativo y técnico, ya que gran parte desarrollo se realiza desde una comunidad a nivel mundial.

 

¿Cómo lo instalamos en un servidor GNU/Linux?

Para el artículo he usado un servidor Ubuntu Server 14.04, antes de instalar el software debemos de cumplir con los requisitos, que son:

  • Ruby 2.1.0
  • Git
  • Bundler
  • Base de datos MySQL 5.x o PostgreSQL 8.x

Instalamos los paquetes:

  1. apt-get install git curl

Las dependencias necesarias para las gems de Ruby:

  1. apt-get install build-essential libxslt-dev libxml2-dev libmysql-ruby libmysqlclient-dev libpq-dev libsqlite3-dev libyaml-0-2

Habilitamos OpenProject para generar imágenes:

  1. apt-get install libmagickwand-dev libmagickcore-dev libmagickcore4-extra libgraphviz-dev libgvc5

Instalamos el servidor MySQL (la otra alternativa es usar PostgreSQL)

  1. sudo apt-get install mysql-server

Nos pedirá de crear una contraseña de root para el servidor de base de datos:

openproject-captura-1

Instalamos el servidor de caché memched, no es obligatorio pero si recomendable para entornos en producción.

  1. sudo apt-get install memcached

Creamos usuario y grupo openproject

Se recomienda un usuario y grupo separado para openproject, sobre todo en entornos de producción, no sería necesario para un entorno de desarrollo o test.

  1. groupadd openproject
  2. useradd --create-home --gid openproject openproject
  3. passwd openproject # (la contraseña que queramos)

A partir de éste punto continuaremos la instalación con el usuario openproject recién creado. De ésta manera todos los ficheros y directorios creados serán asignados a éste usuario.

  1. su openproject -c "bash -l"

Accedemos al directorio de trabajo del usuario.

  1. cd ~

 

Instalamos Ruby Version Manager (RVM)

Nos permitirá trabajar con diferentes versiones de Ruby.

  1. gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
  1. curl -L https://get.rvm.io | bash -s stable
  2. source $HOME/.rvm/scripts/rvm

Nos resultará algo similar a la siguiente imagen:

 

openproject-captura-2

 

Instalamos Ruby usando RVM

Deshabilitamos rvm autolibs, ya que no necesitamos privilegios para instalar Ruby.

  1. rvm autolibs disable
  2. rvm install 2.1.0

Instalamos Bundler

  1. gem install bundler

Verificamos la instalación comprobando la versión:

  1. bundle --version

 

Clonamos el repositorio OpenProject

  1. git clone https://github.com/opf/openproject.git
  2. cd openproject
  3. git checkout stable

 

Iniciamos Bundler para instalar todas las gemas

  1. bundle install

o el siguiente comando si no instalamos rmagick

  1. bundle install --without rmagick

Al terminar la instalación veremos la siguiente imagen:

 

openproject-captura-3

Esto significa que todo ha ido bien hasta aquí.

 

Configuramos la base de datos con MySQL

Creamos base de datos y datos de usuario:

  1. CREATE DATABASE openproject CHARACTER SET utf8;
  2. CREATE USER 'openproject'@'localhost' IDENTIFIED BY 'my_password';
  3. GRANT ALL PRIVILEGES ON openproject.* TO 'openproject'@'localhost';

 

Debemos de crear también la base de datos openproject_development y openproject_test, asignado los privilegios al usuario openproject.

Configuramos OpenProject

Copiamos config/database.yml.example a config/database.yml

Edita database.yml, con el nombre de la base de datos y las credenciales.

Tenemos que crear una cuenta de correo para los avisos de openproject. En el ejemplo está usando una cuenta de gmail.

Copiamos config/configuration.yml.exaple a config/configuracion.yml

Editamos el archivo con una configuración similar a la siguiente:

  1. # default configuration options for all environments
  2. default:
  3.   # Outgoing emails configuration (see examples above)
  4.   email_delivery:
  5.     delivery_method: :smtp
  6.     perform_deliveries: true
  7.     smtp_settings:
  8.       address: smtp.gmail.com
  9.       port: 587
  10.       enable_starttls_auto: true
  11.       domain: "gmail.com" 
  12.       authentication: :login
  13.       user_name: "yourgmailaccountname”
  14.       password: "yourpassword"

Añadimos la línea:

enable_starttls_auto: true

Habilitamos memcached:

  1. rails_cache_store: :memcache

Creamos las bases de datos:

  1. bundle exec rake db:create:all

Nos dirá que las bases de datos ya existen.

 

Instalando Plugins (opcional)

Crearemos un fichero llamado Gemfile.plugins y en él añadiremos los plugins que queramos utilizar. (Más info)

  1. nano Gemfile.plugins
  2. gem "openproject-plugins", "~> 1.0.2", :branch => 'stable'

Instalamos el plugin:

  1. bundle install

 

Arrancamos OpenProject

Para iniciar el servicio lo haremos con el comando:

  1. bundle exec rails server

Ya nos podemos ir a nuestro navegador, y escribir http://localhost:3000

El usuario y contraseña por defecto son admin.

Y ya lo tenemos funcionando:

openproject-captura-5

En la próxima parte instalaremos el módulo passenger, que junto con Apache2 nos permitirá usar OpenProject a través del puerto 80.

See you soon!