Skip to content
项目

AmintaCCCP/GithubStarsManager

在 GitHub 查看

AmintaCCCP/GithubStarsManager has 3,824 GitHub stars and 197 forks. GitHot measured +6 stars in 24 hours and +41 in 7 days. Last checked 2026-11-07 21:48 UTC. Last push 2026-11-01.

这些数字如何统计

由 AI 驱动的 GitHub Star 管理器,支持语义搜索、自动分类和版本发布跟踪

实测星标增长

24小时
+6
7天
+41
15天
更新延迟
1个月
更新延迟

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

README_zh.md

原文

GithubStarsManager — AI 整理你的 GitHub 星标,让你真正找得到。向量搜索、仓库问答、MCP、Release 追踪,全部本地优先。

GithubStarsManager logo

GithubStarsManager

100% 本地数据 AI 支持 全平台 zread LINUX DO

GithubStarsManager - AI organizes GitHub stars for easy find | Product Hunt

星标太多找不到?GitHub Stars Manager 自动同步您的星标仓库,使用 AI 进行摘要和分类,支持语义搜索。追踪 Release、过滤资产、一键下载——比手动标签更智能,比 GitHub 更简单。

当前语言:中文。点击打开英文 README。

先看界面

先看界面 — Stars、搜索、Release 与仓库问答的产品截图。

https://github.com/user-attachments/assets/ad3493a0-948a-4de5-8de1-4e9afc46ec4d

Stars 视图:AI 分类后的星标仓库,带标签、语言点和分类侧边栏 搜索与过滤:关键词、语言、标签、分析状态和订阅筛选
Release 时间线:已订阅仓库、未读标记、平台过滤和一键下载 仓库问答助手:提交固定的只读回答,带来源追溯
更多视图 — 发现中心、Fork、Gist、设置、MCP
视图 截图
发现中心 / 趋势 Discovery
Fork 管理 Forks
Gist 管理 Gists
设置 Settings
AI 模型 AI config
网络代理 Network
向量搜索 Vectorize
MCP 服务 MCP

四步流程:同步星标、AI 整理、按语义查找,再用问答、MCP 和 Release 追踪行动。

✨ 重点功能

重点功能 — AI 管理、向量搜索、仓库问答、MCP、Release 追踪。

🤖 AI 管理仓库

星标不再是一堆杂乱列表,而是一座图书馆。应用自动同步所有星标仓库,AI 为它们批量生成摘要、标签与分类——支持暂停/继续,锁定分类永不被 AI 覆盖。按意图搜索,而不是记住仓库名。

🧠 向量搜索

基于 Cloudflare Vectorize 的自然语言搜索:仓库描述(或完整 README)被嵌入为向量,按语义相似度匹配,可选 AI 重排序,失败自动回退关键词搜索。此外,在任意仓库卡片上点击 查找相似仓库,即可围绕它构建语义邻域——立刻找出星标中与它最相似的仓库。

💬 仓库问答助手

直接从仓库卡片对单个仓库提问。每个会话固定到特定提交,展示每条回答背后的只读证据与可追溯来源,历史会话全部保存在本地。它不会索引整个仓库——深度代码分析请使用成熟的 Coding Agent。

🛰️ MCP 服务

Claude Code、Cursor 等 Agent 可通过 Model Context Protocol 读取并检索 AI 加工后的星标——Streamable HTTP 或旧版 SSE、Bearer Token 鉴权、全部只读工具,在设置中一键开启并提供可复制的 Agent 配置。无需额外安装。

📡 Release 追踪

订阅仓库,所有新版本汇聚在统一时间线。按平台与文件类型过滤资产,保存自定义关键词规则,一键下载——浏览器直下或推送至 aria2。

此外还包括

Fork 同步与 GitHub Actions、Gist 浏览/编辑与 AI 摘要、12 套主题预设、HTTP/SOCKS5 代理、WebDAV 备份、发现中心(趋势 / 热门发布 / 最受欢迎)、诊断日志、双语 Wiki 跳转、本地插件,以及打包好的桌面客户端。

其他功能

