Cómo crear una red social propia con HumHub

Hace un tiempo escuché a un político bocazas al que habían censurado en una red social decir algo como: «¡Pues si me echan de su red social me construiré yo una propia!». A dicho personaje el dinero le sobra, por lo que construirse una red social propia para él no tendría más problema que tirar de talonario. ¿Y nosotros, simples y no muy adinerados mortales? ¿Podríamos construirnos una red social con nuestros escasos medios? Investigué un poco y la respuesta es sí, podemos hacerlo gracias a una serie de tecnologías y servicios gratuitos a nuestra disposición, como son HumHub, No-IP y por supuesto GNU/Linux. El material y los programas necesarios, así como el proceso de creación de dicha red social sería el siguiente.

ATENCIÓN – DISCLAIMER : Este procedimiento implica que vas a tener conectado un equipo a internet con el riesgo que eso conlleva. Es responsabilidad de cada persona que mantenga su servidor actualizado y protegido contra accesos no deseados o utilizaciones del servidor ajenas a la voluntad de sus propietarios. Si no sabes cómo mantener seguro tu servidor, no sigas estas instrucciones, no solo te pones tú en peligro, también pones en peligro a quienes serán atacados usando tu servidor.

Componentes de nuestra red social

  1. Hardware.
    • Servidor. Nuestra red social necesita un servidor en el que alojarse, que puede ser propio o alquilado. La versión de alquiler es más robusta y nos simplifica problemas, pero hay que pagarlo todos los meses. Un servidor físico propio solo tenemos que pagarlo una vez, pero tenerlo encendido continuamente y conectado a internet nos supondrá un coste. Tendremos que ponderar qué nos resultará mejor a la larga. En el caso de optar por un servidor propio cualquier ordenador antiguo nos puede valer, pero si podemos gastar algo de dinero en un miniordenador a la larga la factura eléctrica será menor y el dinero gastado inicialmente se amortizará con el uso. En mi caso he optado por un Slimbook Zero, pero cualquier aparato en el que podamos instalar una distribución GNU/Linux nos valdría.
    • Equipo de red. Si hemos optado por alquilar un servidor no necesitaremos más, pero si vamos a conectar nuestro servidor a internet tendremos que tener una conexión de fibra a internet y un router.
  2. Software.
    • Como sistema operativo puedes usar la distribución GNU/Linux que más te guste. Esta guía la voy a realizar en Debian 10, pero sería muy similar en cualquier otra distribución. Recomiendo que sea una distribución orientada a servidores más que a escritorio.
    • Entorno LAMP (Linux – Apache – MySQL – PHP)
    • Framework HumHub.

Instalación

Una vez tengamos preparados e instalados todos los componentes básicos, procedemos a la instalación de la red social propiamente dicha, siguiendo la guía que el propio HumHub tiene publicada. Esta guía es muy completa y está muy bien explicada, podemos seguirla prácticamente en el mismo orden y de la misma manera, pero incluyo aquí algunas consideraciones que si no tenemos en cuenta nos pueden dar lugar a error.

1 – En primer lugar comprobamos que nuestro sistema cumple todos los requerimientos de HumHub.

2 – En segundo lugar tenemos que configurar el servidor de datos, creando una base de datos específica para nuestra red siguiendo lo indicado en la citada guía en su aparado Base de datos.

3 – Instalamos todos los módulos de PHP que vamos a necesitar y configuramos el php.ini con las necesidades del framework, tal y como aparece en el apartado PHP de la guía de HumHub.

4 – A continuación, si no tenemos alquilado un servidor en internet que normalmente llevará incluido su propio dominio para acceder a él, tendremos que obtener una url que nos permita acceder a nuestra red, a nuestro servidor local desde internet. Para conseguirlo podemos usar el servicio No-IP, el cual nos permite configurar un dominio DDNS que podemos dirigir a nuestro router y desde allí a nuestro servidor. El servicio gratuito incluye hasta tres host:

En su página web podemos descargarnos un programa cliente que nos actualiza nuestra dirección IP cada cierto tiempo.

5 – Tenemos que configurar en nuestro router dos cosas: a) que nuestro servidor tenga una IP fija local (del estilo 192.168.0.10) haciendo que el router le adjudique siempre la misma IP a su tarjeta de red; y b) redirigir los puertos 80 y 443 a esa IP desde el exterior. Esto se realiza de forma diferente en cada router, por lo que tendremos que ver en su documentación cómo hacerlo.

6 – Una vez hayamos configurado router y servicio No-IP comprobaremos que podemos acceder a nuestra dirección tecleando en el navegador nuestro dominio y verificando que la página que se nos muestra es la página inicial de nuestro servidor Apache.

7 – Ahora ya podemos configurar nuestro servidor Apache siguiendo las instrucciones de la guía de HumHub para configurar el servidor. En este paso hay que tener en cuenta que para poder ejecutar la petición de un certificado con certbot necesitamos previamente parar el servidor Apache con la instruccion «sudo systemctl stop apache2», algo que no viene en la guía y que nos puede atascar en este paso si no lo tenemos en cuenta. Una vez que la instalación de un cerificado standalone termina correctamente, entonces ya podemos volver a arrancar el servidor con el comando «sudo systemctl start apache2». Si queremos saber más cosas de certbot y para qué sirve, podemos consultar la página web de Certbot y la de Let’s Encrypt.

8 – Instalar HumHub. Este es ya el último paso, y aparece especificado en la guía de HumHub en la página de instalación del framework. Su puesta en marcha es muy similar a otros framework como Drupal o WordPress, está basado en Yii y cuenta con varios módulos que pueden cubrir nuestras necesidades en nuestra nueva y propia red social.

En caso de querer aumentar sus funcionalidades habría que aprender PHP, estudiar cómo está construido el framework Yii y construir nosotros nuestros propios módulos. Por aprender y construir cosas que no quede, y si además luego las publicamos como software libre para que todos puedan beneficiarse de ellas, mejor.

Finalmente y si todo ha ido bien ya tendremos construida nuestra red social propia, pero lo que hace interesante a una red social es el número de personas que la usan y las interacciones posibles entre ellas, y en mi caso como no conseguí animar a nadie a usarla, todo esto solo me sirvió para aprender y consolidar mis conocimientos de cómo funciona internet. En caso de que queramos seguir investigando, la mayoría del procedimiento sirve también para tener por ejemplo nuestro propio blog en el sercidor de casa si instalamos WordPress, o nuestra propia nube si en vez de instalar HumHub instalamos OwnCloud, por ejemplo. Ya sabéis lo que se dice de La Nube y que lo podemos decir también de todos los servicios de internet: