Hoy me ha tocado pelear un poco con una aplicación nueva para nuestros servidores: Un servidor Jabber propio, lo que nos permitirá tener una mescolanza de servidor de MSN Messenger propio con añadidos salpicados del antiguo protocolo IRC, sea para crear una red privada con nuestros amigos, una intranet de comunicación con los compañeros de la oficina, un servidor público, o simplemente por el placer orgásmico de hacerlo.
El software elegido en esta ocasión será Wildfire Server, de Jive Software, por varios motivos que detallo sin orden ni concierto:
- Código abierto, protocolo abierto, sencillo de extender y modificar
- Estabilidad y buena gestión del tráfico, cacheado, conexiones, etc…
- Completa, sencilla y clara administración via web
- Traducido a docenas de idiomas
- Sencillo gestor de plugins administrados desde el panel de control
- Salas de chat fijas o dinámicas, acceso libre, contraseña o permisos de grupo
- Integración web para utilizar el servidor como servicio de soporte a usuarios
- Gestión de grupos que permite asociar a los usuarios a listas de amigos predefinidas
- Utiliza información de acceso de tu directorio LDAP, si tienes uno
- El tráfico del protocolo XMPP utilizado es seguro, trabajando sobre TLS (SSL)
Además, el servidor permite la transferencia de ficheros entre los usuarios, punto a punto, con uno de ellos haciendo de proxy, o a través del propio servidor. Estas 3 posibilidades hacen que el envio de ficheros funcione a través de virtualmente cualquier tipo de combinación de proxy/firewall/red corporativa estricta.
Por otra parte, si vamos a utilizar nuestro servidor con fines comerciales, los chicos de Jive Software nos proporcionan, por poco dinero, un más que decente cliente de acceso a nuestra red… con nuestros colores corporativos y el logo de nuestra empresa, asi como una docena más de características presentes sólo en la versión comercial (Entreprise)…
La cesta de la compra
En primer lugar debemos saber para qué queremos nuestro servidor. Si se trata de un uso experimental, por el puro afán de aprender y experimentar un poco, nos basta con la versión para Windows, cuya compleja y mística instalación a golpe de «Siguiente-Siguiente-Siguiente-Siguiente» no voy a detallar aqui por encontrarme falto de inspiración… asi que pasemos directamente a su instalación en un entorno de producción Linux, en este ejemplo, una Ubunto 6.06, también conocida como Dapper Drake, aunque cualquier distro sobre la que corra java debería servir. Necesitaremos:
- La última versión de Enterprise Instant Messaging – Wildfire Server – Wildfire Open Source, disponible en http://www.jivesoftware.com/downloads/. En mi caso, la 3.0, archivo wildfire_3_0_0_beta.zip
- La última versión de Java Runtime Environment, disponible para su descarga en http://www.java.com/en/download/manual.jsp. En mi caso, la Version 5.0 Update 7, fichero jre-1_5_0_07-linux-i586.bin
Ponme a tono, nena
El primer paso es comprobar que disponemos de JRE en nuestro servidor, para ello nos vamos a la consola y tecleamos:
java -version
Si el servidor nos devuelve algo como
java version «x.x.x»
debería ser suficiente, en caso contrario procedemos a la instalación del JRE. Una instalación típica para Ubuntu sería:
su
(Introducimos nuestra contraseña de root)
mv jre-1_5_0_07-linux-i586.bin /usr/java
cd /usr/java/
chmod a+x jre-1_5_0_07-linux-i586.bin
./jre-1_5_0-linux-i586.bin
(Aqui se muestra la licencia, saltamos páginas con Espacio, luego tecleamos yes)
El archivo está instalado ya en su propia carpeta, en mi caso /usr/java/jrel.5.0_07, asi que por limpieza y buen hacer borramos el instalador:
rm jre-1_5_0_07-linux-i586.bin
Si te quedan dudas sobre la instalación de JRE, aqui tienes más ayuda de referencia: http://www.java.com/en/download/help/5000010500.xml#selfextracting
Una vez seguros de que disponemos de JRE, podemos pasar a la instalación del servidor Jabber propiamente dicho.
Embadurnados de harina, con las manos en la masa…
En primer lugar descomprimimos el archivo recién descargado con la última versión de Widfire
tar -xzvf wildfire_3_0_0_beta.tar.gz
Borramos el fichero comprimido y movemos la carpeta generada al descomprimir a /opt :
rm wildfire_3_0_0_beta.tar.gz
mv wildfire /opt
¿ Sencillo verdad ? Para comenzar a correr el servidor nos movemos a su carpeta y ejecutamos el script wildfire incluido en /opt/wildfire/bin
cd /opt/wildfire/bin
./wildfire
El script nos responderá con instrucciones sobre su uso:
Usage: ./wildfire {start|stop}
Ok, entonces la cosa debe ser…
./wildfire start
Eureka ! Ya tenemos nuestro servidor corriendo en la máquina, ahora bastará con ajustar un par de cosas y podremos empezar a utilizarlo.
Sombra aqui, sombra alla
Tras tener el servicio corriendo, el primer paso es configurar los datos de nuestro servidor, tales como nombre, puerto, preferencias generales, etc, etc… para ello disponemos de un primer panel de control a tales efectos, lo encontraremos escuchando como servidor web en el puerto 9090, asi que abrimos una ventana de nuestro navegador favorito y escribimos la dirección:
http://127.0.0.1:9090
En mi caso, he seleccionado el idioma Español, el dominio miempresa.com, he dejado los puertos por defecto 9090 para administración y 9091 para administración segura, y he marcado Base de datos interna. Aqui merece la pena hacer una pausa… Wildfire nos permite guardar los datos de trabajo (cuentas de usuario, preferencias, logs, etc…) en varios formatos de base de datos:
- MySQL
- Oracle
- Microsoft SQLServer
- PostgreSQL
- IBM DB2
- HSQLDB
O bien utilizar un formato propio, el indicado como «Base de datos interna». Por supuesto, en entornos de producción sería recomendable utilizar alguna de las citadas bases de datos sobre la interna, algo que incluso el propio software te recomienda. Sin embargo, como dichas bases de datos dependen mucho de los gustos personales del usuario, y requieren además de la presencia de los adecuados drivers JDBC (http://industry.java.sun.com/products/jdbc/drivers), no las voy a tocar aqui.
El que desee utilizar una base de datos externa, tiene información en el fichero /opt/wildfire/documentation/database.html . El que quiera peces, que se moje el culo.
Por lo tanto, seleccionamos Base de datos interna y continuamos con la generación de la cuenta de Administrador. Sobra decir que nos apuntemos bien los datos que introduzcamos en esta sección.
Let’s Rock !
Una vez completados estos pasos, nuestro servidor está listo para trabajar, basta con acceder de nuevo a la url anterior http://127.0.0.1:9090 (9090 si no hemos cambiado el puerto, si no, el que corresponda) y comenzar a crear usuarios, salas de chat, etc… que serán perfectamente accesibles desde cualquier cliente de Jabber
Si queremos añadir funcionalidades a nuestro servidor, los Plugins se pueden descargar desde la página correspondiente de jive Software: http://www.jivesoftware.org/wildfire/plugins.jsp. A la hora de instalarlos, veremos que vienen empaquetados como ficheros .jar , basta con moverlos a la carpeta /plugins dentro de /opt/wildfire , y un monitor automatizado de plugins lo extraerá en su directorio correspondiente y lo instalará por nosotros. Desde el panel de control web también podemos controlar los plugins en todo momento.
Por otra parte, para no tener que iniciar nuestro servidor cada vez que reiniciemos, en la carpeta /opt/wildfire/bin/extras tenemos un par de scripts que lo instalarán como servicio, redhat-postinstall.sh para instalaciones Red Hat y Fedora, y wildfired, script que debemos editar manualmente en el resto de sistemas para fijar nuestro servidor como servicio.
Para más información
¿ Se me olvida algo ? Seguro que si… pero para eso está esta parte del tutorial. Para más información:
- La web oficial del proyecto
- Documentación del servidor
- Listado de Plugins disponibles para Wildfire Server
- Foros de soporte de la comunidad
- Jive Talks, el blog de Jive Software
Bon apetit.
2 comentarios en “I'm on Wildfire Server, baby – Tu propio servidor Jabber”