Instalación y configuración de OpenProject

Openproject se instala según la guía de instalación manual con las siguientes adaptaciones:

  • El nuevo usuario openlayers usa por defecto el shell bash
  • Se usa base de datos PostgreSQL a vez de MySQL
  • El idioma por defecto en la base de datos es español
  • Se corrigen dos errores: (i) la carpeta assets con los logos e iconos no es accesible a través de passenger y (ii) la ruta mostrado de passenger installado en la configuración de apache2 no es correcta y apache2 no arranqua.

Ojo, no es una guía de instalación completa sino se listan únicamente los cambios con respecto al manual de instalación oficial.

Instalación de paquetes necesarios

sudo apt-get install zlib1g-dev build-essential libssl-dev \
libreadline-dev libyaml-dev libgdbm-dev libncurses5-dev automake \
imagemagick libmagickcore-dev libmagickwand-dev libtool bison \
libffi-dev git curl libxml2 libxml2-dev libxslt1-dev libpq-dev \
libcurl4-gnutls-dev apache2-threaded-dev sqlite3 libsqlite3-dev

Usuario openproject y bash

  • Después de haber creado el usuario linux login como openproject
  • cambiar el shell por defecto a /bin/bash con el comando chsh
  • y a vez de añadir durante toda la instalación PATH a ~/.profile añadirlos a ~/.bashrc

PostgreSQL

  • Usar PostgreSQL a vez de instalar MySQL
  • El usuario y la base de datos PostgreSQL se crea de la siguiente manera:
    CREATE ROLE openproject LOGIN;
    ALTER ROLE openproject WITH PASSWORD 'XXX';
    CREATE DATABASE openproject OWNER openproject ENCODING 'UTF-8';

Instalar OpenProject

  • Al instalar Openproject se ejecuta el siguiente comando:
    bundle install --deployment --without mysql2 sqlite development test therubyracer
  • La configuración de la base de datos postgresql en config/database.yml es la siguiente:
    production:
      adapter: postgresql
      database: openproject
      host: localhost
      username: openproject
      password: CONTRASEÑA
      encoding: utf8  
  • Al cargar los datos por defecto en la base de datos especificar el lenguaje por defecto español
    RAILS_ENV="production" LOCALE=es ./bin/rake db:seed

Servir OpenProject con Apache2 y Passenger

  • Requiere los módulos headers y expires
    a2enmod headers
    a2enmod expires
  • Al archivo /etc/apache2/sites-available/default-ssl.conf se añade el siguiente apartado después de la entrada del directorio /var/www/html
     
    Alias /proyectos /home/openproject/openproject-ce/public
    <Location /proyectos>
      PassengerBaseURI /proyectos
      PassengerAppRoot /home/openproject/openproject-ce
    </Location>
    <Directory /home/openproject/openproject-ce/public>
      AllowOverride all
      RailsEnv production
      RailsBaseUri /proyectos
      Options -MultiViews +Includes +FollowSymlinks +Indexes
      PassengerResolveSymlinksInDocumentRoot on
      Require all granted
    </Directory>
    
    Alias /assets /home/openproject/openproject-ce/public/assets
    <Location /assets>
      ExpiresActive On
      ExpiresDefault "access plus 1 year"
    </Location>