功能 描述
自动同步星标 连接 GitHub Token 自动拉取所有星标仓库
GitHub Lists 双向同步 与 GitHub 原生 Lists(星标列表)双向同步:拉取 Lists 归类为标签/分类并自动锁定,将本地分类回写为 GitHub Lists
语义搜索 按意图而非精确名称查找仓库
仓库页 Release 下载 从仓库卡片直接打开该仓库的最新 Release;浏览分页资产、更新日志、源码压缩包和可选 AI 摘要,并通过浏览器或已配置的 RPC 下载器下载
一键下载 展开 Release 资产并即时下载
智能资产过滤 按关键词匹配资产 (dmg / mac / arm64 / aarch64)
发现中心 浏览 GitHub 趋势、热门发布、最受欢迎项目
Fork 管理 查看、同步 Fork 仓库并触发 GitHub Actions 工作流
Gist 管理 浏览、创建、编辑、删除 Gist;AI 摘要与语义搜索
12 套主题预设 在设置中一键切换 12 套内置主题,每套均有协调的亮色与暗色配色,并提供实时预览
网络代理 HTTP / SOCKS5 代理支持,协议级连接探测测试
远程下载 (aria2) 通过 aria2 JSON-RPC 将 Release 资产推送到远程下载
诊断日志 前后端统一日志查看器,支持 Debug 捕获模式
双语 Wiki 跳转 根据仓库语言跳转到 Deepwiki (EN) 或 zread (ZH)
本地插件 仅 Electron:仓库操作、导出、Release 推荐、隔离插件页面。使用说明 · 开发文档
客户端打包 无需配置环境,下载即用

可选后端服务

部署 Express + SQLite 后端以实现:

  • 跨设备同步 — 在不同浏览器和设备间共享数据
  • 无 CORS 代理 — AI 和 WebDAV 请求通过服务器转发,避免浏览器 CORS 限制
  • 加密令牌存储 — API 密钥安全存储,不暴露在浏览器中
  • 网络代理转发 — 所有出站请求(GitHub、AI、WebDAV)通过 HTTP/SOCKS5 代理转发
  • RPC 下载代理 — 通过服务器转发 aria2 下载请求,密钥加密存储

🔍 界面说明

1. 仓库管理 (Stars 视图)

功能列表:

  • 自动同步 — 连接 GitHub Token 自动拉取所有星标仓库
  • AI 批量分析 — 批量选择仓库,使用 AI 自动生成描述、标签和分类;支持暂停/继续分析进度
  • 仓库卡片展示 — 显示 star 数、fork 数、编程语言、主分支状态;支持展开 README 预览
  • 分类侧边栏 — 拖拽排序分类、自定义分类颜色、折叠/展开侧边栏;支持锁定分类防止 AI 覆盖
  • 批量操作工具栏 — 批量归类到指定分类、批量恢复 AI 分析结果
  • 订阅指示器 — 直观显示哪些仓库已订阅 Release 更新
  • AI 分析状态 — 显示已分析/未分析/分析失败状态;支持按分析状态筛选
  • 查找相似仓库 — 从任意卡片一键进入语义邻域,找出星标中与它最相近的仓库(需启用向量搜索)

2. 仓库问答助手

直接从仓库卡片对单个仓库提出简洁的问题。每个会话都绑定到启动会话时选定的特定提交,并展示生成答案所依据的证据。

功能列表:

  • 提交固定的只读证据 — 会话中的来源始终绑定到创建会话时的仓库版本。
  • 可追溯回答 — 可在每条回答旁查看来源链接与助手的检索过程。
  • 本地会话历史 — 按仓库独立查看、搜索与管理历史对话。
  • 可配置检索预算 — 在 AI 设置中控制轮次、工具调用、文档/代码读取与响应时长的上限。

早期阶段说明: 此功能面向简单的仓库问答,可能会出现检索失败、证据不完整或无法回答的情况。它不会索引被提问仓库的全部文件;如需进行复杂的全仓库代码分析、多文件推理、调试或代码修改,请将仓库克隆到本地并使用成熟的 Coding Agent。


3. Release 时间线 (Releases 视图)

功能列表:

  • 订阅管理 — 订阅/取消订阅仓库的 Release 通知;支持批量取消订阅
  • 时间线展示 — 按时间倒序列出所有仓库的新版本发布;显示已读/未读状态
  • 智能资产过滤 — 按平台筛选 (macOS / Windows / Linux / ARM);按文件类型筛选 (dmg / zip / deb / rpm / apk)
  • 自定义过滤规则 — 保存自定义关键词过滤规则
  • 展开下载 — 展开 Release 资产列表,一键复制下载链接;显示文件大小
  • 多视图模式 — 列表视图 / 网格视图切换
  • 分页加载 — 支持分页加载历史发布记录
  • 刷新状态指示 — 显示最后刷新时间

4. 发现中心 (Discover 视图)

功能列表:

  • 五大发现渠道 — 趋势(Trending) / 热门发布(Hot Release) / 最受欢迎(Most Popular) / 话题(Topic) / 搜索(Search)
  • 趋势时间范围 — 今日 / 本周 / 本月 三个时间维度
  • 趋势筛选规则 — 更新时间 30 天内,Star 数 50+,按 Star 降序排列
  • 平台过滤 — 按操作系统筛选 (All / macOS / Windows / Linux / Browser)
  • 编程语言过滤 — 按语言筛选 (JavaScript / TypeScript / Python / Go / Rust 等)
  • AI 仓库分析 — 一键对发现频道中的仓库进行 AI 分析
  • 订阅仓库 — 将感兴趣的仓库加入订阅列表
  • 移动端适配 — 移动设备友好的频道切换体验

趋势数据来源于 GitHub 趋势 RSS 源,每 30 分钟自动更新。适合发现新兴热门项目、追踪技术趋势、寻找学习方向。


5. Fork 管理 (Forks 视图)

功能列表:

  • Fork 列表 — 自动获取所有 Fork 仓库,检测上游更新
  • 一键同步 — 将上游变更合并到任意分支,处理冲突
  • GitHub Actions — 在 Fork 卡片上直接查看和触发工作流
  • 未读/已读追踪 — 上游有新提交的 Fork 显示脉冲指示器
  • 搜索与分页 — 全文搜索、可配置分页大小

6. Gist 管理 (Gist 视图)

功能列表:

  • Gist 列表 — 自动同步所有 Gist 和星标 Gist,支持分类筛选(全部 / 我的 / 星标)
  • 创建与编辑 — 多文件 Gist 编辑器,支持语法高亮代码块;可添加、重命名、删除文件
  • AI 分析 — 一键 AI 摘要 Gist 内容;支持批量分析与暂停/继续
  • 语义搜索 — AI 搜索重排序,按意图查找 Gist,而非仅按文件名
  • 详情查看 — 可展开的 Gist 详情弹窗,显示文件内容、语法高亮和一键复制
  • Star 与 Unstar — 在卡片上直接 Star/Unstar Gist
  • 智能筛选 — 按分析状态、语言筛选,按名称/日期/文件数排序

7. 搜索与过滤

功能列表:

  • 多维度搜索 — 关键词搜索、仓库状态筛选、标签筛选、语言筛选、平台筛选
  • AI 分析状态筛选 — 已分析 / 未分析 / 分析失败 / 已编辑
  • Release 订阅筛选 — 已订阅 / 未订阅 Release
  • 分类状态筛选 — 分类已锁定 / 未锁定
  • 快捷键支持 — 显示搜索快捷键提示
  • 搜索统计 — 显示搜索结果数量和筛选条件
  • 搜索演示模式 — 展示语义搜索能力

8. 设置面板

设置分组:

分组 功能
General 语言切换(中/英)、亮色/暗色模式,以及 12 套内置主题的实时预览与切换
AI Config 配置 OpenAI / Anthropic / Ollama / 兼容 API;支持自定义端点和密钥
WebDAV 坚果云、Nextcloud、ownCloud 等标准 WebDAV 服务备份配置
Backup 备份历史记录、手动备份/恢复、增量备份
Backend Server 连接自建后端服务、API 密钥验证、同步状态指示
Network HTTP/SOCKS5 代理配置及协议级测试;aria2 RPC 远程下载设置
Category 分类管理、分类排序、默认分类覆盖规则
Data Management 数据导入/导出、清除本地数据、重置所有数据
向量搜索 配置 Cloudflare Vectorize Worker、Embedding 模型、索引模式(描述/README)、索引重建管理
MCP 服务 开启 MCP 供 Claude Code、Cursor 等 Agent 通过 Streamable HTTP / SSE 检索 AI 加工后的星标,Bearer Token 鉴权
插件 安装本地插件、确认权限、为页面搜索配置 SearXNG。仅桌面端,见 插件 Wiki

