In this short guide, I wanted to document the few steps needed to have nitter running with docker-compose behind nginx.
1. Clone the repo
git clone --depth 1 https://github.com/zedeus/nitter.git
2. Configure nitter
Create a nitter.conf
file in the root of the repo, by copying the example conf: cp nitter.example.conf nitter.conf
In nitter.conf
file, change the redisHost
to nitter-redis
Optionally, adapt the other settings, but for a bare setup, that’s the only change needed.
3. docker-compose setup
Since nitter is running behind nginx, thus a proxy, you can leave the exposed ports in docker-compose.yml
as they are.
Alternatively, if you want to expose nitter under a different port than 8080, you can do so by changing the exposed ports like this: 127.0.0.1:YOUR_PORT
Now run docker-compose up -d
from the project directory to start nitter.
4. nginx setup
sudo vim /etc/nginx/sites-available/nitter
Add the following content to that file, just replacing the YOUR_DOMAIN
placeholder.
upstream nitter {
server 127.0.0.1:8080 max_fails=5 fail_timeout=60s;
}
server {
server_name YOUR_DOMAIN; # e.g. nitter.example.com
listen 80;
listen [::]:80;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/activity+json application/atom+xml;
client_max_body_size 16m;
ignore_invalid_headers off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://nitter;
}
}
Now create a symbolic link to make the nginx configuration available:
sudo ln -s /etc/nginx/sites-available/nitter /etc/nginx/sites-enabled/nitter
Test the nginx setup with sudo nginx -t
And reload the nginx service with sudo service reload nginx
5. Configure your DNS
Update your DNS records to point with an A
record to your server’s IP mapping it to the configured domain.