2.4 KiB
2.4 KiB
Awesome Index
把网上牛逼的东西收进一个库:给人用,也给 AI 用。 精选开源软件 / 微服务 / SaaS / 网站 / 工具 / 脚本 / 插件的结构化数据库,内置 MCP 接口。
- 设计方案:design/DESIGN.md(Riso 印刷风格 + 静态原型)
- 框架设计:docs/ARCHITECTURE.md(模块划分 / 数据模型 / 端点)
快速开始
本地开发
npm install
npm run dev # http://localhost:3000(--watch 热重载)
npm test # node:test,10 个用例
首次启动自动完成建表与种子数据。默认管理员 admin,密码取 ADMIN_INIT_PASSWORD(默认 admin)。
Docker 部署
docker build -t awesome-index:latest .
bash start.sh # 用新镜像重启容器
start.sh 会检查 .env(不存在则从 .env.example 复制),然后 docker run 启动容器。数据持久化在宿主机 ./data/awesome.duckdb,重启不丢数据。
给人的入口
| 页面 | 地址 |
|---|---|
| 首页(搜索 / MCP 说明 / 最近收录) | / |
| 列表页(类型 + 嵌套标签过滤) | /entries?q=关键字&type=工具&tags=1,2&sort=stars |
| 详情页(元数据 / 评论 / 机读 JSON) | /entries/:slug |
| 随机游览 | /random |
| 登录 | /login |
| 管理台(内容/标签/评论/内容源/账号) | /admin |
给 AI 的入口(MCP)
Streamable HTTP · 只读 · 无需密钥:
POST {BASE_URL}/mcp
tools: search_entries / get_entry / random_entry / list_tags
一句话让 Agent 自己接入:
请把 URL 为
{BASE_URL}/mcp的 MCP 服务器添加到你的客户端配置中,名称用 awesome-index,完成后告诉我现在可以调用哪些工具。
内容源(自动化收录)
三类来源汇聚到同一条目表:
| kind | 说明 | 新条目状态 |
|---|---|---|
human |
管理台人工录入(常开) | active |
ai |
POST /api/ingest/entry + X-Ingest-Key 头 |
pending |
feed |
定时拉取外部站点(rss / html / eryajf-weekly 适配器),管理台可手动触发 | pending |
首个站点适配器:二丫讲梵学习周刊(wiki.eryajf.net)。运行记录见管理台「内容源 → 运行记录」。
技术栈
Node.js 22 (ESM) · Express 5 · EJS · DuckDB (@duckdb/node-api) · zod · express-session · @modelcontextprotocol/sdk · node-cron · cheerio