Dependencies

sudo apt install libpcre++-dev libsass-dev redis redis-server git gcc

Setup nitter user

1
2
3
4
5
sudo useradd -m nitter
sudo passwd nitter
sudo usermod --shell /bin/bash nitter
sudo usermod -a -G sudo nitter
su nitter

Setup nitter

1
2
3
4
5
6
7
8
9
git clone https://github.com/zedeus/nitter
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
echo "export PATH=$HOME/.nimble/bin:$PATH" >> $HOME/.bashrc
export PATH=/home/nitter/.nimble/bin:$PATH
cd nitter
nimble build -d:release
nimble scss
nimble md
cp nitter.example.conf nitter.conf

Configure nitter

tee $HOME/nitter/nitter.conf << EOF
[Server]
address = "127.0.0.1"
port = 1234
https = false  # disable to enable cookies when not using https
httpMaxConnections = 100
staticDir = "./public"
title = "nitter"
hostname = "nitter.anonworld.us"

[Cache]
listMinutes = 240  # how long to cache list info (not the tweets, so keep it high)
rssMinutes = 10  # how long to cache rss queries
redisHost = "localhost"  # Change to "nitter-redis" if using docker-compose
redisPort = 6379
redisPassword = ""
redisConnections = 20  # connection pool size
redisMaxConnections = 30

[Config]
enableRSS = true  # set this to false to disable RSS feeds

# Change default preferences here, see src/prefs_impl.nim for a complete list
[Preferences]
theme = "Nitter"
replaceTwitter = "nitter.net"
replaceYouTube = "piped.kavin.rocks"
replaceReddit = "teddit.net"
replaceInstagram = ""
proxyVideos = true
hlsPlayback = false
infiniteScroll = false
EOF

Start redis-server

redis-server --daemonize yes

Configure Nginx as a reverse proxy

sudo tee /etc/nginx/site-availables/default << EOF
server {
    listen 80;
    listen [::]:80;
    server_name nitter.anonworld.us;
    location / {
        proxy_pass http://127.0.0.1:1234;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        add_header Content-Security-Policy "self";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";
        add_header Referrer-Policy "no-referrer";
    }
}
EOF

Create a systemd service for nitter

sudo tee /etc/systemd/system/nitter.service << EOF
[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
EOF

Enable redis-server

sudo systemctl enable --now redis-server

Enable and start nitter

sudo systemctl enable --now nitter.service
sudo systemctl start nitter.service
Edit Report
Pub: 15 Jul 2022 23:13 UTC
Views: 44