外观: 在 设置 → General → Appearance 中任选 12 套内置主题预设。每套主题均提供匹配的亮色和暗色配色,并会立即应用到整个应用。


9. 自定义 AI 模型

功能列表:

  • 多 AI 提供商支持 — OpenAI (GPT-3.5/GPT-4)、Anthropic (Claude)、Ollama (本地模型)、任何兼容 OpenAI 接口的 API
  • 自定义端点 — 支持私有部署的 AI 服务
  • 连接测试 — 配置后测试 API 连接是否可用
  • AI 模型选择 — 选择要使用的具体模型

🌍 界面语言

应用界面支持 10 种语言:简体中文 · English · 日本語 · Español · Português (Brasil) · Русский · 繁體中文 · Français · Deutsch · 한국어。

  • 在 设置 → 通用设置 → 语言设置 随时切换,登录页右上角也有语言选择器;选择按浏览器持久化,桌面端同样生效。
  • 首次安装会自动跟随浏览器/系统语言。
  • AI 生成内容跟随界面语言:仓库摘要与标签、Gist 摘要、Release 更新日志总结、仓库问答回答都会使用所选语言输出(内置提示词;自定义提示词完全由用户掌控)。
  • 内置分类同样跟随界面语言——显示名、AI 标签匹配、GitHub List 同步改名都会随切换自动迁移。
  • 缺失译文自动回退英文。翻译初稿由机器辅助生成,会持续校对完善——欢迎提交翻译改进 PR(src/locales)。

技术栈

  • 前端: React 18 + TypeScript + Tailwind CSS
  • 状态管理: Zustand
  • 图标: Lucide React + Font Awesome
  • 构建工具: Vite
  • 部署: Netlify

💻 桌面客户端(推荐)

直接下载桌面客户端,无需配置环境:

https://github.com/AmintaCCCP/GithubStarsManager/releases

快速开始

快速开始 — 桌面客户端、源码或 Docker。

1. 克隆项目

git clone https://github.com/AmintaCCCP/GithubStarsManager.git
cd GithubStarsManager

2. 安装依赖

npm install

3. 启动开发服务器

npm run dev

[!TIP] 本地使用 npm run dev 运行项目时,AI 服务和 WebDAV 的调用可能因浏览器 CORS 限制而失败。建议使用预编译客户端,或启动后端服务器(cd server && npm run dev)代理 API 请求以完全避免 CORS 问题。

4. 构建生产版本

npm run build

🤖 AI 服务配置

应用支持多种 AI 服务提供商:

  • OpenAI: GPT-3.5/GPT-4
  • Anthropic: Claude
  • 本地部署: Ollama 等本地 AI 服务
  • 其他: 任何兼容 OpenAI API 的服务

在设置页面中配置您的 AI 服务:

  1. 添加 AI 配置
  2. 输入 API 端点和密钥
  3. 选择模型
  4. 测试连接

🌐 网络代理配置

应用支持通过代理路由所有出站请求:

  • HTTP 代理 — 标准 HTTP CONNECT 隧道,支持可选认证
  • SOCKS5 代理 — 完整 SOCKS5 支持,包括用户名/密码认证 (RFC 1929)
  • 协议级测试 — 连接测试执行真实的协议握手,而非简单 TCP 连接
  • 加密存储 — 代理密码使用 AES-256-GCM 加密存储

在设置 → 网络标签页中配置(Electron 客户端或后端服务器可用时显示)。

network

⬇️ 远程下载 (aria2 RPC)

将 Release 下载链接直接发送到 aria2 守护进程:

  1. 启用 aria2 RPC:aria2c --enable-rpc --rpc-listen-port=6800
  2. 打开设置 → 网络 → 远程下载
  3. 输入主机、端口和可选密钥
  4. 测试连接后保存
  5. Release 资产按钮将自动把下载任务推送到 aria2

支持有后端和纯前端两种模式(浏览器直连 aria2)。

🧠 向量语义搜索(可选)

向量搜索 — 将星标嵌入 Cloudflare Vectorize,并查找相似仓库。

