基于 Material Design 3设计风格的 GitHub仓库浏览应用
![]() |
![]() |
![]() |
- 📁 仓库浏览:直观的文件结构导航,同时提供首页文件和文件夹排除选项.
- 🔎 文件搜索:支持基于自建索引和 Github API 的快速文件搜索,可按分支、路径前缀和扩展名过滤.
- 📄 文件预览:多种文件格式预览,目前支持
Markdown、PDF和图片. - ⬇️ 文件下载:可下载单个文件或整个文件夹.
- 🌐 SEO优化:提高搜索引擎可见性.
-
克隆仓库
git clone https://github.com/UE-DND/Repo-Viewer.git cd Repo-Viewer -
安装依赖
npm install
-
创建环境配置:复制
.env.example到.env并配置必要的环境变量(参见下方内容)cp .env.example .env
-
启动开发服务器
npm run dev
必需的环境变量:
# 基础配置,用于SEO
SITE_TITLE = # 站点标题
SITE_DESCRIPTION = # 站点描述
SITE_OG_IMAGE = /icon.svg # 站点图标
SITE_KEYWORDS = # 站点关键词,可用逗号分隔
# 仓库信息
GITHUB_REPO_OWNER = # 仓库所有者
GITHUB_REPO_NAME = # 仓库名称
GITHUB_REPO_BRANCH = # 分支名称(默认为main)
# GitHub访问令牌
GITHUB_PAT1 = # 个人GitHub令牌
GITHUB_PAT2 = # 【可选】备用令牌可选的环境变量(以下任意变量均可忽略):
# 首页内容过滤- 仅对仓库根目录(首页)生效
HOMEPAGE_FILTER_ENABLED = true||false # 启用首页过滤功能
HOMEPAGE_ALLOWED_FOLDERS = folder1, folder2 # 允许在首页显示的文件夹,使用逗号分隔
HOMEPAGE_ALLOWED_FILETYPES = md, pdf, txt # 允许在首页显示的文件类型,使用逗号分隔
# 首页下载按钮控制- 仅对仓库根目录(首页)生效
HIDE_MAIN_FOLDER_DOWNLOAD = true||false # 隐藏首页的主文件夹下载按钮
HIDE_DOWNLOAD_FOLDERS = folder1, folder2 # 首页上需要隐藏下载按钮的文件夹,使用逗号分隔
# 页脚显示控制
FOOTER_LEFT_TEXT = [text](link) # 页脚左侧自定义信息
# 搜索索引功能
ENABLED_SEARCH_INDEX = true||false # 启用搜索索引功能
SEARCH_INDEX_BRANCH = RV-Index # 索引文件分支名称
SEARCH_DEFAULT_BRANCH = master # 默认搜索分支
SEARCH_MANIFEST_PATH = manifest.json # 索引文件路径
SEARCH_REFRESH_INTERVAL = 300000 # 索引刷新间隔(毫秒)
# 文件下载代理设置(仅用于下载功能,不影响内容浏览)
DOWNLOAD_PROXY_URL = # 下载主代理URL
DOWNLOAD_PROXY_URL_BACKUP1 = # 下载备用代理URL1
DOWNLOAD_PROXY_URL_BACKUP2 = # 下载备用代理URL2
# 开发者选项
DEVELOPER_MODE = true||false # 启用开发者模式
CONSOLE_LOGGING = true||false # 控制台日志
...
剩余配置见 `.env.example`-
在GitHub上创建个人访问令牌(PAT):
- 访问 GitHub设置→开发者设置→个人访问令牌
- 创建一个或多个具有
repo权限的令牌 - 保存这些令牌,你将在下一步中使用它们
-
在Vercel上导入你的仓库:
- 登录 Vercel
- 点击
Import Project - 选择
Import Git Repository并连接你的GitHub账号 - 选择Repo-Viewer仓库
-
配置环境变量:
- 在部署设置页面,找到
Environment Variables部分 - 添加必要的环境变量
- 在部署设置页面,找到
-
部署应用:
- 点击
Deploy按钮 - Vercel 将自动构建和部署你的应用
- 点击
文件检索功能由 Repo-Viewer-Search 支持,需在目标仓库配置 Github Action。详细配置见 Repo-Viewer-Search 文档。
本项目使用 AGPL-3.0 许可证。
- ✅ 可以自由使用、修改和分发
⚠️ 必须开源修改后的代码并保留原作者版权信息⚠️ 网络部署也需要开源⚠️ 修改后的版本必须使用相同的 AGPL-3.0 许可证
完整条款见 [LICENSE]



