不用服务器的个人导航面板:CF-Navs,Cloudflare Workers 一键部署
摘要
作者因 Sun Panel 停更收费,转而使用 CF-Navs 项目。部署需在 Cloudflare 创建 KV 和 D1 数据库,配置 Worker,设置 SETUP_TOKEN,绑定资源并添加域名。安装完成后可导入 Sun Panel 的 JSON 备份,支持自定义分类和站点设置。
前言
做自托管、搞导航页的朋友,多半都听过或用过 Sun Panel(一个开源的个人导航面板)。说实话它挺好用的,也满足了我大部分需求。但后来作者似乎把精力完全转去做收费版本了——我一直在用的版本一年多没更新,而且还是闭源的。一个不更新又闭源的东西,总让人有点不放心,于是我开始物色替代品。
最后找到了 CF-Navs 这个项目。它的作者也是 Sun Panel 的老用户,所以自己做的新项目,用起来很贴合老用户的需求和习惯,几乎没有学习成本。更重要的是,它完全跑在 Cloudflare 上(Workers + D1 + KV),不用自己买服务器,对个人使用来说免费又稳定。
如果你也在找一个"不用服务器的个人导航面板",这篇文章值得一看。项目地址:https://github.com/lbjxr/CF-Navs

部署
整体流程:Fork → 建 KV → 建 D1 → 关联部署 → 配构建命令 → 加 SETUP_TOKEN → 绑定存储 → 绑域名 → 初始化安装。一步步来。
第 1 步:在 GitHub 上 Fork 仓库
先打开 CF-Navs 的 GitHub 仓库,点 Fork,把它复制到你自己账号下,方便后续关联部署。
第 2 步:创建 KV 命名空间
进入 Cloudflare 控制台,创建一个 KV 命名空间(KV 是 Cloudflare 的键值存储服务,用来存导航的一些配置/缓存数据)。给它起个名字(比如 cf-navs-kv),创建好。

第 3 步:创建 D1 数据库
同样在 Cloudflare 控制台,创建一个 D1 数据库(D1 是 Cloudflare 的 SQL 数据库,导航链接、分类这些结构化数据就存这里)。起个名(如 cf-navs-db)创建好。

第 4 步:进入 Workers & Pages,关联 GitHub 导入
进入 Workers & Pages,选择关联 GitHub 导入,授权后选中你第 1 步 fork 出来的 CF-Navs 仓库。

第 5 步:配置构建与部署命令
在部署配置里:
生产分支:
main构建命令:
npm run build部署命令:
npx wrangler deploy
配置好后触发部署。

第 6 步:添加 SETUP_TOKEN 加密 Secret
首次部署完成后,进入这个 Worker 的 设置 → 变量和密钥,添加一个加密 Secret(Encrypted Secret),键名 SETUP_TOKEN,值用一个足够长的随机字符串(这个 token 是后面初始化安装的"门禁",用来防止别人抢注管理员)。

💡 随机字符串可以用密码管理器生成,或用
openssl rand -hex 32之类命令生成。
第 7 步:绑定 D1 和 KV
打开 Worker 的 绑定(Bindings) 页面,把 D1 和 KV 的绑定,改成你第 2、3 步刚创建的那两个资源(通常绑定的变量名要和项目代码里写的一致,按项目 README 或默认名对应)。

⚠️ 改完绑定后,通常需要重新部署一次让绑定生效。
第 8 步:绑定自定义域名
打开 Worker 的 域(Domains) 页面,添加你的自定义域名,方便访问。

第 9 步:初始化安装
访问:
输入第 6 步设置的 SETUP_TOKEN,然后创建管理员用户名和密码。

第 10 步:删除 SETUP_TOKEN 并登录后台
确认安装和登录都成功后,删除或轮换 SETUP_TOKEN(防止被人再次通过 /install 页面篡改),然后重新打开页面进入后台。

使用:导入旧数据 + 添加导航
设置方法这里不多展开,核心就两件事:
添加分类和网站链接:进后台后,建分类、加链接,把你想收藏的站点一个个加进去即可。
(强烈推荐)直接导入 Sun Panel 备份:如果你之前用过 Sun Panel,CF-Navs 支持直接导入 Sun Panel 导出的 JSON 备份文件,数据一下就迁移过来了,非常方便。
站点设置项也挺多,主题、样式、布局都能自定义,可以充分展示你的个性。
常见问题与排错
1. 部署后访问 /install 没反应或 404
确认 SETUP_TOKEN 已正确添加且已重新部署。
确认 D1、KV 绑定已生效。
2. 添加了 SETUP_TOKEN 仍能被人 /install 抢注
检查是不是还没真正绑定成功,或初始化后忘了删除 SETUP_TOKEN(第 10 步很重要)。
3. 导入 Sun Panel JSON 失败
确认用的是 Sun Panel 导出的备份 JSON(不是别的格式),文件结构要匹配。
4. 自定义域名打不开
检查 DNS 是否生效、证书是否正常,刚绑定可能需要等一会儿。
我的结论
从 Sun Panel 换到 CF-Navs,最让我满意的是终于不用再担心"作者跑路、项目停更"了——它跑在 Cloudflare 上,开源、免费、不用自己养服务器,还支持直接导入旧数据,迁移几乎无痛。
要说和 Sun Panel 的差异,主要是它依赖 Cloudflare 生态(Workers/D1/KV),如果你本来就在用 Cloudflare,那几乎零门槛;如果完全没用过,需要先熟悉一下 Cloudflare 那套概念。但对玩自托管的人来说,这通常不是问题。
如果你也想要一个不用服务器、长期有人维护的开源导航面板,CF-Navs 很值得一试,按上面的步骤半小时内就能搭好。