GoToSocial es una implementación ligera y eficiente de un servidor para el Fediverso, compatible con ActivityPub, el protocolo utilizado por plataformas descentralizadas como Mastodon. Diseñado para ser fácil de desplegar y operar, GoToSocial permite a los usuarios alojar su propia instancia y conectarse con otras redes sociales federadas sin necesidad de una infraestructura pesada.
A diferencia de otras opciones como Mastodon, GoToSocial se enfoca en ser liviano y accesible, ideal para servidores con recursos limitados. Actualmente, su interfaz web está en desarrollo, pero ofrece una API completa que permite la integración con clientes de terceros.
En este tutorial, veremos cómo instalar y configurar GoToSocial en Debian 12, asegurando que tu servidor esté listo para federarse con el resto del Fediverso.
Preparación del entorno
Antes de comenzar con la instalación de GoToSocial, es importante asegurarse de que el sistema está actualizado. Para ello, ejecuta el siguiente comando:
apt update
apt upgradeA continuación, creamos un directorio donde descargaremos todos los archivos necesarios para la instalación de GoToSocial. Para ello, ejecuta:
mkdir -p /gotosocial/storage/certs
cd /gotosocialAhora, utilizando la última versión disponible, configuramos la versión de la release mediante variables.
GTS_VERSION=0.17.4
GTS_TARGET=linux_amd64Y descargamos el fichero comprimido:
wget https://github.com/superseriousbusiness/gotosocial/releases/download/v${GTS_VERSION}/gotosocial_${GTS_VERSION}_${GTS_TARGET}.tar.gzCopiamos el fichero de configuración:
cp example/config.yaml .Configuración de GoToSocial
Ahora que hemos copiado todos los archivos necesarios, es momento de iniciar la configuración. Para ello, debemos editar el archivo de configuración principal, donde definiremos los parámetros esenciales para el funcionamiento de GoToSocial, como la URL del servidor, la base de datos y otras opciones clave. Editamos el fichero:
nano config.yamlTendremos que editar estos valores:
# host: Configura un nombre de dominio
host: "gotosocial.dominio.com"
# Ejecutar en modo de lista de permitidos es obligatorio para los nodos de Website League.
instance-federation-mode: "allowlist"
# Hace que los clientes que requieren Mastodon sean compatibles.
instance-inject-mastodon-version: true
# instance-languages: Establece los idiomas preferidos para ti o tus usuarios.
# https://en.wikipedia.org/wiki/IETF_language_tag#List_of_common_primary_language_subtags
instance-languages: ["es"]
# Si esta es una instancia de un solo usuario, puedes cambiar este valor a tu usuario.
# Al acceder al dominio de la instancia, se redirigirá a tu perfil.
landing-page-user: ""
# Activa esta opción si estás creando un nodo multiusuario y deseas aceptar registros.
accounts-registration-open: false
# Si vienes de Cohost, probablemente quieras activar esto. No es tan bueno como los "crímenes federados de CSS",
# pero al menos permite personalizar el CSS del perfil.
accounts-allow-custom-css: true
# Ajusta el límite de caracteres para publicaciones, estableciendo un valor más flexible.
# (Se ha probado con 50,000 caracteres sin problemas).
statuses-max-chars: 50000
# Configura GoToSocial para ejecutarse como servidor web
# y establece SQLite como la base de datos predeterminada.
port: 443
db-type: "sqlite"
db-address: "sqlite.db"
# Esto debería ser correcto, pero cámbialo si estás utilizando un directorio diferente.
storage-local-base-path: "/gotosocial/storage"
# Configura GoToSocial para obtener un certificado SSL gratuito de Let's Encrypt.
letsencrypt-enabled: true
letsencrypt-cert-dir: "/gotosocial/storage/certs"
letsencrypt-email-address: "your@awesome-email.here"Probemos que funciona correctamente
Ha llegado el momento de poner todo en marcha y comprobar que la configuración funciona correctamente. Para ello, ejecutamos:
./gotosocial --config-path ./config.yaml server startEl proceso comenzará a cargar todos los componentes... Debemos esperar hasta que aparezcan las siguientes dos líneas:
timestamp="18/02/2025 16:18:40.803" func=admin.(*Processor).FillWorkerQueues level=INFO msg=rehydrate!
timestamp="18/02/2025 16:18:40.803" func=router.(*Router).letsEncryptTLS.func2 level=INFO msg="letsencrypt listening on 0.0.0.0:80"
timestamp="18/02/2025 16:18:40.803" func=admin.(*Processor).FillWorkerQueues level=INFO delivery=0 federator=0 client=0 errors=0 msg="recovered queued tasks"
timestamp="18/02/2025 16:18:40.803" func=router.(*Router).Start.func1 level=INFO msg="listening on 0.0.0.0:443"En este punto, nuestro servidor de GoToSocial estará activo. Si accedemos al dominio configurado, deberíamos ver lo siguiente:

