📚 书签管理系统

基于 Cloudflare Pages + D1 + Vue 3 构建的现代化书签管理系统。

✨ 功能特性

  • 📑 分类管理:多级嵌套分类,支持拖拽排序
  • 🔖 书签管理:添加、编辑、删除书签,支持私密标记
  • 🔍 实时搜索:按名称、URL 或描述快速搜索
  • 📥 导入导出:支持 JSON/HTML 格式,导入浏览器书签
  • 💾 云端备份:备份到 Cloudflare R2,支持恢复(可选)
  • 批量操作:批量移动、编辑、删除
  • 🤖 AI 功能:智能生成描述、分类推荐(支持 OpenAI 兼容 API)
  • 🎨 主题定制:亮色/暗色主题、自定义壁纸、标题、页脚
  • 🌐 浏览器扩展:支持 Chrome、Edge、Brave、Firefox

🛠️ 技术栈

Vue 3 + Vite + Cloudflare Pages Functions + D1 + R2

🚀 快速部署

1. 创建 D1 数据库

Cloudflare Dashboard 中:

  • Workers & Pages > D1 > Create database,名称:bookmark-db
  • 进入数据库 > Console,执行 schema.sql

2. 部署 Pages 项目

  • Fork 本仓库 到 GitHub
  • 在 Cloudflare Dashboard 创建 Pages 项目,连接 GitHub 仓库
  • 构建设置:构建命令 npm run build,输出目录 dist

3. 配置绑定和变量

绑定 D1 数据库

  • Pages 项目 > Settings > Functions > D1 database bindings
  • 添加绑定:变量名 DB,选择 bookmark-db

配置环境变量(部署后配置):

  • Pages 项目 > Settings > Variables and Secrets
  • 添加以下变量后,在 Deployments 页面重试部署
变量名说明必需
ADMIN_USERNAME管理员用户名
ADMIN_PASSWORD管理员密码
JWT_SECRETJWT 密钥(至少32位随机字符串)
OPENAI_API_KEYOpenAI API Key(AI 功能)
OPENAI_BASE_URLAPI 地址(默认:https://api.openai.com/v1
OPENAI_MODEL模型名称(默认:gpt-4o-mini

配置 R2 备份(可选):

  • Workers & Pages > R2 > Create bucket,名称:bookmark-backups
  • Pages 项目 > Settings > Functions > R2 bucket bindings
  • 添加绑定:变量名 BACKUP_BUCKET,选择 bookmark-backups
  • 重试部署

提示:所有配置通过 Dashboard 完成,无需修改代码。wrangler.toml 仅用于本地开发(已添加到 .gitignore)。

本地开发

cp wrangler.toml.example wrangler.toml
# 编辑 wrangler.toml,替换 database_id
npm run dev

🧩 浏览器扩展

商店下载

手动安装: 在 Releases 下载扩展:

  • Chrome/Edge/Brave: bookmark-manager-chromium.zip
  • Firefox: bookmark-manager-firefox.zip

安装后配置服务器地址和管理员账号即可使用。