nitter:基于 Nim 语言的 Twitter 前端替代项目

Alternative Twitter front-end

分支6Tags0
文件最后提交记录最后更新时间
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/zedeus
Patreon: 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 账户就能拥有一个干净的按时间顺序排列的时间线。

截图

nitter

安装

依赖项

  • libpcre
  • libsass
  • redis/valkey

要编译 Nitter,你需要安装 Nim,详情请参见nim-lang.org。你可以将其安装在系统范围内,或者安装在下文将要创建的用户目录中。

要编译 scss 文件,你需要安装 libsass。在 Ubuntu 和 Debian 系统上,你可以使用 libsass-dev 包。

Redis 是缓存所必需的,未来也将用于账户信息。截至 2024 年,Redis 已不再是开源软件,因此建议使用其分支 Valkey。大多数发行版都提供该软件,通常名为 redisredis-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 部署在反向代理之后,例如 NginxApache

Docker

Docker 镜像页面:https://hub.docker.com/r/zedeus/nitter

注意:发布的镜像是多架构的 — zedeus/nitter:latest 可在 amd64arm64 架构上原生运行。

要使用 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 中将 redisHostlocalhost 更改为 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

项目介绍

备用推特前端【此简介由AI生成】

定制我的领域
17714.47 K1.34 K访问 GitHub