Ahora que hemos verificado que todo funciona correctamente, podemos detener el proceso utilizando Control + D. A continuación, procederemos a crear el usuario administrador, quien tendrá permisos para gestionar la instancia y configurar opciones clave del servidor.
./gotosocial --config-path ./config.yaml admin account create --username [NombreUsuario] --email [Correo] --password '[ContraseñaSegura]'Si queremos que el usuario tenga privilegios de administrador para gestionar la instancia, debemos asignarle permisos de administración durante su creación.
./gotosocial --config-path ./config.yaml admin account promote --username [NombreUsuario]Configurar servicio de SystemD
Para configurar el servicio correctamente, primero debemos crear un usuario dedicado y ajustar los permisos de los archivos. Para ello, ejecutamos los siguientes comandos:
useradd -r gotosocial
groupadd gotosocial
usermod -a -G gotosocial gotosocialY cambiamos los permisos:
chown -R gotosocial:gotosocial /gotosocialCopiamos el fichero de configuración:
cp /gotosocial/example/gotosocial.service /etc/systemd/system/Editamos el fichero y descomentamos la siguiente línea:
AmbientCapabilities=CAP_NET_BIND_SERVICEY recargamos servicios:
systemctl enable --now gotosocial.serviceUna vez iniciado, podemos comprobar el estado del servicio para asegurarnos de que se ha iniciado correctamente y está en funcionamiento.
Feb 18 17:00:51 gotosocial gotosocial[27271]: timestamp="18/02/2025 17:00:51.692" func=router.(*Router).letsEncryptTLS.func2 level=INFO msg="letsencrypt listening on 0.0.0.0:80"
Feb 18 17:00:51 gotosocial gotosocial[27271]: timestamp="18/02/2025 17:00:51.692" func=router.(*Router).Start.func1 level=INFO msg="listening on 0.0.0.0:443"
Feb 18 17:00:51 gotosocial gotosocial[27271]: timestamp="18/02/2025 17:00:51.692" func=admin.(*Processor).FillWorkerQueues level=INFO delivery=0 federator=0 client=0 errors=0 msg="recover>
Accediendo a la configuración de la cuenta
Si accedemos a nuestra URL y añadimos /settings, podremos iniciar sesión con nuestro usuario y modificar la configuración de nuestra cuenta según nuestras preferencias.

Además si hemos configurado la cuenta como admin, tendremos toda la parte de moderación y administración.
Configurar cuenta en cliente
Podemos utilizar clientes como Tusky o Semaphore para acceder a nuestra instancia. Solo necesitamos ingresar el nombre de la instancia e iniciar sesión con nuestras credenciales.
Por ejemplo, en Semaphore:

O en Tusky:


Conclusión
Hemos instalado y configurado GoToSocial en Debian 12, permitiéndonos disponer de una instancia ligera y eficiente dentro del Fediverso. A lo largo del proceso, hemos actualizado el sistema, descargado los archivos necesarios, configurado los parámetros clave y puesto en marcha el servicio.
Con nuestra instancia en funcionamiento, ya podemos interactuar con otras redes federadas y utilizar clientes compatibles como Tusky o Semaphore para gestionar nuestra cuenta de manera más cómoda. Además, al contar con una configuración basada en SQLite y un consumo de recursos reducido, GoToSocial es una excelente opción para quienes buscan una solución autoalojada sin necesidad de infraestructura pesada.
Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.
Comentarios