一个基于 GitHub Issues 的 Memos 替代。配合 VandeeFeng/gitmemo,提供一个简单的页面。
代码由 cursor 协助生成。
由于 Memos 总是不太稳定,而 GitHub Issues 基本上可以满足我所有记录 Memos 的需求,因此做了这个页面。
部署到 Vercel 时填写必要的环境变量即可默认显示自己仓库的 issues 数据。
如果想显示其他仓库,现在只是提供了一个 简单的 GitHub Config 来配置仓库和 API,数据保存在 supabase 中。会优先获取环境变量的账号数据,具体的登录功能没有继续往下了。
- Framework: Next.js 13+ (App Router)
- UI: Tailwind CSS
- UI: shadcn/ui
- Language: TypeScript
- Database: Supabase
- Backend: GitHub API
- Deploy: Vercel
- 📝 基于 GitHub Issues 的笔记管理
- 📝 基于 Supabase 的数据库
- 🔄 同步 GitHub Issues 数据
- 🎨 支持亮色/暗色主题
- ✨ Markdown 编辑和实时预览
- 🏷️ 标签管理和筛选
- 🔗 反链
- 📤 卡片分享
-
克隆仓库并安装依赖:
git clone git@github.com:VandeeFeng/gitmemos.git cd gitmemos npm install
-
配置环境变量: 创建
.env.local
文件:GITHUB_TOKEN=your_github_token GITHUB_OWNER=your_github_username GITHUB_REPO=your_repository_name SUPABASE_URL=your_supabase_url SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
-
启动开发服务器:
npm run dev
- 访问仓库,点击
Settings
->Developer settings
->Personal access tokens
->Generate new token
- 生成新的 token,找到仓库,勾选
issue
读写权限 - 将 token 添加到
.env.local
文件中
- 访问仓库,点击
Settings
->Webhooks
->Add webhook
- 填写
Payload URL
为https://your-vercel-app-url/api/webhook/github
- 选择
Content type
为application/json
- 选择
Secret
为your_secret_key
,这个 secret 需要和.env.local
的GITHUB_WEBHOOK_SECRET
的 secret 一致 - 选择
Which events would you like to trigger this webhook?
为Issues
、Labels
- 点击
Add webhook
在 supabase 里有四个表,分别是 configs, issues, labels, sync_history
configs 表是用来存储用户配置的,包括 owner, repo, password
issues 表是用来存储 issues 的,包括 owner, repo, issue_number, title, body, state, labels, github_created_at, updated_at, created_at
labels 表是用来存储 labels 的,包括 owner, repo, name, color, description, updated_at, created_at
sync_history 表是用来存储同步历史的,包括 owner, repo, last_sync_at, issues_synced, status, error_message, created_at, updated_at
这部分可以根据自己的需求进行修改,比如添加更多的字段,或者修改表结构。
- 搜索功能
- 数据库
- 登录功能
- TimeLine
- 分享功能
- 实时更新,配置了GitHub webhook
- 移动端适配
- 优化数据处理
- AI 功能