向量语义搜索基于 Cloudflare Vectorize 提供高精度的自然语言搜索。将仓库描述(或完整 README 内容)嵌入为向量,通过语义相似度匹配,而非关键词匹配。

工作原理:

  1. 前端通过用户配置的 Embedding 服务商(OpenAI、Gemini、Cohere、Ollama、硅基流动或任何兼容 OpenAI 的 API)生成向量
  2. 轻量级 Cloudflare Worker 作为纯 Vectorize 代理(存/查/删)
  3. 搜索时,将查询文本嵌入为向量并与索引匹配;可选由 AI 服务进行二次排序
  4. 关闭向量搜索或搜索失败时,自动回退到基于关键词的 AI 搜索

支持的 Embedding 服务商:

服务商 模型 维度
OpenAI text-embedding-3-small / large 1536 / 3072
Gemini text-embedding-004 768
Cohere embed-multilingual-v3.0 1024
Ollama nomic-embed-text / bge-m3 768 / 1024
硅基流动 BAAI/bge-large-zh-v1.5 1024
OpenAI 兼容 (自定义) (自定义)

快速配置:

  1. 部署 Cloudflare Worker — 详见 cloudflare-worker/README.md
  2. 在应用中:设置 → 向量搜索 — 填入 Worker 地址和认证 Token
  3. 配置 Embedding 服务商(API Key + 模型)
  4. 点击 重建索引 将所有仓库嵌入并上传
  5. 使用 AI 搜索 按钮 — 启用后自动走向量搜索

[!WARNING] 更换 Embedding 模型后必须重建索引 — 不同模型生成的向量维度不兼容。

查找相似仓库

在任意仓库卡片上点击 查找相似仓库(或卡片菜单中的 查找同类仓库),即可查看星标中与它语义最相近的仓库:

  • 仓库文本会被嵌入为查询向量,在你的向量索引中检索,结果按相似度排序——自动排除仓库自身
  • 匹配结果显示在专门的"相似仓库"视图中,顶部横幅展示锚点仓库;点击 重置(或切换任意分类)即可回到查找之前的状态
  • 需要先配置并启用向量语义搜索;未启用时该功能不可用

🛰️ MCP 服务(Agent 访问)

MCP 服务 — 让 Agent 通过 Model Context Protocol 检索 AI 加工后的星标。

让 Agent(Claude Code、Cursor 等)通过 Model Context Protocol 读取并检索 AI 加工后的星标仓库(摘要、标签、分类)。

  • Streamable HTTP(推荐):应用同源 POST /mcp(后端/Docker 模式)或 http://127.0.0.1:3927/mcp(客户端本地模式)
  • 旧版 SSE:/mcp/sse + /mcp/sse/messages(后端),/sse + /messages(客户端)— 供旧客户端使用
  • Bearer Token 鉴权,Token(gsm_mcp_...)稳定不变:开启时生成一次、重启后保持不变、仅在重置时更换

开启方式: 设置 → MCP 服务 → 打开开关。面板会显示端点地址、Token 以及一键复制(JSON)的 Agent 配置,同时提供 Streamable HTTP 与 SSE 两套配置,无需额外安装。

[!TIP] MCP Token 与后端 API_SECRET 相互独立。纯前端(无后端)模式不显示 MCP 设置页;需要桌面(Electron)客户端或已连接后端时可用。

暴露的工具(全部只读):

工具 说明
gsm_status 服务状态:仓库数、向量可用性、版本
gsm_search_repos 对星标做关键词搜索,支持筛选(语言 / 标签 / 平台 / 许可证 / 分类 / 星标数)与分页
gsm_get_repo 按数字 id 或 owner/repo 获取单个仓库,含 AI 加工字段
gsm_get_repos 按输入顺序批量获取最多 50 个仓库;保留重复输入并明确报告部分 not_found
gsm_get_repo_evidence 返回确定性的本地仓库与 Release 缓存证据;未保存的值保持为 null
gsm_list_categories 列出自定义分类
gsm_list_repos_by_category 分页列出某分类下的仓库
gsm_stats 聚合统计(语言、分析、标签)
gsm_find_similar_repos 使用现有向量索引查找相似星标仓库;排除源仓库,仅在向量搜索可用时列出
gsm_vector_search 语义向量搜索 — 仅当已配置并启用向量搜索时列出

gsm_vector_search 支持可选的 languages、tags、platforms、licenses、category、minStars、maxStars、isAnalyzed 与 isSubscribed 筛选。提供筛选时,Worker 最多返回 50 个语义候选,应用在本地确定性筛选后再截取 topK;这不是覆盖完整向量语料库的精确 filtered topK。未提供筛选时,既有查询行为保持不变。证据工具仅读取本地仓库数据库和 Release 缓存,不进行无界 GitHub 请求,不推测缺失字段,也不返回采纳决策。

gsm_status 还返回 availableTools(当前配置实际注册的完整工具名)与 conditionalTools(受向量搜索开关控制的工具名,无论当前是否可用)。gsm_get_repo_evidence 包含来自已存仓库 updated_at、分析时间戳与缓存 Release published_at 的 evidenceFreshness;由于本地未保存仓库同步时间和 Release 缓存更新时间,这些字段会返回 null,不会推测。

桌面(Electron)说明: 仅绑定回环地址(127.0.0.1),只能本机 Agent 访问;可在设置中调整主机/端口(默认端口 3927)。

MCP

🔌 本地插件(桌面端)

Electron 客户端可以从本地目录加载受信任的本地插件。安装后默认禁用,启用前必须确认 Manifest 中的权限。Worker 插件以隔离的 Node.js 运行(不是安全沙箱);页面插件在受限 iframe 中运行。

启用: 设置 → 插件 → 安装本地插件。浏览器和 Docker 前端不包含该宿主。

🔄 GitHub Lists 双向同步

在经典 REST 星标同步之外,原生 GitHub Lists(星标列表)支持双向同步:

  • 拉取(GitHub → 应用) — 在 设置 → 星标同步 选择 同步星标仓库及 list(或首次登录时选择)。通过 GraphQL 拉取 Lists;每个 list 名作为自定义标签写入,未锁定的仓库归入匹配分类并自动锁定,AI 分析不会重置。
  • 回写(应用 → GitHub) — 在 设置 → 星标同步 点击 同步仓库分类到 GitHub list。每个本地分类写回为同名 GitHub List(同名覆盖、不存在则默认私有新建);仓库按分类加入对应 list,本地未管理的其他 list 成员关系会被保留。

[!NOTE] 同步范围持久化保存:可在 设置 → 星标同步 中随时在「仅星标仓库」与「星标仓库及 list」之间切换。

💾 WebDAV 备份配置

支持多种 WebDAV 服务:

  • 坚果云: 国内用户推荐
  • Nextcloud: 自建云存储
  • ownCloud: 企业级解决方案
  • 其他: 任何标准 WebDAV 服务

配置步骤:

  1. 在设置页面添加 WebDAV 配置
  2. 输入服务器 URL、用户名、密码和路径
  3. 测试连接
  4. 启用自动备份

🚀 部署

部署 — 静态托管、前后端分离 Docker,或全栈单镜像。

Netlify 部署

  1. Fork 本项目到您的 GitHub 账户
  2. 在 Netlify 中连接您的 GitHub 仓库
  3. 配置构建设置:
    • Build command: npm run build
    • Publish directory: dist
  4. 部署

其他平台

项目构建后生成静态文件,可以部署到任何静态网站托管服务:

  • Vercel
  • GitHub Pages
  • Cloudflare Pages
  • 自建服务器

Docker 部署

GHCR 上提供预构建的后端和前端镜像,无需本地构建。现有 Docker 用户可继续使用完全不变的前后端分离 Compose 部署:

docker pull ghcr.io/amintacccp/github-stars-manager-server:latest
docker pull ghcr.io/amintacccp/github-stars-manager-frontend:latest
docker-compose up -d

此外,项目新增了一个可选的全栈单镜像(ghcr.io/amintacccp/github-stars-manager-fullstack),适合希望只运行一个容器、一个镜像标签和一个数据卷的用户。它在同一来源下提供网页、/api 和 MCP 端点。先在仓库根目录的 .env 设置 API_SECRET,全栈 Compose 会拒绝在无认证配置下启动:

API_SECRET=替换为足够长的随机密钥
docker compose -f docker-compose.fullstack.yml up -d

