TikTok 式 GitHub 开源项目发现信息流 —— 上滑刷仓库、为你推荐、一键收藏、全站热门榜。
浏览使用地址:https://www.awzj.net/plugin/gitflow/
- 探索模式:按 Star 区间 + 语言随机发现优质仓库,告别算法茧房。
- 为你推荐:读取你 Star 过的项目,找出同样 Star 了这些项目的人,按”共现”推荐相似仓库(并标注推荐理由)。
- 搜索:顶部搜索框直接查 GitHub 仓库 / 关键词。
- 多语言界面:整站中文 / 英文一键切换。
- 仓库描述翻译:自动翻译成中文(Google 为主,MyMemory 兜底),可开关。
- 一键收藏 + 全站热门榜:收藏后自动同步到服务端,所有人可见「N 人收藏」公共榜。
- README 预览:卡片内直接渲染仓库 README。
- 一键复制:
git clone命令与分享链接。 - 不感兴趣:屏蔽某仓库 / 作者,信息流不再推送。
- 深浅主题:暗色极光默认,支持亮色主题并记忆偏好。
- 部署无依赖:纯 PHP,无需 Composer / 数据库,收藏数据用带守卫的 PHP 文件存储。
- 前端:原生 HTML / CSS / JavaScript(无框架、无构建步骤)
- 后端:PHP 8+(仅作 GitHub API 代理与密钥托管)
- 存储:服务端 PHP 数据文件(
data/store.php,零数据库) - 外部 API:GitHub REST API、Google 翻译(gtx 端点)、MyMemory 翻译
gitflow/
├── index.php 主入口(PHP 版,前端 + 引导逻辑)
├── index.html 无 PHP 本地预览版(直连 GitHub,仅用于本地体验)
├── config.php 配置 / 密钥(已被禁止直接访问)
├── _common.php 共享逻辑(ghCall / 缓存 / 翻译)
├── .htaccess 根目录保护(Apache 专用)
├── api/
│ ├── auth.php GitHub Token 登录(存入 session)
│ ├── collections.php 公共收藏读写 + 热门榜聚合
│ ├── github.php GitHub API 代理(防 SSRF / 路径穿越)
│ ├── recommend.php 服务端 Star 共现推荐算法
│ └── translate.php 翻译代理(Google 为主 + MyMemory 兜底)
├── data/
│ ├── .htaccess 数据目录保护(Apache 专用)
│ └── index.php 防目录浏览(Apache / nginx 通用)
└── cache/ GitHub API 响应缓存(运行时自动生成,含 .htaccess)
把整个 gitflow/ 目录上传到网站目录(例如子目录 /plugin/gitflow/)。目录名区分大小写,保持小写 gitflow。
编辑 config.php:
GH_APP_TOKEN:GitHub Token(建议只勾选public_repo)。填了可提升匿名模式限流(默认仅 60 次/小时)。MYMEMORY_KEY:MyMemory 翻译密钥(选填,可提升兜底翻译额度)。
两项留空程序也能跑,只是走的 GitHub 匿名限流。
data/与cache/需 PHP 有写入权限(收藏与缓存会写入)。- 第一次运行会自动创建
data/store.php与cache/*.json。
.htaccess 已写好,无需额外配置,直接可用。
Nginx 不读 .htaccess。本项目已做代码级加固,无需依赖 .htaccess:
data/store.php带GF_READ守卫,网页直接访问返回 403,仅collections.php内部可读取。data/index.php防止目录浏览。
但你仍需确认 Nginx 已启用 PHP-FPM(否则 .php 会被当作文本下载或 404)。典型配置片段:
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock; # 按实际路径调整
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
确认方法:上传后访问 index.php,若页面空白 / 被下载 / 404,则是 PHP 未接线,需补上面的 location 规则。
- 推荐算法、GitHub Token、翻译密钥均托管在服务端,不会下发给前端。
- 前端
index.php的 HTML/CSS/JS 本就需浏览器下载才能运行,这部分代码公开属正常。 - 收藏数据(含 GitHub 登录名)存于受守卫的
data/store.php,Apache / nginx 下均不可直接访问。 - 热门榜按「不同 GitHub 账号去重计数」防刷榜,但聚合结果对所有访客公开(即「公用」的设计本意)。
- Google gtx 翻译端点属于 ToS 灰色地带,已用 MyMemory 兜底;极端情况下翻译可能受限。
- 匿名模式受 GitHub 公开 API 限流约束(建议填
GH_APP_TOKEN)。 - 「为你推荐」需登录(GitHub Token),且依赖你已 Star 过一定数量的公开仓库。
-
想快速看界面:直接用浏览器打开
index.html(直连 GitHub,收藏 / 热门榜等功能不可用)。 -
完整功能本地预览:用 PHP 内置服务器
php -S 127.0.0.1:8653 -t /path/to/gitflow # 浏览器访问 http://127.0.0.1:8653/index.php