Alternative Twitter front-end
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 26 天前 | ||
| 28 天前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 5 年前 | ||
| 3 个月前 | ||
| 7 年前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 4 年前 |
Nitter
Note
由于 Twitter 已移除旧有方法,现在运行 Nitter 实例需要真实账号。
这对用户没有影响。
有关如何获取会话令牌的说明,请参见 创建会话令牌。
一款注重隐私与性能的免费开源 Twitter 前端替代品。
灵感源自 Invidious 项目。
- 无 JavaScript 或广告
- 所有请求均通过后端处理,客户端从不与 Twitter 直接通信
- 防止 Twitter 追踪您的 IP 或 JavaScript 指纹
- 使用 Twitter 非官方 API(无需开发者账号)
- 轻量设计(以 @nim_lang 为例,仅 60KB,而 twitter.com 为 784KB)
- RSS 订阅源
- 主题切换
- 移动设备支持(响应式设计)
- 采用 AGPLv3 许可协议,不允许专有实例
捐赠
Liberapay: https://liberapay.com/zedeusPatreon: https://patreon.com/nitter
BTC: bc1qpqpzjkcpgluhzf7x9yqe7jfe8gpfm5v08mdr55
ETH: 0x24a0DB59A923B588c7A5EBd0dBDFDD1bCe9c4460
XMR: 42hKayRoEAw4D6G6t8mQHPJHQcXqofjFuVfavqKeNMNUZfeJLJAcNU19i1bGdDvcdN6romiSscWGWJCczFLe9RFhM3d1zpL
SOL: ANsyGNXFo6osuFwr1YnUqif2RdoYRhc27WdyQNmmETSW
ZEC: u1vndfqtzyy6qkzhkapxelel7ams38wmfeccu3fdpy2wkuc4erxyjm8ncjhnyg747x6t0kf0faqhh2hxyplgaum08d2wnj4n7cyu9s6zhxkqw2aef4hgd4s6vh5hpqvfken98rg80kgtgn64ff70djy7s8f839z00hwhuzlcggvefhdlyszkvwy3c7yw623vw3rvar6q6evd3xcvveypt
开发路线图
- 嵌入功能
- 带时间线支持的账户系统
- 推文/个人资料归档
- 开发者 API
资源
为什么选择 Nitter?
若不启用 JavaScript,Twitter 根本无法使用,而且截至 2024 年,你还必须注册账号。对于注重隐私的用户而言,阻止 JavaScript 分析和基于 IP 的跟踪至关重要,但除了使用 VPN 以及 uBlock/uMatrix 之外,几乎别无他法。即便使用了 VPN 和功能强大的广告拦截器,你的浏览器指纹仍可能被精准追踪,且无需 JavaScript。尤其在 Twitter 移除了用户控制其数据是否发送给广告商的功能后,这一切就显得尤为重要。
通过使用 Nitter 实例(例如托管在 VPS 上),你可以在不启用 JavaScript 的情况下浏览 Twitter,同时保护自己的隐私。除了尊重你的隐私外,Nitter 平均比 Twitter 轻量约 15 倍,并且在大多数情况下页面加载速度更快(例如,时间线加载速度快 2-4 倍)。
未来,Nitter 将添加一个简单的账户系统,让你可以关注 Twitter 用户,从而无需 Twitter 账户就能拥有一个干净的按时间顺序排列的时间线。
截图

安装
依赖项
- libpcre
- libsass
- redis/valkey
要编译 Nitter,你需要安装 Nim,详情请参见nim-lang.org。你可以将其安装在系统范围内,或者安装在下文将要创建的用户目录中。
要编译 scss 文件,你需要安装 libsass。在 Ubuntu 和 Debian 系统上,你可以使用 libsass-dev 包。
Redis 是缓存所必需的,未来也将用于账户信息。截至 2024 年,Redis 已不再是开源软件,因此建议使用其分支 Valkey。大多数发行版都提供该软件,通常名为 redis 或 redis-server(Ubuntu/Debian),或者 valkey/valkey-server。使用默认配置运行即可,Nitter 的默认配置已设置为使用默认端口和本地主机。
以下是创建 nitter 用户、克隆仓库以及构建项目(包括 scss 和 md 文件)的方法。
# useradd -m nitter
# su nitter
$ git clone https://github.com/zedeus/nitter
$ cd nitter
$ nimble -l build -d:danger --mm:refc
$ nimble -l scss
$ nimble -l md
$ cp nitter.example.conf nitter.conf
在 nitter.conf 中设置主机名、端口、HMAC 密钥、https(对于 Cookie 必须正确配置)以及 Redis 信息。要运行 Redis,可以执行 redis-server --daemonize yes,或者根据发行版使用 systemctl enable --now redis(或 redis-server)。通过执行 ./nitter 或使用下面的 systemd 服务来运行 Nitter。出于安全和性能考虑,建议将 Nitter 部署在反向代理之后,例如 Nginx 或 Apache。
Docker
Docker 镜像页面:https://hub.docker.com/r/zedeus/nitter
注意:发布的镜像是多架构的 — zedeus/nitter:latest 可在 amd64 和 arm64 架构上原生运行。
要使用 Docker 运行 Nitter,在运行容器之前,需要单独安装并运行 Redis。以下是如何使用 Docker 运行 Redis 的方法。
首先创建配置文件。Docker 命令会将配置文件挂载到容器中,因此该文件必须事先存在于主机上。如果已克隆仓库:
cp nitter.example.conf nitter.conf
如果您使用的是预构建镜像且没有本地克隆,请下载nitter.example.conf并将其另存为nitter.conf。
要在Docker中构建和运行Nitter:
docker build -t nitter:latest .
docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host nitter:latest
同时也提供了预构建的 Docker 镜像:
docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host zedeus/nitter:latest
使用 docker-compose 将 Nitter 和 Redis 作为不同容器运行:
在 nitter.conf 中将 redisHost 从 localhost 更改为 nitter-redis,然后运行:
docker-compose up -d
请注意,Docker 命令会从你运行命令的目录挂载 nitter.conf(对于 docker-compose,还会挂载 sessions.jsonl)。如果挂载的文件不存在,Docker 会静默创建一个目录来替代它,导致容器因“不是目录:你是否尝试将目录挂载到文件上”而失败。请删除该目录并按照上文所示创建文件。
systemd
要通过 systemd 运行 Nitter,你可以使用以下服务文件:
[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
然后启用并运行服务:
systemctl enable --now nitter.service
日志
Nitter 目前会将一些错误输出到标准输出,且尚未实现真正的日志功能。如果您使用 systemd 运行 Nitter,可以通过以下命令查看标准输出:journalctl -u nitter.service(添加 --follow 可仅查看最后 15 行)。如果您运行的是 Docker 镜像,可以执行:docker logs --follow *nitter 容器 ID*
联系方式
欢迎加入我们的 Matrix 频道。如果您希望私下联系我,可发送邮件至 zedeus@pm.me。