一个优雅、快速、易于部署的书签(网址)收藏与分享平台,完全基于 Cloudflare 全家桶构建。
在线体验: https://nav.wangwangit.com
首页 | 后台管理 |
---|---|
![]() |
![]() |
- 📱 响应式设计:完美适配桌面、平板和手机等各种设备。
- 🎨 主题美观:界面简洁优雅,支持自定义主色调。
- 🔍 快速搜索:内置站内模糊搜索,迅速定位所需网站。
- 📂 分类清晰:通过分类组织书签,浏览直观高效。
- 🔒 安全后台:基于 KV 的管理员认证,提供完整的书签增删改查后台。
- 📝 用户提交:支持访客提交书签,经管理员审核后显示。
- ⚡ 性能卓越:利用 Cloudflare 边缘缓存,实现秒级加载,并极大节省 D1 数据库读取成本。
- 📤 数据管理:支持书签数据的导入与导出,格式兼容,方便迁移。
准备工作: 你需要一个 Cloudflare 账号。
-
在 Cloudflare 控制台,进入
Workers & Pages
->D1
。 -
点击
创建数据库
,数据库名称输入book
,然后创建。 -
进入数据库的
控制台
,执行下方的 SQL 语句来快速创建所需的表结构。(注意移除中文注释)
-- 创建已发布网站表
CREATE TABLE sites (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
url TEXT NOT NULL,
logo TEXT,
"desc" TEXT,
catelog TEXT NOT NULL,
status TEXT,
sort_order INTEGER NOT NULL DEFAULT 9999,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 创建待审核网站表
CREATE TABLE pending_sites (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
url TEXT NOT NULL,
logo TEXT,
"desc" TEXT,
catelog TEXT NOT NULL,
status TEXT,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
提示: 使用 SQL 是最快捷的方式。如果你想手动建表,请确保字段名、类型与上述 SQL 一致。
-
在 Cloudflare 控制台,进入
Workers & Pages
->KV
。 -
点击
创建命名空间
,名称输入NAV_AUTH
。 -
创建后,为此 KV 添加两个条目,用于设置后台登录的 用户名 和 密码。
- admin_username: 你的管理员用户名(例如
admin
) - admin_password: 你的管理员密码
- admin_username: 你的管理员用户名(例如
-
回到
Workers & Pages
,点击创建应用程序
->创建 Worker
。 -
为你的 Worker 指定一个名称(例如
my-nav
),然后点击部署
。 -
部署后,点击
编辑代码
。将本项目worker1.js
文件中的所有代码复制并粘贴到编辑器中,替换掉原有内容。 -
点击
部署
保存代码。
-
进入你刚刚创建的 Worker 的
设置
->变量
。 -
在 D1 数据库绑定 中,点击
添加绑定
:- 变量名称:
NAV_DB
- D1 数据库: 选择你创建的
book
- 变量名称:
-
在 KV 命名空间绑定 中,点击
添加绑定
:- 变量名称:
NAV_AUTH
- KV 命名空间: 选择你创建的
NAV_AUTH
- 变量名称:
-
访问你的 Worker 域名(例如
my-nav.your-subdomain.workers.dev
)。首次访问会提示没有数据。 -
访问
你的域名/admin
进入后台,使用你在 步骤 2 中设置的用户名和密码登录。 -
在后台添加第一个书签后,首页即可正常显示。
如果你是 从 v1 之前的版本 升级到最新版,你需要为 sites
表添加 sort_order
字段以支持自定义排序功能。
请进入你的 book
数据库控制台,执行以下 SQL 语句:
ALTER TABLE sites ADD COLUMN sort_order INTEGER DEFAULT 9999;
执行成功后,用最新的 worker.js
代码重新部署 Worker 即可。
本项目所有逻辑均封装在 worker.js
单文件中,结构清晰,便于二次开发。
你可以直接在 worker.js
文件顶部的 tailwind.config
对象中修改主题颜色。
// worker.js
tailwind.config = {
theme: {
extend: {
colors: {
primary: {
// 修改为你喜欢的主色调
500: '#7209b7',
},
// ...其他颜色配置
},
}
}
}
worker.js
: 包含所有后端逻辑、API 路由和前端页面渲染的入口文件。- 主要逻辑模块:
api
: 处理所有数据交互的 API 请求。admin
: 负责后台管理界面的渲染和逻辑。handleRequest
: 负责前台页面的渲染和路由。
本次更新带来了一系列核心功能增强和性能改进,致力于提供更强大、更快速、更友好的使用体验。
- 网站自定义排序
- 现在您可以在后台为每个网站设置一个“排序”值,数字越小,在前台显示的位置越靠前。
- 所有查询接口已支持该排序逻辑,让您能够完全掌控网站的排列顺序。
- 数据导入/导出体验优化
- 无缝对接: 导出的
config.json
文件现在可以直接用于导入,形成完美的体验闭环。 - 格式标准: 导出的 JSON 文件为纯数据数组,格式整洁,便于阅读和在其他项目中使用。
- 智能导入: 导入功能现在可以兼容新旧两种格式的配置文件,更加健壮和用户友好。
- 无缝对接: 导出的
- 后台移动端适配
- 优化了后台管理界面在手机等小屏幕设备上的布局,包括表单和表格,使得移动办公成为可能。
- 计算: Cloudflare Workers
- 数据库: Cloudflare D1
- 存储: Cloudflare KV
- 前端框架: TailwindCSS
欢迎通过 Issue 或 Pull Request 为本项目贡献代码、提出问题或建议!
- Fork 本仓库
- 创建你的功能分支 (
git checkout -b feature/amazing-feature
) - 提交你的更改 (
git commit -m 'Add some amazing feature'
) - 推送到你的分支 (
git push origin feature/amazing-feature
) - 创建一个 Pull Request
本项目采用 MIT 许可证。
- 项目作者: @一只会飞的旺旺
- 项目链接: https://github.com/wangwangit/nav
如果你喜欢这个项目,请给它一个 ⭐️!