Twitter es una red social privativa y centralizada que requiere el uso de software privativo. Consultar Twitter con el navegador de forma que podamos proteger nuestra privacidad es prácticamente imposible. Para eso existen interfaces como Nitter que permiten acceder al contenido con una interfaz totalmente libre.

Su nombre, proviene de un acrónimo not twitter («No Twitter» del inglés). Nitter tiene una interfaz ligera y evita que Twitter obtenga tu dirección IP, además puedes personalizar la interfaz, y consultar fuentes RSS propias.

Si tienes cuenta en Mastodon seguramente querrás que la gente que pone enlaces de Twitter aparezcan con el nodo de Nitter de confianza. Eso es posible configurarlo en algunos de los clientes más conocidos de Mastodon como Fedilab o Tusky

Instalar nodo de Nitter

Primero de todo crearemos un usuario llamado nitter en nuestro sistema para gestionar la aplicación web:

useradd -m nitter -s /bin/bash

Y luego iniciamos sessión:

su - nitter

Y tras iniciar sesión, ejecutamos lo siguiente para instalar NimLang, el lenguaje de programación que está hecho Nitter:

curl https://nim-lang.org/choosenim/init.sh -sSf | sh

Tras la instalación, añadiremos a .bashrc lo siguiente:

export PATH=/home/nitter/.nimble/bin:$PATH

Tras esto, procederemos a descargar Nitter de GitHub:

git clone https://github.com/zedeus/nitter

Accedemos al directorio y empezamos a compilar:

cd nitter
nimble build -d:release
nimble scss

Si en el último error os aparece un error como «could not load: libsass.so» deberéis de tener instalado el siguiente paquete:

apt install libsass1

Tras esto, podemos configurar Nitter con el fichero de configuración que se encuentra en /home/nitter/nitter/nitter.conf y podemos configurar el Servidor, la Cache, así como preferencias de la página.

Por ejemplo, en el apartado de servidor:

[Server]
address = "0.0.0.0"
port = 8080
https = true
staticDir = "./public"
title = "Xarxitter"
hostname = "nitter.xarxa.cloud"

Podemos configurar la IP, el puerto, habilitar acceso por HTTPS, el directorio donde se encuentra la APP, el titulo de la pestaña en el navegador, y el dominio para acceder a él.

Configurar Nginx para Nitter

Como que Nitter está escuchando por el puerto 8080 por defecto, tendremos que habilitar el acceso con un Reverse Proxy y con Nginx lo podemos hacer de esta forma tan sencilla.

Creamos el fichero de configuración en /etc/nginx/sites-available/nitter.conf y añadimos lo siguiente:

server {
        server_name nitter.xarxa.cloud;

        # Security Headers
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains preload" always;
        add_header Content-Security-Policy "default-src 'none'; script-src 'self' 'unsafe-inline'; img-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self'$
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options DENY;
        add_header X-XSS-Protection "1; mode=block";

        location / {
                proxy_pass http://localhost:8080;
        }

        location = /robots.txt {
                add_header Content-Type text/plain;
                return 200 "User-agent: *\nDisallow: /\n";
        }
}

Tened en cuenta que hay que cambiar el valor de server_name por vuestro subdominio.

Tras esto, podremos habilitar la configuración y generar el certificado de Let’s Encrypt con:

certbot

Configuración de servicio en SystemD

Para poder levantar con facilidad el servicio, crearemos un fichero de configuración para parar, iniciar y ver el estado del servicio de Nitter:

Creamos el fichero /etc/systemd/system/nitter.service con el siguiente contenido:

[Unit]
Description=Nitter (An alternative Twitter front-end)
After=syslog.target
After=network.target

[Service]
Type=simple

# set user and group
User=nitter
Group=nitter

# configure location
WorkingDirectory=/home/nitter/nitter
ExecStart=/home/nitter/nitter/nitter

Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Tras guardar este fichero, procederemos a reiniciar Nitter, y recargar la configuración de Nginx:

systemctl restart nitter
systemctl reload nginx

Y con todo esto, deberíamos de tener acceso a Nitter desde nuestro dominio:

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación