From 8522728320cd30e8f6d3ceba577fac6d49206b1d Mon Sep 17 00:00:00 2001 From: fzorb Date: Thu, 5 Sep 2024 16:04:42 +0300 Subject: [PATCH] nitter thingy --- content/technology/nitter.md | 112 +++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 content/technology/nitter.md diff --git a/content/technology/nitter.md b/content/technology/nitter.md new file mode 100644 index 0000000..522ebcb --- /dev/null +++ b/content/technology/nitter.md @@ -0,0 +1,112 @@ ++++ +title = 'Nitter in 2024' +date = 2024-09-05T10:34:46+03:00 +draft = false ++++ +Earlier this year, [Nitter has ceased development](https://github.com/zedeus/nitter/issues/1155#issuecomment-1913361757), due to the removal of guest accounts, but, you can still self host an alternative Twitter frontend, and we'll do it with something some love and some hate, Docker! + +We will be using [Privacydevel's Nitter fork](https://github.com/PrivacyDevel/nitter) for this. + +### Prerequisites: +* A Linux server with Docker and Docker-compose installed +* A few twitter accounts +* A machine with a residential IP + +### Step 1. Getting accounts +For this you will need a residential IP, as the login script won't work otherwise. You can simply run it on your computer or on your phone using something like Termux. + +After you get a bunch of alts, it is time to get their oauth tokens. +```bash +curl https://raw.githubusercontent.com/PrivacyDevel/nitter/master/twitter_oauth.sh -o twitter_oauth.sh +vim twitter_oauth.sh +``` +**twitter_oauth.sh** +```sh +... +5 | username="yourUsernameHere" +6 | password="yourPasswordHere" +... +``` +```sh +bash twitter_oauth.sh +``` +You'll end up with something similar in your terminal: +```json +{"oauth_token":"SECRET", "oauth_token_secret":"SECRET"} +``` +Save it for later. + +### Setting up Nitter +```bash +# Clone the instance. We will be using /srv/nitter +$ git clone https://github.com/PrivacyDevel/nitter.git /srv/nitter +# Now we have to edit the guest_accounts.json file +$ vim guest_accounts.json +``` +**guest_accounts.json** +```json +[{"oauth_token":"SECRET", "oauth_token_secret":"SECRET"}] +``` +```bash +# We'll also have to edit the docker-compose.yml file to pass the guest_accounts.json to the container. +$ vim docker-compose.yml +``` +```yaml +version: "3" + +services: + + nitter: + image: ghcr.io/privacydevel/nitter:master + container_name: nitter + ports: + - "8080:8080" # Replace with "8080:8080" if you don't use a reverse proxy. + volumes: + - ./nitter.conf:/src/nitter.conf:Z,ro + - ./guest_accounts.json:/src/guest_accounts.json:Z,ro + depends_on: + - nitter-redis + restart: unless-stopped + healthcheck: + test: wget -nv --tries=1 --spider http://127.0.0.1:8080/Jack/status/20 || exit 1 + interval: 30s + timeout: 5s + retries: 2 + user: "998:998" + read_only: true + security_opt: + - no-new-privileges:true + cap_drop: + - ALL + + nitter-redis: + image: redis:6-alpine + container_name: nitter-redis + command: redis-server --save 60 1 --loglevel warning + volumes: + - nitter-redis:/data + restart: unless-stopped + healthcheck: + test: redis-cli ping + interval: 30s + timeout: 5s + retries: 2 + user: "999:1000" + read_only: true + security_opt: + - no-new-privileges:true + cap_drop: + - ALL + +volumes: + nitter-redis: + +``` +```bash +$ vim nitter.conf # Now you can edit the nitter.conf file. I won't be going into it as it is fairly straightforward. +$ docker-compose up -d +``` + +And voila! Now if you go to your server's IP on port 8080, you will be greeted by Nitter. Isn't that awesome? + +Thanks to [Phin](https://filehaus.su) for helping me set it up. \ No newline at end of file