Um front-end alternativo gratuito e de código aberto para o Twitter, focado em privacidade e desempenho.
Inspirado no projeto Invidious.
Sem JavaScript ou anúncios
Todas as solicitações passam pelo backend, o cliente nunca fala com o Twitter
Impede que o Twitter rastreie seu IP ou impressão digital JavaScript
Usa a API não oficial do Twitter (não é necessário limite de taxa ou conta de desenvolvedor)
Leve (para @nim_lang, 60 KB vs 784 KB do twitter.com)
Feeds RSS
Temas
Suporte móvel (design responsivo)
Licença AGPLv3, não são permitidas instâncias proprietárias
Liberapay: https://liberapay.com/zedeus
Patreon: https://patreon.com/nitter
BTC: bc1qp7q4qz0fgfvftm5hwz3vy284nue6jedt44kxya
Ethereum: 0x66d84bc3fd031b62857ad18c62f1ba072b011925
LTC: ltc1qhsz5nxw6jw9rdtw9qssjeq2h8hqk2f85rdgpkr
XMR: 42hKayRoEAw4D6G6t8mQHPJHQcXqofjFuVfavqKeNMNUZfeJLJAcNU19i1bGdDvcdN6romiSscWGWJCczFLe9RFhM3d1zpL
Incorporações
Sistema de contas com suporte de linha do tempo
Arquivando tweets/perfis
API do desenvolvedor
O wiki contém uma lista de instâncias e extensões de navegador mantidas pela comunidade.
É impossível usar o Twitter sem o JavaScript habilitado. Para pessoas preocupadas com a privacidade, impedir análises de JavaScript e rastreamento baseado em IP é importante, mas além de usar VPN e uBlock/uMatrix, é impossível. Apesar de estar atrás de uma VPN e usar bloqueadores de anúncios pesados, você pode ser rastreado com precisão com a impressão digital do seu navegador, sem necessidade de JavaScript. Tudo isso se tornou particularmente importante depois que o Twitter removeu a capacidade dos usuários de controlar se seus dados seriam enviados aos anunciantes.
Usando uma instância do Nitter (hospedada em um VPS, por exemplo), você pode navegar no Twitter sem JavaScript, mantendo sua privacidade. Além de respeitar sua privacidade, o Nitter é em média cerca de 15 vezes mais leve que o Twitter e, na maioria dos casos, veicula páginas mais rapidamente (por exemplo, as linhas do tempo carregam de 2 a 4 vezes mais rápido).
No futuro, será adicionado um sistema de conta simples que permitirá seguir os usuários do Twitter, permitindo que você tenha uma linha do tempo cronológica limpa sem precisar de uma conta no Twitter.
libpcre
libsass
redis
Para compilar o Nitter você precisa de uma instalação do Nim, consulte nim-lang.org para obter detalhes. É possível instalá-lo em todo o sistema ou no diretório de usuário criado abaixo.
Para compilar os arquivos scss, você precisa instalar libsass
. No Ubuntu e no Debian, você pode usar libsass-dev
.
O Redis é necessário para armazenamento em cache e, no futuro, para informações da conta. Deve estar disponível na maioria das distros como redis
ou redis-server
(Ubuntu/Debian). Executá-lo com a configuração padrão é bom, a configuração padrão do Nitter está definida para usar a porta Redis padrão e o host local.
Veja como criar um usuário nitter
, clonar o repositório e construir o projeto junto com os arquivos scss e md.
# useradd -m nitter# su nitter$ git clone https://github.com/zedeus/nitter $ cd nitter $ build ágil -d:release $ scss ágil $ ágil md $ cp nitter.example.conf nitter.conf
Defina seu nome de host, porta, chave HMAC, https (deve estar correto para cookies) e informações do Redis em nitter.conf
. Para executar o Redis, execute redis-server --daemonize yes
ou systemctl enable --now redis
(ou redis-server dependendo da distribuição). Execute o Nitter executando ./nitter
ou usando o serviço systemd abaixo. Você deve executar o Nitter atrás de um proxy reverso como Nginx ou Apache por motivos de segurança e desempenho.
Página para a imagem Docker: https://hub.docker.com/r/zedeus/nitter
zedeus/nitter:latest-arm64
.Para executar o Nitter com Docker, você precisará instalar e executar o Redis separadamente antes de executar o contêiner. Veja abaixo como executar também o Redis usando Docker.
Para construir e executar o Nitter no Docker:
docker build -t nitter:latest .docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host nitter:latest
Nota: Para ARM64, use este Dockerfile: Dockerfile.arm64
.
Uma imagem Docker pré-construída também é fornecida:
docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host zedeus/nitter:latest
Usando docker-compose para executar Nitter e Redis como contêineres diferentes: altere redisHost
de localhost
para nitter-redis
em nitter.conf
e execute:
docker-compose up -d
Observe que os comandos do Docker esperam um arquivo nitter.conf
no diretório em que você os executa.
Para executar o Nitter via systemd você pode usar este arquivo de serviço:
[Unit]Description=Nitter (um front-end alternativo do Twitter)After=syslog.targetAfter=network.target[Service]Type=simple# set user and groupUser=nitterGroup=nitter# configure locationWorkingDirectory=/home/nitter/nitterExecStart=/ home/nitter/nitter/nitterRestart=alwaysRestartSec=15[Install]WantedBy=multi-user.target
Em seguida, habilite e execute o serviço: systemctl enable --now nitter.service
Atualmente, o Nitter imprime alguns erros no stdout e não há nenhum registro real implementado. Se você estiver executando o Nitter com systemd, poderá verificar o stdout assim: journalctl -u nitter.service
(adicione --follow
para ver apenas as últimas 15 linhas). Se estiver executando a imagem Docker, você pode fazer o seguinte: docker logs --follow *nitter container id*
Sinta-se à vontade para entrar no nosso canal Matrix. Você pode me enviar um e-mail para [email protected] se desejar entrar em contato comigo pessoalmente.