A free and open source alternative Twitter front-end focused on privacy.
Inspired by the invidio.us project.
- All requests go through the backend, client never talks to Twitter
- Unofficial API (no rate limits or developer account required)
- AGPLv3 licensed, no proprietary instances permitted
- Lightweight (for @nim_lang, 36KB vs 580KB from twitter.com)
- Native RSS feeds
- Mobile support (responsive design)
Todo (roughly in this order)
- More caching (waiting for moigagoo/norm#19)
- Simple account system with customizable feed
- Json API endpoints
- Nitter logo
- Emoji support (WIP, uses native font for now)
In the future a simple account system will be added that lets you follow Twitter users, allowing you to have a clean chronological timeline without needing a Twitter account.
To compile Nitter you need a Nim installation, see nim-lang.org for details. It is possible to install it system-wide or in the user directory you create below.
You also need to install
libsass to compile the scss files. On Ubuntu and
Debian, you can use
# useradd -m nitter # su nitter $ git clone https://github.com/zedeus/nitter $ cd nitter $ nimble build -d:release $ nimble scss $ mkdir ./tmp
Set your hostname, port, page title and HMAC key in
nitter.conf, then run
Nitter by executing
./nitter. You should run Nitter behind a reverse proxy
such as Nginx or Apache for
To build and run Nitter in Docker:
docker build -t nitter:latest . docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d -p 8080:8080 nitter:latest
A prebuilt Docker image is provided as well:
docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d -p 8080:8080 zedeus/nitter:latest
To run Nitter via systemd you can use this service file:
[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
Then enable and run the service:
systemctl enable --now nitter.service