1. Grupo de Investigación y Desarrollo de
Tecnologías de la Información
OpenProject
Manual de Instalación
2. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 2 de 18
Historial de Cambios
Versión Fecha Descripción cambios Responsable(s)
1.0.0.0 Contenido Coronado, C.
1.0.0.1 14 Julio 2016
Configuración Información de
OpenProject
Verdugo, S.
1.0.0.2 15 Julio 2016
Correción Instalación Open
Project
Verdugo, S.
1.0.0.3 18 Julio 2016
Correción Instalación Open
Project
Verdugo, S.
1.0.0.4 27 Julio 2016 Nota Archivo database.yml Verdugo, S.
1.0.0.5 27 Julio 2016
Configuración correcta
configuration.yml para utilizar
correo funcional
Verdugo, S.
Tabla: Cuadro historial de versiones
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
3. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 3 de 18
Tabla de Contenido
1. Aviso Legal
Alcance
Procedimiento de Instalación
Caracterización del Procedimiento
Paso 1: Crear un usuario específico para OpenProject.
Paso 2: Instalar herramientas requeridas para el proceso de instalación
Paso 3: Instalar Node.js
nano Paso 3: Instalar soporte para Ruby
Paso 3: Instalar soporte para Node
Paso 4: Instalar OpenProject
Paso 5: Configurar OpenProject con PostgreSQL
Insertando los parámetros de configuración correspondientes al ambiente de
producción:
Insertando los parámetros de configuración correspondientes al ambiente de
Pruebas:
Insertando los parámetros de configuración correspondientes al ambiente de
Desarrollo:
Paso 6: Configurar Informacion OpenProject
Insertando los parámetros de configuración correspondientes al ambiente de
producción:
Insertando los parámetros de configuración correspondientes al ambiente de
Pruebas:
Insertando los parámetros de configuración correspondientes al ambiente de
Desarrollo:
Paso 7: Instalación Final OpenProject
Licencia
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
4. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 4 de 18
1. Aviso Legal
Esta obra es una adaptación realizada por Zeety S.A.S, de la información que se encuentra
consignada en la página web del fabricante original de la aplicación.
Alcance
Los procedimientos aplican para instalación manual de openproject en distribuciones basadas
en Red Hat/Centos y Fedora, teniendo como base de datos postgresql en un nodo remoto.
Procedimiento de Instalación
Para la instalación de OpenProject, se debe ejecutar el procedimiento descrito a continuación:
1. Crear un usuario específico para openproject
2. Instalar herramientas requeridas para el proceso de instalación
3. Instalar soporte para Ruby
4. Instalar soporte para Node
5. Instalar OpenProject
Caracterización del Procedimiento
Paso 1: Crear un usuario específico para OpenProject.
Desde la consola:
$ sudo groupadd openproject
$ sudo useradd --create-home --gid openproject openproject
$ sudo passwd openproject
Paso 2: Instalar herramientas requeridas para el proceso de instalación (Desde
Consola)
Instalar las herramientas de desarrollo:
$ sudo yum groupinstall 'Development Tools'
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
5. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 5 de 18
Instalar los siguientes paquetes requeridos
$ sudo yum install postgresql.x86_64 postgresql-devel.x86_64
openssl-devel readline-devel zlib-devel ImageMagick.x86_64
ImageMagick-perl.x86_64 ImageMagick-c++-devel.x86_64
ImageMagick-devel.x86_64 ImageMagick-c++.x86_64 memcached-devel.x86_64
libmemcached-devel.x86_64 libmemcached.x86_64 libmemcached.x86_64
mysql-devel
Paso 3: Instalar Node.js
Instalar pip, se debe ejecutar como root :
$curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
$python get-pip.py
$pip install nodeenv
Paso 3: Instalar soporte para Ruby
Las instrucciones hacen uso de la herramienta rbenv.
Desde la consola, ingresar con el usuario openproject:
$su openproject --login
Clonar el repositorio de renv:
$git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
6. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 6 de 18
Registrar la variables de entorno:
Ejecutar en la terminal que modifica el archivo bash_profile del perfil openproject.
$echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$source ~/.bash_profile
Clonar el repositorio principal:
$git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Instalar Ruby:
$rbenv install 2.3.0
$rbenv rehash
$rbenv global 2.3.0
Nota
Al momento de escribir el manual la versión estable del lenguaje era la 2.3.0. En caso de que
esto haya cambiado al momento de ejecutar el procedimiento, reemplazar dicho valor por la
versión correspondiente.
Verificar que la instalación haya sido satisfactoria. Desde consola:
$ruby --version
Paso 3: Instalar soporte para Node
Node se utiliza para gestionar múltiples versiones de NodeJS. Las instrucciones hacen uso de
la herramienta nodenv.
Desde la consola, ingresar con el usuario openproject:
$su openproject --login
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
7. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 7 de 18
Clonar el repositorio de nodenv:
$ git clone https://github.com/OiNutter/nodenv.git ~/.nodenv
Registrar la variables de entorno:
Ejecutar en una terminal que modifica el archivo el .bash_profile del perfil openproject
$echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
$echo 'eval "$(nodenv init -)"' >> ~/.bash_profile
$source ~/.bash_profile
Clonar el repositorio principal:
$git clone git://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build
Instalar node:
$nodenv install 0.12.7
$nodenv rehash
$nodenv global 0.12.7
Nota
Al momento de escribir el manual la versión estable era la 0.12.7. En caso de que esto haya
cambiado al momento de ejecutar el procedimiento, reemplazar dicho valor por la versión
correspondiente.
Verificar que la instalación haya sido satisfactoria. Desde consola:
$node --version
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
8. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 8 de 18
Paso 4: Instalar OpenProject
OpenProject ofrece dos repositorios principales:
● Solo el núcleo de la aplicación
● Núcleo de aplicación y los diferentes plugins disponibles. Este último conocido como
openProject Edición Comunitaria.
Se recomienda instalar la edición comunitaria. Desde la consola, ingresar con el usuario
openproject y asegurarse que está en la carpeta raíz del usuario:
$su openproject --login
$cd ~
Clonar el repositorio de OpenProject Edició Comunitaria:
$git clone https://github.com/opf/openproject-ce.git --branch stable/5 --depth 1
Ingresar a la carpeta de los fuentes:
$cd openproject-ce
Instalar OpenProject:
$gem install bundler
$gem install rmagick -v '2.15.4'
$gem install mysql2 -v '0.3.20'
$gem install activerecord
$bundle install --deployment --without mysql postgres sqlite development test
therubyracer docker
$npm install -g bower
$npm install
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
9. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 9 de 18
Paso 5: Configurar OpenProject con PostgreSQL
Crear Usuario openProject y creación de las Bases de Datos que soportan openProject.
$su - postgres
$psql -U postgres
postgres=#CREATE ROLE openproject LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT
VALID UNTIL 'infinity';
postgres=#ALTER ROLE openproject WITH CREATEDB;
postgres=#q
$exit
Crear y configurar el archivo de configuración config/database.yml:
$cd openproject-ce
$cp config/database.yml.example config/database.yml
Editar el archivo database.yml
$nano config/database.yml
Nota : Comentar todas la líneas correspondientes production, development, test
antes de agregar.
Insertando los parámetros de configuración correspondientes al ambiente de
producción:
production:
adapter: postgresql
database: openproject
host: <dirección del host>
username: openproject
port:5432
pool: 5
password: mypassword
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
10. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 10 de 18
encoding: utf8
Insertando los parámetros de configuración correspondientes al ambiente de Pruebas:
test:
adapter: postgresql
database: openproject_test
host: <dirección del host>
username: openproject
password: mypassword
port:5432
pool: 5
encoding: utf8
Insertando los parámetros de configuración correspondientes al ambiente de
Desarrollo:
development:
adapter: postgresql
database: openproject_development
host: <dirección del host>
username: openproject
password: mypassword
port:5432
pool: 5
encoding: utf8
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
11. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 11 de 18
Paso 6: Configurar Informacion OpenProject
Crear y configurar el archivo de configuración config/configuration.yml;
$cd openproject-ce
$cp config/configuration.yml.example config/configuration.yml
Editar el archivo configuration.yml
$nano config/configuration.yml
Modificar la linea :
development:
email_delivery_method: :letter_opener
Por :
development:
email_delivery_method: :smtp
Cambiamos la configuración default del correo :
default:
# Outgoing emails configuration (see examples above)
email_delivery_method: :smtp
smtp_address: smtp.example.net
smtp_port: 25
smtp_domain: example.net
smtp_authentication: :login
smtp_user_name: "openproject@example.net"
smtp_password: "my_openproject_password"
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
12. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 12 de 18
Por :
default:
# Outgoing emails configuration (see examples above)
email_delivery_method: :smtp
smtp_address: smtp.gmail.com
smtp_port: 587
smtp_domain: smtp.gmail.com
smtp_user_name: *********@gmail.com
smtp_password: *********
smtp_enable_starttls_auto: true
smtp_authentication: plain
Insertando al final del archivo los parámetros de configuración correspondientes al
ambiente de producción:
production: #main level
email_delivery_method: :smtp #settings for the production
environment
smtp_address: smtp.gmail.com
smtp_port: 587
smtp_domain: smtp.gmail.com
smtp_user_name: *********@gmail.com
smtp_password: *********
smtp_enable_starttls_auto: true
smtp_authentication: plain
Para un mejor desempeño de Open Project agregar la linea al final del archivo
configuration.yml :
rails_cache_store: :memcache
Paso 7: Instalación Final OpenProject
Editar el archivo Gemfile.
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
13. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 13 de 18
$ su openproject --login
$cd openproject-ce
$nano Gemfile
Agregar las siguientes líneas dependiendo del entorno a trabajar.
# Entorno de Desarrollo
group :development do
gem 'pg', '~> 0.18.3'
end
# Entorno de Producción
group :production do
gem 'pg', '~> 0.18.3'
end
#Entorno de Pruebas
group :test do
gem 'pg', '~> 0.18.3'
end
Ejecutar posteriormente
$su openproject --login
$cd openproject-ce
$bundle install
Ejecutar como usuario OpenProject , dependiendo del entorno “production” , ”test” y
“development”.
$cd ~/openproject-ce
$RAILS_ENV="development" ./bin/rake db:create
$RAILS_ENV="development" ./bin/rake db:migrate
$RAILS_ENV="development" ./bin/rake db:seed
$RAILS_ENV="development" ./bin/rake assets:precompile
Configuración del idioma en español
RAILS_ENV="development" LOCALE=es ./bin/rake db:seed
En caso de Entorno de Producción:
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
14. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 14 de 18
$echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.bash_profile
$source ~/.bash_profile
Instalación de Apache and Passenger como usuario normal.
$sudo yum install httpd apr-devel apr-util-devel httpd-devel libcurl-devel -y
$sudo firewall-cmd --permanent --add-service=http
$sudo firewall-cmd --permanent --add-service=https
$sudo firewall-cmd --permanent --add-service=smtp
$sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
$sudo systemctl enable firewalld
$sudo firewall-cmd --reload
$sudo chmod o+x "/home/openproject"
$sudo curl https://install.meteor.com | /bin/sh
$su openproject --login
$cd ~/openproject-ce
$npm install -g meteorite
$gem install passenger
$bundle install
$passenger-install-apache2-module
Ejecutar Como Usuario Normal
sudo nano /etc/httpd/conf.d/passenger.conf
Agregamos las siguientes líneas:
LoadModule passenger_module
/home/openproject/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/passenger-5.0.29/bui
ldout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot
/home/openproject/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/passenger-5.0.29
PassengerDefaultRuby /home/openproject/.rbenv/versions/2.3.0/bin/ruby
</IfModule>
Permisos sobre el SELINUX con un usuario con suficientes permisos:
$sudo setsebool -P httpd_read_user_content 1
$sudo grep httpd /var/log/audit/audit.log | audit2allow -M mypol
$sudo
$sudo setsebool -P httpd_run_stickshift 1
$sudo grep httpd /var/log/audit/audit.log | audit2allow -M mypol
$sudo semodule -i mypol.pp
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
15. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 15 de 18
Crear los directorios sites-available y sites-enabled :
$cd /etc/httpd/
$sudo mkdir sites-available
$sudo mkdir sites-enabled
Crear archivo openproject.conf con un usuario normal :
$sudo nano /etc/httpd/sites-available/openproject.conf
Agregar las siguientes líneas :
SetEnv EXECJS_RUNTIME Disabled
<VirtualHost *:80>
ServerName OpenProjetZetty.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /home/openproject/openproject-ce/public
<Directory /home/openproject/openproject-ce/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
Require all granted
</Directory>
# Request browser to cache assets
<Location /assets/>
ExpiresActive On ExpiresDefault "access plus 1 year"
</Location>
</VirtualHost>
Creamos un enlace simbólico:
$sudo ln -s /etc/httpd/sites-available/openproject.conf /etc/httpd/sites-enabled/openproject.conf
Reiniciar el Servidor apache con un usuario Normal:
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
16. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 16 de 18
$ sudo systemctl restart httpd.service
Y Lanzar la Aplicación ejecutando el passenger con el usuario openproject
$su openproject --login
$cd openproject-ce
$passenger start
Dirigirse al navegador y colocar la siguiente dirección http//:<ip_equipo>:3000 o
http://<ServerName_configuracion_openproject.conf_de apache>:3000
Las credenciales predeterminadas son usuario: admin y password: admin.
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
17. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 17 de 18
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información
18. COMMUNITY - COMPONENTE GESTIÓN
DE PROYECTOS
ID: Ver:
1.0.0.0
OpenProject - Manual de Instalación Pág 18 de 18
Licencia
Grupo de Investigación y Desarrollo de
Tecnologías de la Información
Los contenidos originales de Zeety S.A.S en esta obra, se distribuyen bajo una Licencia Creative
Commons Atribución-Compartir Igual 3.0 Unported.
Atribución – Compartir igual.
De conformidad a esta licencia:
Usted es libre para:
● Compartir — copiar y redistribuir el material en cualquier medio o formato
● Adaptar — remezclar, transformar y crear a partir del material
Para cualquier propósito, incluso comercialmente
Bajo los siguientes términos:
● Atribución — Usted debe darle crédito a esta obra de manera adecuada: si se
suministran, usted debe dar el nombre del creador y de las partes atribuidas, un aviso de
derechos de autor, una nota de licencia, un aviso legal, y un enlace al material; e
indicando si se han realizado cambios. Puede hacerlo en cualquier forma razonable,
pero no de forma tal que sugiera que usted o su uso tienen el apoyo del licenciante
● Compartir igual — Si usted mezcla, transforma o crea nuevo material a partir de esta
obra, usted podrá distribuir su contribución siempre que utilice la misma licencia que la
obra original..
Las marcas, nombres de productos y empresas, logos, figuras, citas, contenidos no originales de
Zeety S.A.S y otras referencias; son propiedad de sus respectivos dueños y no están cubiertos por
esta licencia.
Zeety S.A.S
Grupo de Investigación y Desarrollo de Tecnologías de la Información