Mi experiencia creando una instancia de Mastodon

Últimamente se ha puesto bastante de moda la red social Mastodon, sobre todo a raíz de la compra de Twitter por parte de Elon Musk y todo lo que ha significado. En este último tema no voy a entrar, ya que ya hay mucho ruido al respecto y no quiero contribuir a él.

Lo que os quiero comentar es que, desde hace unos días, debido a la llegada de tanta gente de una red a otra, he decidió montar mi propia instancia de Mastodon, que es esta: mastodon.bitsandlinux.com Ya que hasta ahora estaba utilizando la instancia principal de mastodon.social. Y como bien dicen por los mares del Fediverso; esa instancia, al igual que otras grandes, son como una sala de espera hasta que escojamos otra más pequeña, acorde a nuestras necesidades y gustos.

Pero bueno, que me voy las ramas, la cuestión es que he montado una nueva instancia. Para ello he seguido la guía oficial: Running your own server. Como es habitual he escogido un servidor con GNU/Linux, concretamente Debian 11, en mi proveedor de confianza Clouding.io

Logo oficial de Mastodon

Si te interesa también puedes escuchar el episodio del podcast:

Mi experiencia creando una instancia de Mastodon

Aunque lo he hecho otras veces, con otros productos, esta vez no os voy a explicar paso a paso como crear la instancia, ya que hay infinidad de guías al respecto por Internet, además de la oficial que os he comentado antes.

Evidentemente tienes que tener algo de conocimiento de sistemas GNU/Linux. Algunas recomendaciones, mira que a nivel de memoria, CPU y disco tengas suficiente para soportar una cantidad dada de usuarios. En mi caso la usaré yo y algún colega que quiera apuntar a la aventura, pero poco más, por lo que tampoco necesito una gran máquina.

Dominio y certificado SSL

Una cosa importante antes de montar todo este cristo es que tengamos un dominio que podamos utilizar. Además, de un certificado SSL, aunque esto lo podemos hacer muy fácil con Let’s Encrypt.

Escoger una buena plataforma de envío de correo

Y que no os olvide utilizar un servicio de envío de correo, para que cuando los usuarios se quieran registrar les llegue el mensaje de confirmación. Y ojo, importante, que sea un servicio en condiciones, si no queremos que los mensajes le lleguen al spam. Yo me he decantado en esta parte por Mailjet.com, donde he creado una cuenta gratuita. Más que suficiente para lo que necesito. No es publicidad, simplemente os explico la que me ha funcionado.

Asegurar el servidor

Una vez creada la máquina, ya podemos acceder vía SSH. En este punto yo he creado un usuario diferente de root para operar. De hecho, he deshabilitado el acceso al usuario root por SSH y también he cambiado el puerto por defecto de acceso. Además de deshabilitar el acceso por contraseña, dejando solamente habilitado el intercambio de llaves. También es buena idea instalar y habilitar el servicio de Fail2ban.

Instalar Mastodon y configurar el correo

Una vez, siguiendo las instrucciones de cualquier guía, ya tendremos el usuario de mastodon creado y la instancia levantada. A la hora de modificar la configuración de la instancia, tendremos que tocar el fichero “.env.production”, ubicado dentro de la carpeta live.

En el caso de la configuración del envío de correo, que es lo que más guerra me ha dado, lo tengo así:

SMTP_SERVER=in-v3.mailjet.com
SMTP_LOGIN=código-suministrado-por-el-proveedor
SMTP_PASSWORD= código-suministrado-por-el-proveedor
SMTP_PORT=465
SMTP_SSL=true
SMTP_OPENSSL_VERIFY_MODE=none
SMTP_FROM_ADDRESS=dirección-de-envío
SMTP_DELIVERY_METHOD=smtp
SMTP_TLS=true
SMTP_ENABLE_STARTTLS_AUTO=false

Recuerda habilitar el host para que pueda enviar correo por el puerto 465.

Cuidado con las actualizaciones

Una vez lo tenía instalado, la instancia configurada y todo funcionando, decidí actualizar a la última versión, que a fecha de hoy es la 4.0.2. El proceso también es bastante sencillo. Primero de todo es hacer un backup de todo, aunque quizás es más fácil realizar simplemente una instantánea previa de la máquina. Y ahora actualizamos:

git fetch; git checkout v4.0.2

Una vez hecho esto, que tarda un rato, ya tenía mi instancia funcionando. Pero, ups, al cabo de los minutos me di cuenta de que no federaba. Tras un par de horas investigando encontré el motivo, que aquí explican: Github.com – Federation brojen after update to 4.0

Resumiendo, tras la actualización hay que modificar el fichero de la unidad de systemd llamado “mastodon-sidekiq.service” y añadir en la línea “ExecStart” un par de nuevas colas, que se incorporan a esta versión que son, “-q ingress” y “-q scheduler”. Reiniciamos el servicio y listo. ¡Ya estamos federando!

Dando un poco de magia

Bueno, una vez hecho esto, he querido dar un poco de magia a la instancia y he añadido un pack de Emojis bastante molones, con licencia Creative Commons. Concretamente los del proyecto “Mutant Standard emoji”. Creo que son bastante molones.

Un ejemplo de algunos Emojis

Resumen

Es verdad que mucho podéis pensar que me gusta complicarme la vida. Pero como bien dice un compañero del trabajo, aquí hemos venido a jugar. Cada uno tiene sus aficiones y esta es la mía. Espero que os haya parecido interesante. Nos vamos leyendo.