Nitter

A privacy- and performance-focused alternative Twitter front-end that is free and open source.

Nitter is an alternative Twitter front-end that is free and open source with an emphasis on performance and privacy.

The Invidious project served as inspiration.

  • Neither JavaScript nor advertisements.
  • Clients never communicate with Twitter; all requests are processed through the backend.
  • Impedes Twitter’s ability to track your IP or JavaScript fingerprint.
  • Using the unauthorised Twitter API.
  • Light weight(For @nim lang, 60KB vs. 784KB via twitter.com).
  • RSS feed.
  • Themes Support for mobile.
  • No permissible proprietary instances under the AGPLv3 licence.

A community-maintained list of nitter instances and browser extensions may be found on the wiki.

Without JavaScript enabled, Twitter cannot be used. Apart from utilising a VPN and uBlock/uMatrix, it’s hard to avoid JavaScript analytics and IP-based tracking, which is a concern for privacy-conscious people. You can still be accurately tracked using your browser’s fingerprint even if you are using powerful ad blockers and a VPN; no JavaScript is necessary. After Twitter removed the option for users to decide whether or not their data is provided to advertisers, this all became especially crucial.

You can read Twitter without JavaScript and in complete anonymity by using a Nitter instance (hosted, for instance, on a VPS). Nitter respects your privacy while being 15 times lighter than Twitter on average and typically serving pages faster.

It will soon be possible to follow other Twitter users and maintain a tidy chronological timeline without having a Twitter account thanks to the addition of a straightforward account structure.

How to install Nitter?

There are three code dependencies.

  • libpcre
  • libsass
  • Redis

You require a Nim installation to compile Nitter; more information is available at nim-lang.org. You can install it in the user directory you create below or on the entire system. You need to install libsass in order to compile the scss files. You can utilise libsass-dev on Debian and Ubuntu systems.

Redis is necessary for account information now and in the future. Most distributions should have redis or redis-server (Ubuntu/Debian) available. Running it with the default configuration is acceptable because Nitter is configured to use localhost and the default Redis port.

Why use Nitter?

Twitter cannot be used without JavaScript enabled. It’s difficult to prevent JavaScript analytics and IP-based tracking, which is a worry for privacy-conscious folks, unless you use a VPN and uBlock/uMatrix. Even if you are using strong ad blockers and a VPN, you can still be precisely tracked using the fingerprint of your browser; JavaScript is not required. This all became especially important once Twitter removed the opportunity for users to choose whether or not their data is supplied to marketers.

Creating a nitter account, cloning the repository, and building the project along with the scss and md files are all demonstrated here.

# useradd -m nitter

# su nitter

$ cd nitter

$ nimble build -d:release

$ nimble scss

$ nimble md

$ cp nitter.example.conf nitter.conf

In nitter.conf, specify your hostname, port, HMAC key, https (which needs to be accurate for cookies), and Redis information. Run redis-server —daemonize yes or use systemctl enable —now redis to launch Redis. Use the systemd service listed below to launch Nitter instead of typing./nitter. For security and performance reasons, you should run Nitter behind a reverse proxy like Nginx or Apache.

To run Nitter with Docker

Redis must first be installed and operated independently before Nitter can be launched with Docker. See the instructions below for running Redis using Docker.

Nitter must be created and operated in Docker.

docker build -t nitter:latest .

docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d –network host nitter:latest

Additionally, a pre built Docker image is offered:

docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d –network host zedeus/nitter:latest

Using docker-compose to run both Nitter and Redis as different containers: Change redisHost from localhost to nitter-redis in nitter.conf, then run:

docker-compose up -d

Remember that the nitter.conf file must exist in the location where you run the Docker commands.

You can use the following service file to run Nitter with Systemd:

[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

 No real logging implemented

There is currently no meaningful logging system in place, and Nitter broadcasts some problems to stdout. You can check if Nitter is operating with systemd by typing journalctl -u nitter.service. You can use the following command if the Docker image is running: docker logs —follow [container id for nitter]

docker logs –follow *nitter container id*

Leave a Reply

Your email address will not be published.