{"id":13402058,"url":"https://github.com/zedeus/nitter","last_synced_at":"2025-03-22T21:43:16.668Z","repository":{"id":37271390,"uuid":"192928781","full_name":"zedeus/nitter","owner":"zedeus","description":"Alternative Twitter front-end","archived":false,"fork":false,"pushed_at":"2025-02-25T23:36:07.000Z","size":5377,"stargazers_count":10599,"open_issues_count":219,"forks_count":563,"subscribers_count":135,"default_branch":"master","last_synced_at":"2025-03-18T00:43:49.099Z","etag":null,"topics":["nim","privacy","self-hosted","twitter","x"],"latest_commit_sha":null,"homepage":"https://nitter.net","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zedeus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"zedeus","liberapay":"zedeus","patreon":"nitter"}},"created_at":"2019-06-20T13:51:49.000Z","updated_at":"2025-03-17T15:36:41.000Z","dependencies_parsed_at":"2023-02-17T19:15:38.584Z","dependency_job_id":"ac3ac572-463b-4424-9a41-d166dc9218fc","html_url":"https://github.com/zedeus/nitter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedeus%2Fnitter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedeus%2Fnitter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedeus%2Fnitter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedeus%2Fnitter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zedeus","download_url":"https://codeload.github.com/zedeus/nitter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245026005,"owners_count":20549067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nim","privacy","self-hosted","twitter","x"],"created_at":"2024-07-30T19:01:11.084Z","updated_at":"2025-03-22T21:43:16.656Z","avatar_url":"https://github.com/zedeus.png","language":"Nim","readme":"# Nitter\n\n[![Test Matrix](https://github.com/zedeus/nitter/workflows/Tests/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/run-tests.yml)\n[![Test Matrix](https://github.com/zedeus/nitter/workflows/Docker/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/build-docker.yml)\n[![License](https://img.shields.io/github/license/zedeus/nitter?style=flat)](#license)\n\n\u003e [!NOTE]\n\u003e Running a Nitter instance now requires real accounts, since Twitter removed the previous methods. \\\n\u003e This does not affect users. \\\n\u003e For instructions on how to obtain session tokens, see [Creating session tokens](https://github.com/zedeus/nitter/wiki/Creating-session-tokens).\n\nA free and open source alternative Twitter front-end focused on privacy and\nperformance. \\\nInspired by the [Invidious](https://github.com/iv-org/invidious) project.\n\n- No JavaScript or ads\n- All requests go through the backend, client never talks to Twitter\n- Prevents Twitter from tracking your IP or JavaScript fingerprint\n- Uses Twitter's unofficial API (no developer account required)\n- Lightweight (for [@nim_lang](https://nitter.net/nim_lang), 60KB vs 784KB from twitter.com)\n- RSS feeds\n- Themes\n- Mobile support (responsive design)\n- AGPLv3 licensed, no proprietary instances permitted\n\n\u003cdetails\u003e\n\u003csummary\u003eDonations\u003c/summary\u003e\nLiberapay: https://liberapay.com/zedeus\u003cbr\u003e\nPatreon: https://patreon.com/nitter\u003cbr\u003e\nBTC: bc1qpqpzjkcpgluhzf7x9yqe7jfe8gpfm5v08mdr55\u003cbr\u003e\nETH: 0x24a0DB59A923B588c7A5EBd0dBDFDD1bCe9c4460\u003cbr\u003e\nXMR: 42hKayRoEAw4D6G6t8mQHPJHQcXqofjFuVfavqKeNMNUZfeJLJAcNU19i1bGdDvcdN6romiSscWGWJCczFLe9RFhM3d1zpL\u003cbr\u003e\nSOL: ANsyGNXFo6osuFwr1YnUqif2RdoYRhc27WdyQNmmETSW\u003cbr\u003e\nZEC: u1vndfqtzyy6qkzhkapxelel7ams38wmfeccu3fdpy2wkuc4erxyjm8ncjhnyg747x6t0kf0faqhh2hxyplgaum08d2wnj4n7cyu9s6zhxkqw2aef4hgd4s6vh5hpqvfken98rg80kgtgn64ff70djy7s8f839z00hwhuzlcggvefhdlyszkvwy3c7yw623vw3rvar6q6evd3xcvveypt\n\u003c/details\u003e\n\n## Roadmap\n\n- Embeds\n- Account system with timeline support\n- Archiving tweets/profiles\n- Developer API\n\n## Resources\n\nThe wiki contains\n[a list of instances](https://github.com/zedeus/nitter/wiki/Instances) and\n[browser extensions](https://github.com/zedeus/nitter/wiki/Extensions)\nmaintained by the community.\n\n## Why?\n\nIt's impossible to use Twitter without JavaScript enabled, and as of 2024 you\nneed to sign up. For privacy-minded folks, preventing JavaScript analytics and\nIP-based tracking is important, but apart from using a VPN and uBlock/uMatrix,\nit's impossible. Despite being behind a VPN and using heavy-duty adblockers,\nyou can get accurately tracked with your [browser's\nfingerprint](https://restoreprivacy.com/browser-fingerprinting/), [no\nJavaScript required](https://noscriptfingerprint.com/). This all became\nparticularly important after Twitter [removed the\nability](https://www.eff.org/deeplinks/2020/04/twitter-removes-privacy-option-and-shows-why-we-need-strong-privacy-laws)\nfor users to control whether their data gets sent to advertisers.\n\nUsing an instance of Nitter (hosted on a VPS for example), you can browse\nTwitter without JavaScript while retaining your privacy. In addition to\nrespecting your privacy, Nitter is on average around 15 times lighter than\nTwitter, and in most cases serves pages faster (eg. timelines load 2-4x faster).\n\nIn the future a simple account system will be added that lets you follow Twitter\nusers, allowing you to have a clean chronological timeline without needing a\nTwitter account.\n\n## Screenshot\n\n![nitter](/screenshot.png)\n\n## Installation\n\n### Dependencies\n\n- libpcre\n- libsass\n- redis/valkey\n\nTo compile Nitter you need a Nim installation, see\n[nim-lang.org](https://nim-lang.org/install.html) for details. It is possible\nto install it system-wide or in the user directory you create below.\n\nTo compile the scss files, you need to install `libsass`. On Ubuntu and Debian,\nyou can use `libsass-dev`.\n\nRedis is required for caching and in the future for account info. As of 2024\nRedis is no longer open source, so using the fork Valkey is recommended. It\nshould be available on most distros as `redis` or `redis-server`\n(Ubuntu/Debian), or `valkey`/`valkey-server`. Running it with the default\nconfig is fine, Nitter's default config is set to use the default port and\nlocalhost.\n\nHere's how to create a `nitter` user, clone the repo, and build the project\nalong with the scss and md files.\n\n```bash\n# useradd -m nitter\n# su nitter\n$ git clone https://github.com/zedeus/nitter\n$ cd nitter\n$ nimble build -d:danger --mm:refc\n$ nimble scss\n$ nimble md\n$ cp nitter.example.conf nitter.conf\n```\n\nSet your hostname, port, HMAC key, https (must be correct for cookies), and\nRedis info in `nitter.conf`. To run Redis, either run\n`redis-server --daemonize yes`, or `systemctl enable --now redis` (or\nredis-server depending on the distro). Run Nitter by executing `./nitter` or\nusing the systemd service below. You should run Nitter behind a reverse proxy\nsuch as [Nginx](https://github.com/zedeus/nitter/wiki/Nginx) or\n[Apache](https://github.com/zedeus/nitter/wiki/Apache) for security and\nperformance reasons.\n\n### Docker\n\nPage for the Docker image: https://hub.docker.com/r/zedeus/nitter\n\n#### NOTE: For ARM64 support, please use the separate ARM64 docker image: [`zedeus/nitter:latest-arm64`](https://hub.docker.com/r/zedeus/nitter/tags).\n\nTo run Nitter with Docker, you'll need to install and run Redis separately\nbefore you can run the container. See below for how to also run Redis using\nDocker.\n\nTo build and run Nitter in Docker:\n\n```bash\ndocker build -t nitter:latest .\ndocker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host nitter:latest\n```\n\nNote: For ARM64, use this Dockerfile: [`Dockerfile.arm64`](https://github.com/zedeus/nitter/blob/master/Dockerfile.arm64).\n\nA prebuilt Docker image is provided as well:\n\n```bash\ndocker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host zedeus/nitter:latest\n```\n\nUsing docker-compose to run both Nitter and Redis as different containers:\nChange `redisHost` from `localhost` to `nitter-redis` in `nitter.conf`, then run:\n\n```bash\ndocker-compose up -d\n```\n\nNote the Docker commands expect a `nitter.conf` file in the directory you run\nthem.\n\n### systemd\n\nTo run Nitter via systemd you can use this service file:\n\n```ini\n[Unit]\nDescription=Nitter (An alternative Twitter front-end)\nAfter=syslog.target\nAfter=network.target\n\n[Service]\nType=simple\n\n# set user and group\nUser=nitter\nGroup=nitter\n\n# configure location\nWorkingDirectory=/home/nitter/nitter\nExecStart=/home/nitter/nitter/nitter\n\nRestart=always\nRestartSec=15\n\n[Install]\nWantedBy=multi-user.target\n```\n\nThen enable and run the service:\n`systemctl enable --now nitter.service`\n\n### Logging\n\nNitter currently prints some errors to stdout, and there is no real logging\nimplemented. If you're running Nitter with systemd, you can check stdout like\nthis: `journalctl -u nitter.service` (add `--follow` to see just the last 15\nlines). If you're running the Docker image, you can do this:\n`docker logs --follow *nitter container id*`\n\n## Contact\n\nFeel free to join our [Matrix channel](https://matrix.to/#/#nitter:matrix.org).\nYou can email me at zedeus@pm.me if you wish to contact me personally.\n","funding_links":["https://github.com/sponsors/zedeus","https://liberapay.com/zedeus","https://patreon.com/nitter"],"categories":["Web Related","Nim","Install from Source","网络资源","Alternative Frontends","Overview","nim","前端开发框架及项目","Apps","Twitter"],"sub_categories":["Useful Websites Front Ends","Social","隐私与安全","Twitter","其他_文本生成、文本对话","SocialMedia"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzedeus%2Fnitter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzedeus%2Fnitter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzedeus%2Fnitter/lists"}