# 浏览器书签管理 **Repository Path**: mofees/bookmark ## Basic Information - **Project Name**: 浏览器书签管理 - **Description**: BookMark 是一款专为浏览器书签管理设计的工具,旨在帮助用户高效整理、存储和访问网页书签。通过直观的界面和强大的功能,用户可以轻松管理个人书签,提高工作效率。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-18 - **Last Updated**: 2026-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🌈 Bookmark — 一站式浏览器书签管理 · 账号保险柜 > 把散落在浏览器、办公软件、协作工具里的链接与账号,收拢到一个属于你自己的私有空间。 > .NET 8 + Vue 3 全栈构建,SQLite 开箱即用,七种主题随心切换,自托管数据完全自控。 --- ## ✨ 为什么选择 Bookmark - **一座保险柜,装下所有链接与账号** — 浏览器书签、常用网站账号、关键备注,统一加密存储,按分类/标签检索 - **七种视觉主题** — 琥珀复古、深海、林冠、日落、极简、银河、极霜,跟随心情随手切换 - **showcase 公开展示页** — 一键把你的书签集合变成一个可分享的精美站点 - **自托管优先** — SQLite 默认零配置,数据始终在你自己的机器上;亦可一键切到 MySQL/Oracle/SqlServer/PostgreSQL - **多用户隔离** — 每个用户只看见自己创建的数据,互不干扰 - **七语言国际化** — zh-CN / zh-TW / zh-HK / en-US / ja-JP / fr-FR / vi-VN --- ## 🎨 七种主题,一种优雅 showcase 页面提供七种精心调校的视觉主题,从极简到银河,从琥珀到深海,每一次切换都是一次心情的迁移。 | 琥珀复古 | 深海 | 林冠 | |----------|------|------| | ![琥珀复古](Doc/img/琥珀复古模式.png) | ![深海](Doc/img/深海模式.png) | ![林冠](Doc/img/林冠模式.png) | | 日落 | 极简 | 银河 | |------|------|------| | ![日落](Doc/img/日落模式.png) | ![极简](Doc/img/极简模式.png) | ![银河](Doc/img/银河模式.png) | | 极霜(默认) | |--------------| | ![极霜](Doc/img/极霜模式.png) | > 主题选择会自动记忆,下次进入 showcase 时延续你的偏好。 --- ## 🧭 核心功能 ### 书签管理 支持图标上传 / Element Plus 图标 / 首字母占位三种图标模式,按分类树筛选,按标签筛选,关键词搜索,分页浏览。 ![书签管理](Doc/img/书签管理.png) ### 分类管理 树形多级分类,拖拽排序,支持启用/停用、默认分类标记。 ![分类管理](Doc/img/分类管理.png) ### 标签管理 为书签打上彩色标签,一个书签可挂多个标签,在列表与 showcase 中均会渲染。 ![标签管理](Doc/img/标签管理.png) ### 账号保险柜 为每个书签挂载多组登录账号(用户名 / 密码 / 备注 / 账号标签 / 账号分类),密码默认隐藏,点击「显示」才可见。 ![账号保险柜](Doc/img/账号保险柜.png) ### 账号分类 按用途对账号分组(主账号 / 测试账号 / 共享账号 …),与书签分类独立解耦。 ![账号分类](Doc/img/账号分类.png) --- ## 🚀 快速开始 ### 一键打包成单站点(推荐) ```cmd Doc\bat\build-single.bat ``` 脚本会: 1. `pnpm install` + `pnpm build` 构建前端到 `Web/dist` 2. `dotnet publish` 发布后端到 `Bookmark.Entry\bin\Release\net8.0\publish` 3. 把 `Web\dist` 拷贝到 `publish\wwwroot`,由后端同一端口托管 4. 生成 `publish\run.bat`,双击即可启动并自动打开浏览器 完成后双击 `publish\run.bat` → 访问 `http://localhost:5000`。 ### 开发模式 ```bash # 后端 dotnet run --project Bookmark.Entry # Swagger:http://localhost:5000/swagger # 前端 cd Web pnpm install pnpm dev # http://localhost:3000 ``` ### Docker 部署 ```cmd Doc\Docker\build-docker.bat ``` 镜像推送至 `crpi-ued86xnwae548w9p.cn-shenzhen.personal.cr.aliyuncs.com/ruovea/bookmark-img:latest`,配合 `Doc\Docker\docker-compose.yml` 一行 `docker compose up -d` 即可上线。 ### 环境要求 - .NET 8 SDK - Node.js + pnpm(默认 SQLite 无需额外依赖) --- ## 🛠️ 技术栈 ### 后端 | 技术 | 说明 | | --- | --- | | .NET 8 | 后端 API 框架 | | SqlSugarCore | ORM(`SugarRepository` 泛型仓储 + `[Navigate]` 导航) | | RuoVea.DynamicWebApi | Service 实现 `IApplicationService` 即自动暴露 REST 端点 | | RuoVea.ExFilter | 全局返回包装 / 异常 / 操作日志 AOP | | RuoVea.ExSugar | 仓储 + UnitOfWork 事务 | | RuoVea.ExJwtBearer | JWT 认证 | | RuoVea.ExSwagger | Swagger / Knife4j | | RuoVea.ExDto | `RestfulResult` / `PageParam` / `EntityBaseIdDto` | | RuoVea.ExConfig | `AppSettings` 动态配置读取 | | RuoVea.ExIdGen | 雪花漂移 ID | | RuoVea.OmiApi.* | Auth/System/Dict/Notice/Log/Upload 等基础模块 | | Mapster | 对象映射 `.Adapt()` | | log4net | 按级别分文件日志 | | Newtonsoft.Json | 全局 JSON 序列化(雪花 ID 自动转字符串) | ### 前端 | 技术 | 版本 | 说明 | | --- | --- | --- | | Vue | 3.5+ | Composition API + `