bmm

Из публичных источников

🤵 BMM — ваш персональный менеджер закладок | 你的专属书签管家

Машинный перевод · Показать оригинал

🤵 BMM - Your Personal Bookmark Manager | 你的专属书签管家

ПриложениеКатегория: Веб-приложения · Документация и вики · Файлы и облакоOpen sourceданные проверены 15 окт. 2026 г.

Обзор

  • bookmark-manager
  • bookmarks
  • bookmarks-manager
  • next
  • nextjs
  • project
  • react
  • tagging
  • web
  • webapp

Установка

Команды только показываются, маркетплейс их не выполняет. Сверяйтесь с официальной документацией.
  • Официальный сайтИз публичных источниковиз метаданных каталога
    bmm.lccl.cc/ ↗
  • Сборка из исходниковИз публичных источниковиз метаданных каталога

    Сборка из исходников: проверенного рецепта сборки нет — следуйте инструкциям репозитория.

    github.com/Y80/bmm ↗

Совместимость

«Неизвестно» значит, что доказательств не найдено, а не что продукт несовместим.
ПлатформаСтатусАрхитектураДоказательствоУверенность
Web browserНеизвестно———
Server / self-hostedНеизвестно———
Container (OCI)Неизвестно———

Релизы

проверено 29 окт. 2026 г.
В источнике релизы не найдены.

Профиль качества

алгоритм quality-v1.0 · оценено 15 окт. 2026 г.
Оценка качества84
Оценка риска0
Уверенность 1.00
Оценка качества и оценка риска — разные показатели. Высокое качество не гарантирует безопасность.

Составляющие оценки

Поддержка · 2012
last activity 130 days ago
Документация · 1515
README 7085 chars, description present
Готовность к использованию · 1515
install instructions: yes; releases: yes
Метаданные · 1010
4/4 of description, homepage, license, topics
Релизы · 108
1 release(s), latest 321 days ago
Точность категории · 108
classifier confidence 0.75
Популярность · 106
343 stars (log-dampened, 10k = max)
Ясность лицензии · 55
SPDX MIT
Сообщество · 55
issues enabled, 107 forks

Лицензия

MIT
Лицензия известнапо данным хостинга репозитория

Это статус политики каталога, а не юридическое заключение.

Источники

github.com/Y80/bmmОсновной★ 343 звёздактивность 8 июн. 2026 г.Основной репозиторий · Уверенность 1.00

Отзывы

Войдите, чтобы написать отзыв

Отзывов пока нет.

Альтернативы

README

Из Y80/bmm · лицензия MIT · загружено 29 окт. 2026 г.

简体中文 | English

概览

BMM 是一个用于管理网站书签的开源应用。它把“收藏网页”“按标签整理”“公开展示优质网站”“在后台持续维护数据”放到同一套系统里,并为书签录入提供自动抓取与 AI 辅助能力。

你可以把它当作:

  • 个人书签仪表盘
  • 团队内的知识导航站
  • 对外公开的优质网站目录

核心能力

  • 公开页、用户空间、管理后台三套使用场景共存,适合从个人使用逐步扩展到公共导航站。
  • 支持导入浏览器导出的书签文件,能把目录结构转为标签关联,降低迁移成本。
  • 支持标签与书签的多对多关系、拖拽排序、关键词检索与拼音检索。
  • 自动抓取网站标题、描述、图标,并补充常见图标路径探测能力。
  • 支持 GitHub OAuth 与邮箱密码登录。
  • 通过 AI 自动分析网站信息、推荐标签,并为标签生成关联建议与主题色。
  • 响应式界面同时覆盖桌面端与移动端,支持亮色与暗色主题。

计划中的功能

  • 多功能卡片,例如天气与资讯
  • 浏览器扩展插件
  • 书签可用性检测
  • 稍后阅读系统

技术栈

类别技术
框架Next.js 16 + React 19
语言TypeScript
样式Tailwind CSS 4
UIHeroUI + Ant Design
数据库SQLite / PostgreSQL / Turso
ORMDrizzle ORM
认证NextAuth v5 beta
AIVercel AI SDK + OpenAI-compatible provider
测试Vitest

快速开始

环境要求

[!TIP] 首次本地启动默认使用 SQLite。pnpm dev、pnpm build 和 pnpm start 都会先执行数据库初始化脚本,通常不需要手动建库。

本地开发

git clone https://github.com/Y80/bmm.git
cd bmm
pnpm install
pnpm dev

启动后访问 http://localhost:3000。

常用命令

命令说明
pnpm dev启动开发环境,并在启动前执行数据库初始化
pnpm build生产构建
pnpm start运行生产构建
pnpm lint执行 ESLint
pnpm test运行 Vitest 测试
pnpm db:test检查数据库是否可连接
pnpm db:migrate生成并执行数据库迁移
pnpm db:push直接根据 schema 推送数据库变更,可能导致数据风险
pnpm studio打开 Drizzle Studio

环境变量

完整示例可参考 .env。

[!TIP] 如果你只想先把项目跑起来,本地开发通常只需要默认 SQLite 配置。AI 供应商在管理员后台配置,不需要环境变量。

变量用途
DB_DRIVER数据库驱动,支持 sqlite 或 postgresql
DB_CONNECTION_URL数据库连接串
DB_AUTH_TOKENTurso 或 libsql 场景的令牌,可选
AUTH_URL当前站点访问地址,OAuth 回调与部署时会用到
AUTH_SECRETNextAuth 密钥,生产环境建议配置
AUTH_GITHUB_IDGitHub OAuth Client ID,可选
AUTH_GITHUB_SECRETGitHub OAuth Client Secret,可选

数据库

BMM 目前直接支持 SQLite、PostgreSQL 与 Turso。

  • 本地默认方案是 SQLite,数据库文件会在首次运行时自动初始化。
  • 切换到 PostgreSQL 或 Turso 时,只需要调整 DB_DRIVER 与 DB_CONNECTION_URL。
  • 仓库内提供了 docker-compose.yml 作为 PostgreSQL 场景示例。

如果你只想检查数据库状态,可以执行:

pnpm db:test
pnpm db:migrate

部署

Node 部署

git clone https://github.com/Y80/bmm.git
cd bmm
pnpm install
pnpm build
pnpm start

Docker 部署

项目自带 Dockerfile。下面示例使用 SQLite 挂载数据卷:

docker build -t bmm .

docker run --rm \
  -e DB_DRIVER=sqlite \
  -e DB_CONNECTION_URL=file:/app/volume/sqlite.db \
  -v bmm:/app/volume \
  -p 3000:3000 \
  bmm

Vercel 部署

  1. Fork 本仓库并导入到 Vercel。
  2. 在项目的 Environment Variables 中配置数据库与认证参数。
  3. 完成部署后,重新核对 AUTH_URL 与 GitHub OAuth 回调地址是否一致。

AI 集成

AI 能力用于减少书签录入与整理的手工操作,当前主要覆盖:

  • 自动分析网站标题、描述与图标
  • 为书签推荐相关标签
  • 为标签生成关联建议与主题色

项目通过 Vercel AI SDK 接入 OpenAI-compatible 服务。管理员登录后台后,可在「大模型供应商」页面维护站点级供应商配置,并选择当前启用的供应商。

支持范围包括 OpenAI-compatible 提供商,例如 OpenAI、DeepSeek、Moonshot、GLM 等。若接入非 OpenAI-compatible 服务,可参考 AI SDK Providers。

GitHub OAuth 配置

[!IMPORTANT] AUTH_URL、GitHub OAuth App 的 Authorization callback URL、以及用户实际访问 BMM 的地址必须保持一致。

  1. 访问 https://github.com/settings/applications/new 创建 GitHub OAuth App。
  2. 将回调地址设置为 https://your-domain.com/api/auth/callback/github 形式。
  3. 在环境变量中配置:
AUTH_GITHUB_ID=your-client-id
AUTH_GITHUB_SECRET=your-client-secret
AUTH_URL=https://your-domain.com

如需排查配置错误,可参考下面两张截图:

常见问题

它应该等于用户访问 BMM 的实际地址,例如:

  • http://localhost:3000
  • https://bmm.vercel.app
  • https://example.com
  • http://10.1.2.3:3000

优先检查以下三者是否完全一致:

  • GitHub OAuth App 中的 Authorization callback URL
  • 环境变量 AUTH_URL
  • 用户实际访问 BMM 的地址

问题示例截图:

[GitHub redirect_uri error]

只要访问地址发生变化,就要同步修改 AUTH_URL 和 GitHub OAuth App 中的回调地址。

当前仓库直接适配的是 SQLite / PostgreSQL / Turso。由于使用了 Drizzle ORM,继续扩展其他数据库的成本相对可控,但需要补充对应 schema 与驱动实现。

Открыть репозиторий ↗