Instalación de Teambox en openSUSE
mayo 4, 2011 6 comentarios
En mi búsqueda de una herramienta web que permitiese gestionar nuestros objetivos, actividades, inversión de horas de trabajo, etc. he encontrado y probado Teambox.
Esta es una excelente herramienta para la gestión de proyectos de desarrollo colaborativo, cuenta con una interfaz simple orientado a redes sociales, su principal función es la administración de tareas entre los miembros del equipo de trabajo, mantener registro de la duración de tiempo de las actividades, permite crear wiki’s, compartir archivos, realizar comentarios, entre otras funcionalidades muy útiles. Para conocer más información sobre la misma pueden visitar este enlace.
Requisitos de Instalación
- Debemos tener instalados una serie de paquetes que son fundamentales para poder ejecutar la aplicación web, entre ellos se destacan los paquetes relacionados con el lenguaje de programación Ruby, su sistema de gestión de dependencias y el módulo para Apache. El comando de instalación es el siguiente:
fireserver:~ # zypper install libxml2 libxml2-devel libxslt libxslt-devel mysql-community-server libmysqld-devel sqlite3 sqlite3-devel postgresql-devel apache2 apache2-devel apache2-prefork libcurl-devel ImageMagick ImageMagick-devel git gcc gcc-c++ ruby rubygems rubygem-passenger rubygem-passenger-apache2 rubygem-passenger-nginx - Teambox soporta múltiples bases de datos, sin embargo, para este ejemplo he utilizado MySQL instalado en el mismo servidor. La guía de pasos de instalación y configuración de MySQL para openSUSE se encuentra documentada en este artículo.
Instalación y Configuración de la Herramienta Teambox
- Para este ejemplo la instalación de la herramienta web Teambox se va a llevar a cabo en el directorio /opt, para ello nos debemos ubicar en dicho directorio.
fireserver:~ # cd /opt/ fireserver:/opt #
- Obtenemos el código fuente y las dependencias clonando el proyecto a partir de Github.
fireserver:/opt # git clone git://github.com/teambox/teambox.git - Una vez concluida la descarga accedemos al directorio teambox creado en el paso anterior.
fireserver:/opt # cd teambox/ fireserver:/opt/teambox #
- Dentro del directorio teambox debemos elegir la rama de desarrollo que queremos instalar, ya que el código fuente dispone dos opciones, una rama estable llamada master ideal para entornos de producción y otra rama más inestable en estado de desarrollo pero con las últimas funcionalidades llamada dev. En esta guía voy a utilizar la rama master que es la que mejor se adecua a nuestras necesidades laborales, a nuestro entorno de producción:
fireserver:/opt/teambox # git checkout master - Necesitamos instalamos la aplicación bundler mediante el gestor de paquetes de Ruby llamado gem:
fireserver:/opt/teambox # gem install bundler - Pasamos a instalar todas las gemas ruby que requiere la herramienta Teambox para su funcionamiento (dependiencias), esto lo realizamos ejecutando el siguiente comando:
fireserver:/opt/teambox # bundle install --deployment - El siguiente paso es dirigirnos al directorio /opt/teambox/config y crear el archivo con las especificaciones necesarias para la configuración de la base de datos llamado database.yml a partir del archivo plantilla llamado database.example.yml.
fireserver:~ # cd /opt/teambox/config/ fireserver:/opt/teambox/config # cp database.example.yml database.yml
- Luego procedemos a editar el nuevo archivo database.yml:
fireserver:/opt/teambox/config # vi database.ymly configuramos la directiva password para la sección production, debería quedar similar a lo que sigue:
production: adapter: mysql host: localhost username: root password: contraseña_usuario_root database: teambox2_production - Ahora procedemos a crear la base de datos y sus respectivas tablas para la herramienta Teambox en MySQL (que debe estar ejecutándose, lista para usarse), esto lo hacemos ejecutando el siguiente comando en el directorio /opt/teambox.
fireserver:~ # cd /opt/teambox fireserver:/opt/teambox # bundle exec rake db:create db:schema:load RAILS_ENV=production
- Luego pasamos a configurar la propia herramienta Teambox mediante su archivo de configuración teambox.yml ubicado en el directorio /opt/teambox/config. Primero editamos el archivo de configuración:
fireserver:~ # vi /opt/teambox/config/teambox.ymlUna vez dentro del archivo configuramos las siguientes directivas:
app_domain: teambox.mi_dominio.local time_zone: Georgetown default_locale: :es smtp_settings: :domain: gmail.com :address: smtp.gmail.com :port: 587 :authentication: :plain :user_name: nombre_usuario@gmail.com :password: contraseña_usuario :enable_starttls_auto: true
Entre las configuraciones más importantes se destacan la directiva app_domain y las configuraciones de las subdirectivas smtp_settings, esta últimas permiten definir el servidor smtp mediante el cual la herramienta enviará las notificaciones por correo electrónico. Finalmente guardamos los cambios y salimos del archivo de configuración con lo cual culminamos con la configuración de la herramienta Teambox.
Configuración de Apache
- Lo primero que debemos hacer es habilitar el módulo passenger de Ruby para que Apache pueda ejecutar la herramienta web Teambox, para ello editamos el archivo /etc/sysconfig/apache2:
fireserver:~ # vi /etc/sysconfig/apache2 - Una vez en el archivo de configuración buscamos la directiva APACHE_MODULES y al final de la lista le agregamos el módulo passenger, debería quedar similar a lo que sigue:
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 passenger"
Acceso mediante hosts virtuales
Si deseamos que Apache sirva el sitio web de Teambox a través de un nombre de dominio totalmente cualificado (FQDN: Fully Qualified Domain Name) resuelto a través de servidores de nombres (DNS) internos o externos podemos configurar un host virtual para dicho fin. Para ello podemos seguir los siguientes pasos:
- Nos dirigimos al directorio /etc/apache2/vhosts.d y creamos un nuevo archivo llamado vhost.conf:
fireserver:~ # cd /etc/apache2/vhosts.d fireserver:/etc/apache2/vhosts.d # touch vhost.conf
- Editamos el archivo con nuestro editor de texto preferido..
fireserver:/etc/apache2/vhosts.d # vi vhost.confY luego agregamos las siguientes directivas:
# -- ES NECESARIO DEFINIR LA DIRECTIVA NameVirtualHost CUANDO # SE CONFIGURAN HOSTS VIRTUALES BASADOS EN NOMBRES. NameVirtualHost *:80 # -- CONFIGURACION DEL HOST VIRTUAL POR DEFECTO, QUE APUNTA # A LA RUTA TRADICIONAL. <VirtualHost *:80> ServerName fireserver ServerAlias fireserver *.fireserver DocumentRoot /srv/www/htdocs </VirtualHost> # -- CONFIGURACION DEL VIRTUAL HOST PARA TEAMBOX <VirtualHost *:80> Options +Indexes ServerAdmin nombre_usuario@gmail.com ServerName teambox ServerAlias teambox.mi_dominio.local *.teambox.mi_dominio.local teambox *.teambox DocumentRoot /opt/teambox/public RailsEnv production <Directory "/opt/teambox/public"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all Options -MultiViews </Directory> </VirtualHost>
- Con esto ya tenemos el servidor web configurado con soporte virtual host.
Acceso mediante subdirectorio
Una opción alternativa a la configuración de host virtual de Apache para desplegar Teambox es utilizar una configuración más tradicional definiendo el acceso a dicha herramienta a través de un subdirectorio posterior al dominio o dirección IP de nuestro servidor web.
- Como primer paso, nos dirigimos al directorio /etc/apache2/conf.d y creamos un nuevo archivo llamado teambox.conf:
fireserver:~ # cd /etc/apache2/conf.d fireserver:/etc/apache2/conf.d # touch teambox.conf
- Editamos el archivo teambox.conf:
fireserver:/etc/apache2/conf.d # vi teambox.confY le agregamos la siguiente configuración:
# -- ALIAS DEL SUBDIRECTORIO APUNTANDO A LA RUTA REAL DE # LA HERRAMIENTA TEAMBOX. Alias /teambox /opt/teambox/public # -- DEFINICION DEL ENTORNO RAILS. RailsEnv production RailsBaseURI /teambox # -- CONFIGURACIONES DEL DIRECTORIO DE TRABAJO. <Directory "/opt/teambox/public"> Options -MultiViews +FollowSymLinks +SymLinksIfOwnerMatch AllowOverride All Order allow,deny Allow from all </Directory>
- Creamos un enlace simbólico del directorio /opt/teambox/public al directorio /srv/www/htdocs:
fireserver:/etc/apache2/conf.d # ln -s /opt/teambox/public/ /srv/www/htdocs/teambox - Para utilizar este método debemos ajustar la configuración de la herramienta web Teambox, específicamente la directiva app_domain del archivo /opt/teambox/config/teambox.yml deberá ser configurada con el dominio basado en subdirectorios. Para ello editamos nuevamente el archivo /opt/teambox/config/teambox.yml:
fireserver:/etc/apache2/conf.d # vi /opt/teambox/config/teambox.ymly configuramos la directiva app_domain de forma parecida a lo que se muestra a continuación:
app_domain: ip_o_nombre_dominio_servidor/teambox/
Guardamos los cambios y salimos del archivo para continuar con otras configuraciones.
Configuración de los niveles de ejecución y arranque del servicio web Apache:
- Activamos los niveles de ejecución para el servicio apache2 de la siguiente manera:
fireserver:~ # chkconfig --add apache2 - Luego procedemos a iniciar (o reiniciar si ya se estaba ejecutando) el servicio apache2 con el siguiente comando:
fireserver:~ # service apache2 start
Configuración del Cortafuegos
- Para que podamos acceder a la herramienta desde otro equipo remoto necesitamos abrir los puertos HTTP (80) y HTTPS (443) en el firewall del servidor, para ello editamos el archivo SuSEfirewall2 del directorio /etc/sysconfig:
fireserver:~ # vi /etc/sysconfig/SuSEfirewall2y le asignamos los servicios apache2 y apache2-ssl a la directiva FW_CONFIGURATIONS_EXT como se muestra a continuación:
FW_CONFIGURATIONS_EXT="sshd apache2 apache2-ssl" - Luego reiniciamos el cortafuegos para que la nueva configuración tome efecto, lo realizamos con el siguiente comando:
fireserver:~ # rcSuSEfirewall2 restart
Acceso a Teambox
- Si para acceder a la herramienta Teambox hemos configurado el servicio Apache con virtual hosts, debemos utilizar el nombre de dominio totalmente cualificado que hemos definido y que debe ser correctamente resueltos por algún servidor DNS o mediante alguna entrada al archivo /etc/hosts en la máquina cliente que se trata de conectar a la herramienta. Como ejemplo podríamos tener la siguiente URL:
http://teambox.mi_dominio.local
- Si en el caso contrario hemos configurado el acceso a la herramienta Teambox mediante un subdirectorio en Apache, la URL deberá ser similar a la siguiente:
http://ip_o_nombre_dominio_servidor/teambox
- A continuación les dejo con una captura de pantalla de la herramienta Teambox en plena ejecución:

Artículos Relacionados
Fuentes
- https://github.com/teambox/teambox/wiki/Installing-locally
- https://github.com/teambox/teambox/wiki/Installing-on-Ubuntu
- http://wiki.mediatemple.net/w/(ve):Install_Teambox
- http://www.stephenierodiaconou.com/blog_Installing_Teambox_-_A_Full_Guide_For_Debian






Comentarios recientes