En nuestro anterior artículo hemos hecho una comparativa de las alternativas más usadas en la actualidad para mensajería empresarial, y hemos destacado una de ellas sobre el resto: Zulip.
Hemos visto que este programa nos permitía hacer básicamente lo mismo que el resto de opciones, pero destacaba sobre el resto por tener código libre (en un software de este tipo eso es sinónimo de garantía de que no nos van a espiar las comunicaciones), tener detrás el apoyo de una gran compañía como Dropbox (además de una comunidad activa de desarrolladores), poder instalarse en nuestros propios servidores (lo que significa que ni cedemos nuestros datos a terceros ni dependemos de que sufran caídas de servicio que no podamos controlar) y tener un precio difícilmente superable: Si lo instalamos en nuestros servidores podemos disfrutar de él de forma gratuita.
No nos vengas con sermones que ya nos vamos conociendo. A ti lo que te importa es no gastarte ni un duro. ¿Te han dicho alguna vez que eres un poco rata?
… y este es nuestro querido «Usuario Anónimo», al que le encanta sacar punta a todo lo que decimos por aquí.
No te pases. A casi todo.
En fin… en este artículo vamos a explicar cómo podemos instalar un servidor de Zulip en uno de nuestros equipos. Pero antes de empezar vamos a hacer un listado de todo lo que necesitamos para que la instalación sea correcta.
1- Requisitos
Antes de listar el hardware que necesitamos, os adelanto que pese a que la instalación es muy sencilla, vamos a necesitar un mínimo de experiencia manejando un terminal de Linux. Si únicamente habéis usado entornos gráficos en un ordenador o sólo habéis usado sistemas Windows, os recomiendo comprar antes una Raspberry (Que es una ordenador en miniatura extraordinariamente barato) y empezar cacharreando con este tutorial.
Oye... pues ya que lo dices... ¿podemos instalar el servidor de Zulip en una raspberry? Sería un puntazo poder instalarlo en un equipo tan barato ¿no crees?
Pues la verdad es que no he llegado a instalar un servidor de Zulip en una Raspberry, pero tengo mis serias dudas de que llegue a funcionar correctamente, ya que durante la instalación del sistema se instalan muchísimos componentes diferentes y es necesario que todos ellos cuenten con paquetes adaptados a los procesadores ARM, que son los que le dan vida a este pequeño aparato, aunque debo indicar que hay páginas web como esta en las que se indica que sí que se puede llegar a instalar. En todo caso si alguien se anima a intentarlo que nos indique su experiencia.
Vamos al lío. En cuanto a hardware y software necesitaremos.
- Un ordenador (o máquina virtual)
- Ese equipo debe tener un mínimo de 2 gigas de RAM, pero si pretendemos dar servicio a más de 100 usuarios vamos a necesitar 4 gigas de RAM.
- No necesitamos nada excesivamente potente. Un Pentiun IV debería ser más que suficiente para que el sistema funcione, pero si de nuevo vamos a dar servicio a más de 100 usuarios, lo mejor es que calcemos nuestro equipo con un procesador de al menos dos núcleos.
- Vamos a necesitar que el equipo tenga una distribución de linux como sistema operativo, y debemos ponerle una dirección IP fija (porque luego vamos a dirigir desde el router unos puertos hacia esta máquina). El tutorial va a omitir este paso y va a suponer que ya tenéis instalado el sistema operativo en el ordenador. Pero ojo: no nos sirve cualquier distribución. Debemos instalarle o bien Debian (si escogéis Debian os recomiendo usar la versión «Network install from a minimal CD», que al tener muy pocas cosas instaladas por defecto váis a dejar toda la potencia de vuestro equipo disponible para zulip) o bien Ubuntu (en este caso recomiendo la versión Server). He realizado la instalación en ambos sistemas y la verdad es que es absolutamente idéntica. No en vano «Ubuntu» es una palabra sudafricana que significa «no sé instalar Debian».
Esto... mejor déjame los chistes a mi, anda, que a ti no se te dan bien.
- Necesitaremos también un dominio. No tiene que ser un .com ni nada caro. Nos sirve un dominio de tercer nivel, que son mucho más baratos. O incluso si tenemos ya un dominio comprado y lo estamos usando en la página web de nuestra empresa, podemos hacer un tercer nivel de ese mismo dominio y dirigirlo a nuestro servidor (por ejemplo, podría hacer que aunque «flopy.es» apunte al servidor de esta web, la dirección «chat.flopy.es» apunte a la IP de nuestro servidor de zulip).
- Y por último necesitamos también un par de cuentas de correo en caso de que queramos enviar notificaciones por mail a nuestros usuarios. Necesitamos saber todas las credenciales para configurarlas en un cliente de correo (usuarios, contraseñas, dirección del servidor de correo saliente, etc…).
2- Preparación del router
Zulip va a crearnos un servidor web que nos generará una página que nos permitirá usar el chat a través de un navegador web (además de a través de las aplicaciones específicas), así que como habréis supuesto debemos mapear los puertos 80 y 443 (los puertos estándar de cualquier página web) hacia la IP del ordenador al que le hemos instalado la distribución de linux. ¿Cómo hacerlo? Pues cada router es diferente, pero si queréis una pequeña guía, podéis ver el punto 4 de este tutorial. Simplemente tenéis que usar los puertos 80 y 443 en lugar del que se indica en el tutorial y listo.
¿Pero esto no me lo puedo saltar? Es que no sé cómo entrar en la administración del router para hacer esto que me pides.
Pues si no mapeas los puertos nada de esto va a funcionar, así que ya estás mirando el manual de tu router para mapear esos puertos ahora mismo, porque si no están bien mapeados vas a estar dándote cabezazos contra la pared preguntándote por qué no funciona Zulip.
3- Preparación del dominio
Zulip requiere un nombre de dominio apuntando a la IP de tu router para que funcione. Tenemos hasta cuatro opciones para elegir.
- Opción normal: Pues simplemente comprar un dominio y apuntarlo hacia la dirección IP de nuestro router. Así de sencillo.
- Opción rata: Si no quieres gastarte ni un duro y ya tienes un dominio comprado (algo del estilo flopy.es) pero lo estás usando en la página web de la empresa, puedes crear un dominio de tercer nivel dentro del mismo dominio (algo así como «chat.flopy.es»). En el panel de control de tu dominio, te vas a algún apartado dónde se permita administrar la gestión de zonas DNS y creas un registro de tipo A con el nombre que quieras (en el ejemplo que os puse sería «chat») y que apunte hacia la IP de tu router. Así nos ahorramos comprar otro dominio para este tema.
- Opción super-rata: ¿Por qué comprar un dominio de segundo nivel? Cómprate uno de tercer nivel, como uno que tengo yo, que es matas.com.es. Va a ser más barato que uno normal y te va a funcionar igual.
- Opción super-mega-rata-over-the-limit: Usar un dominio gratuito como los que dan en dnsexit.com. En el punto 2 de este tutorial se explica cómo puedes crearte uno y apuntarlo hacia la IP de tu router. No va a ser una dirección tan atractiva como la de un dominio de tercer nivel, y por supuesto ni podrá compararse a lo que puedes molar con un dominio de segundo nivel, pero va a funcionar, que al fin y al cabo es lo que queremos, y qué leches…
Si, ya... sigues intentando no gastarte ni un duro, pero te olvidas de un pequeño detalle sin importancia que va hacer que todo esto falle estrepitosamente, y es que yo tengo una línea de internet doméstica y no tengo ip fija, listillo. Ya me dirás cómo hago para apuntar el dominio a algo que está cambiando todo el rato.
Si tu proveedor de internet no te da una dirección IP fija (que no cambia) entonces tienes que optar por algún proveedor de dominios que te de algún tipo de herramienta que permita cambiar automáticamente la dirección IP a dónde apunta el dominio según vayas cambiando de dirección IP.
Para dominios de pago, personalmente me gusta la herramienta que ofrecen en Dondominio.com, que es una empresa española y ofrecen una herramienta gratuita para ir apuntando tus dominios a las direcciones IP’s dinámicas deseadas. Es la herramienta que uso yo en flopy.es. ¿Te había dicho que este blog está alojado en una Raspberry que tengo en mi casa? Pues también está sobre una IP dinámica, y uso la herramienta de DonDominio para que siempre apunte a la IP correcta, así que si puedes leer esto es que la herramienta esta funcionando bien y además no necesitas gafas.
Pero si hemos optado por la opción super-mega-rata-over-the-limit, la buena noticia es que dnsexit también ofrece una herramienta para hacer lo mismo con sus dominios, y el uso también está explicado en el punto 2 de este tutorial, así que da igual lo rata que seas. Si quieres, vas a tener herramientas para dirigir tu dominio a tu IP pública, ya sea un dominio de pago como uno gratuito.
4- Instalación de Zulip.
Ahora sí que vamos al lío. Después de asegurarnos de que el router tenga los puertos mapeados correctamente y que el dominio apunte a la IP de nuestro router, tenemos que ir al terminal de nuestro linux y desde la carpeta «home» de nuestro usuario teclear lo siguiente:
mkdir descargas cd descargas wget https://www.zulip.org/dist/releases/zulip-server-latest.tar.gz tar -xf zulip-server-latest.tar.gz ls
Lo que hemos hecho ha sido.
- Primero hemos creado una carpeta para almacenar cosas que nos vamos a descargar.
- Nos hemos metido en esa carpeta y nos hemos descargado un archivo.
- El archivo estaba comprimido. Lo hemos descomprimido.
- Hemos listado el contenido de esa carpeta.
Deberíamos tener ahora en la carpeta «descargas» un archivo con la extensión «.tar.gz» y una carpeta con el mismo nombre que tiene el archivo.
Desde la carpeta «descargas» (no necesitamos entrar en la carpeta que se ha creado) debemos ejecutar ahora el comando de instalación, que es éste.
./zulip-server-*/scripts/setup/install --certbot --email=tucorreo@gmail.com --hostname=chat.tudominio.com
Mucho ojo: evidentemente en este comando hay que modificar dos cosas:
- Donde pone «tucorreo@gmail.com» debemos poner nuestra dirección de correo electrónico. Tened en cuenta que a esta dirección llegarán los errores y advertencias que surjan durante la vida de nuestro Zulip, y será el administrador principal de Zulip.
- Donde pone «chat.tudominio.com» debemos poner el dominio que hemos preparado en el punto 3.
¿Y eso de "--certbot" de qué va? Me suena a algo de certificados o alguna movida por el estilo.
Pues efectivamente. Hace unos años los certificados de las webs había que comprarlos sí o sí. Ahora, gracias a Let’s Encrypt podemos conseguir un certificado para cualquier página web de forma completamente gratuíta.
Con este comando le estamos diciendo al instalador de Zulip que nos cree un certificado de este tipo, y la herramienta de Let’s Encrypt (que se instalará de forma automática) se encargará de renovarlo cada tres meses.
De hecho, después de iniciar la instalación y de deleitarnos con un montón de mensajes que van apareciendo en la pantalla automáticamente, llegará un punto en que el instalador nos hará esta pregunta:
Nos estará preguntando si estamos de acuerdo con los términos del servicio de Let’s Encrypt. Como estoy seguro que a estas alturas todos habréis leído este enlace en el que están las tropecientas páginas de contratos, derechos y deberes que lo componen y estaréis de acuerdo con todo ello, simplemente escribimos una letra «A» y pulsamos enter para volver a tener un divertido ir y venir de líneas y más líneas de mensajes indicando que se está instalando el sistema.
Después de un rato largo de no enterarnos de nada (para qué nos vamos a engañar) con mensajes y mensajes apareciendo sin parar en nuestra pantalla, nos encontraremos con un texto similar a éste.
Si os fijáis, el mensaje nos invita a entrar en una dirección de una página web, cuyo dominio es el que hemos preparado en el punto 3. Simplemente entramos en esa web (que está generando ya nuestro ordenador) y respondemos las preguntas que se nos muestran… y listo. Ya tenemos nuestro sistema de mensajería listo para usar. Sólo tenemos que invitar a los usuarios para que se registren añadiendo sus direcciones de correo electrónico y…
Espera, espera... ¿Pero esto no tiene clientes de escritorio, para móviles y cosas así? ¿Cómo los configuro?
Pues sencillo. Cualquiera de estos clientes sólo os pedirán tres datos. Al iniciar cualquiera de ellos pedirá primero el dominio. Debemos poner lo que creamos en el punto 3.
Y luego debemos poner el correo electrónico del usuario y contraseña que se vaya a logar. Recordad que previamente ese usuario tuvo que aceptar la invitación que le enviamos.
Y poco más la verdad. En cuanto al uso, casi es mejor ir cacharreando en el sistema para conocer todas las opciones. Comentaros únicamente que para activar las notificaciones push en los clientes de móviles hay que seguir las instrucciones que hay en esta página. En todo caso a partir de aquí os animo a investigar las diferentes opciones que nos brinda Zulip, que os pueden sorprender gratamente.
Hola me parece excelente el Articulo, he seguido los pasos y todo a salido perfecto, ya lo tengo instalado, pero tengo un problema, he seguido los pasos para configurar el correo para las notificaciones, el zulip me da como que está configurado, pero nanai, no llega ningún correo, por ejemplo al enviar una invitación de usuario o restablecer contraseña.
¿me podrias ayudar?
Muchas gracias
Tengo el mismo problema, lo has podido resolver?
Prueba enviar correo desde la consola:
# echo “prueba de correo” | mail -s “este correo es de prueba” tu-correo@gmail.com
Y mira el log del servidor (/var/log/mail.log o /var/log/maillog)
Puede q tengas q configurar postfix (o exim) par q los correos salgan
Hola buenas tardes me podrían guiar para hacer la isntalación en un seerver de windows ?? los usuarios que lo utilizarán tambien tienen windows.
Gracias!
Sobre los usuarios no hay problema ninguno. puedes tener a usuarios usando zulip desde cualquier sistema operativo, y todos ellos conectándose al mismo servidor. Hay clientes de zulip para windows, linux, mac, ios y android, y en el caso de usar algún otro sistema, siempre se puede usar desde un navegador web.
sobre el servidor, te lo resumo en una palabra: imposible. El servidor zulip está hecho para correr sobre un equipo linux, y créeme si te digo que es lo mejor que puede pasar. Tal y cómo se dice en el artículo un servidor Windows es caro (las licencias de windows server no son precisamente baratas y si un windows server va a dar servicios a más de 5 usuarios, debes comprar lo que se llaman «cals» por cada usuario. Si quieres ser legal es una locura.
A eso se le añade que es un sistema que tiene unos requisitos elevados en un servidor.
Software como zulip es mucho más sencillo y barato de implementar. Puedes montar máquinas linux virtualizadas en el mismo servidor, que pese a estar en el mismo equipo funcionan de forma independiente. Si por el motivo que sea una se cae, sólo se habrá caído esa y el resto seguirán estables. Eso con windows se puede hacer pero a costa de gastarte una pasta en licencias y de gastar recursos de la máquina sin ningún sentido (un linux consume poquísimos recursos, por lo que a la fuerza cualquier servidor te va a ir mucho más fluido en una máquina linux).
Así que no, no se puede montar sobre windows ni es deseable montarlo sobre windows. Pero si te interesa, considera montarlo sobre una máquina linux. Como ves en el artículo es muy sencillo de implementar y los que lo usamos estamos encantados con su rendimiento y funcionalidades.
Buenas tardes, me daba un error en la instalación, Type: unauthorized Detail: y me apuntaba a una IPv6 la cual era de mi hosting, tuve que modificar el registro AAAA y que apunte a mi IP pública convertida en IPv6… Lo demás funcionó sin problemas… Gracias.