新增方式不会替换或修改现有的前端镜像、后端镜像、docker-compose.yml、桌面客户端或 API 路径。规范名称以角色结尾:-frontend、-backend 与 -fullstack;已有用户使用的 -server 后端镜像会继续作为兼容别名发布。正式的 vX.Y.Z Docker 标签必须与根目录 package.json 的客户端版本一致,latest 与 sha-* 则分别用于开发和提交追溯。完整的中文部署、数据备份、从分离部署迁移和回滚说明请参阅 DOCKER_zh.md。英文说明请参阅 DOCKER.md。

[!NOTE] 如果镜像为私有,需先执行 docker login ghcr.io(使用具有 read:packages 权限的 PAT)。

🖥️ 后端服务器(可选)

应用在没有后端的情况下也能完整运行(纯前端,使用 localStorage)。可选的 Express + SQLite 后端提供以下额外功能:

  • 跨设备同步: 在不同浏览器和设备间共享数据
  • 无 CORS 代理: AI 和 WebDAV 请求通过服务器转发,避免浏览器 CORS 限制
  • 令牌安全: API 密钥加密存储在服务器,不会暴露在浏览器网络请求中

快速启动(推荐使用 Docker)

docker-compose up -d

前端运行在 8080 端口,后端运行在 3000 端口。数据持久化存储在 Docker 卷中。该现有分离部署方式不会因全栈镜像而变化;需要独立升级、运维或扩缩容前后端时,仍建议继续使用它。若希望简化为单容器部署,请参阅 DOCKER_zh.md。

自定义配置,创建 .env 文件:

API_SECRET=your-secret
ENCRYPTION_KEY=your-key
BACKEND_IMAGE_TAG=0.8.4   # 固定后端版本(默认:latest)
FRONTEND_IMAGE_TAG=0.8.4  # 固定前端版本(默认:latest)

仅后端(docker run)

# 基础运行 — 无认证,端口 3000
docker run -d --name github-stars-backend \
  -v github-stars-data:/app/data \
  -p 3000:3000 \
  ghcr.io/amintacccp/github-stars-manager-server:latest

# 自定义密钥和端口
docker run -d --name github-stars-backend \
  -v github-stars-data:/app/data \
  -p 3000:3000 \
  -e API_SECRET="your-secret" \
  -e ENCRYPTION_KEY="your-key" \
  ghcr.io/amintacccp/github-stars-manager-server:latest

手动启动

cd server
npm install
npm run dev

环境变量

变量 必填 说明
API_SECRET 否 API 认证令牌。未设置时禁用认证。
ENCRYPTION_KEY 否 用于加密存储密钥的 AES-256 密钥。未设置时自动生成。
PORT 否 服务器端口(默认:3000)
CSP_CONNECT_SRC 否 追加到 connect-src CSP 指令的额外来源(逗号分隔),用于浏览器直接访问的自定义 AI 服务商 / 向量搜索 worker 端点(如 https://ai.example.com,https://worker.example.org)。
CSP_UPGRADE_INSECURE_REQUESTS 否 默认开启,会发送 upgrade-insecure-requests。当 fullstack 镜像通过纯 HTTP 提供服务(如 http://<内网 IP>:3000)时设为 false;否则浏览器会把 SPA 自身资源改写为 https://,页面保持空白。仅对不打算接入 TLS 的 HTTP 部署关闭。

前端连接后端

  1. 打开应用中的设置面板
  2. 找到「后端服务器」部分
  3. 输入 API Secret(如已配置)
  4. 点击「测试连接」,绿色指示灯表示连接成功
  5. 使用「同步到后端」/「从后端同步」来传输数据

目标用户

  • 拥有数百甚至数千星标的开发者
  • 系统性追踪软件发布的用户
  • 不想手动打标签的「懒效率」用户

补充说明

  1. 后端为可选项,但对于网页部署推荐启用。不启用时,所有数据存储在浏览器 localStorage 中,请定期备份重要数据。
  2. 我不会写代码,这个应用完全由 AI 编写,主要满足我个人需求。如果您有新功能需求或遇到 Bug,我只能尽力尝试,但无法保证成功,因为这取决于 AI 能否完成。😹

贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

支持

如果您觉得这个项目有用,请给它一个 ⭐️!

如有问题或建议,请提交 Issue 或联系作者。

星标地图

星标历史

Star history chart

探索相关项目