我做了一个你也许会需要的开源导航站 Navo

市面上有这么多导航网站、开源项目,我为什么还要做一个 Navo?

因为对我来说,现有的导航站都差点意思。

很多导航站只是网站的“收容所”,即便分了类,但是不认识的还是不认识,语焉不详,或者空洞宽泛的描述,完全不能让我对这个网站有任何记忆点。即便当时看到了很多宝藏网站,等我真的要用的时候,大概率还是想不起来,然后直接Bing或者问 AI,那导航站也就失去了意义。

使用浏览器书签是一种非常有效的方式,我确实收藏了很多对我来说很有用的网站,但是有些不常用,且网站名称很刁钻的网站,收藏了也等于白收藏,因为等到真要用的时候,我依旧想不起来也找不到。

我平时喜欢部署自建服务,有的只有局域网地址,有的绑定了域名。当我想分享自己的站点给朋友,甩一个IP+端口实在是太不正规,人家都不敢点,而且可能过几天我自己也忘了这个服务是干什么了,docker里一堆乱七八糟的项目。

特别是家里宽带没有公网IP的,依赖STUN内网穿透,那随时变化的IP地址加端口,基本上就部署的时候愿意点开一次,之后发现地址变更就懒得去看了。

绑域名的项目,或者是一些我觉得有意思的网站,每次分享都是昨天一个今天一个,我发的累,别人看也累,当时没空看,要用的时候也想不起来,就此拉倒。

我也尝试过一些开源导航项目,但它们大多很“重”,部署在服务器上,和收藏夹并无本质区别,UI也不符合我胃口,用几次我就没兴趣了。

所以,我想构建一个能解决这些痛点的,但是又轻量、又低成本的导航站——只需要一个域名,剩下的全部交给 Cloudflare。

所以 Navo 的特点是?

评论驱动

在我看来,导航站的意义就在于能够告诉用户每个网站能解决什么问题,并让他们轻松找到

而 Navo 就是一个以“用户评价”为核心的轻量导航站,核心理念就是回归常识:在添加站点的时候,随手用自己的话评论一下 用它来干啥?

举例:

  • https://tool.pc.wiki/pc装机相关工具网站集合,天梯、跑分、驱动、镜像等
  • https://www.remove.bg/自动去除图片背景的网站,一键抠图,免登陆

文本搜索

非常方便,也没有什么成本,之后使用的任何人,包括未来的自己,都可以通过搜索“天梯”或“抠图”关键词来找到这两个站点,非常直观,也非常符合人的使用逻辑。

动态更新

这个恐怕是目前任何导航站项目都没有实现的功能,因为它们都没这个需求,哈哈。

之前我在论坛发过一个内网穿透的使用教程,但是现在cloudflare调整了Free计划,好像已经用不了了,所以我想到当STUN穿透的地址变更的时候,通过webhook请求导航站的API,实现动态更新站点地址,这样也算是间接的达成了只需要记忆一个固定域名的目的。

并且支持站点批量更新,数组形式的post请求体,以STUN内网穿透的Webhook为例:

  • 接口地址:https://your-domain.com/api/update/url
  • 请求方法:POST
  • 请求头:
Authorization: Bearer navo-token
Content-Type: application/json
  • 请求体:
[
  {"suid": "navo-suid1", "url": "#{ipAddr}"},
  {"suid": "navo-suid2", "url": "https://server.your-domain.com:#{port}"}
]

配合接下来我会更新一个STUN内网穿透2.0的教程一起使用,基本上能解决内网穿透IP、端口不固定的痛点。

极低成本

为了降低部署成本,项目使用 cloudflare worker部署,hono 后端 + 静态HTML + cloudflare D1 数据库,可以说除了需要一个域名,其他的完全都是免费的,也不需要复杂的配置和多服务商的配合,只依赖cloudflare一家服务商,稳如老狗。

轻松二改

静态HTML意味着项目前端的修改成本近乎为0,你不需要像Next.js、Vue一样熟悉项目结构,所见即所得,想改哪就改哪,文件少,代码少。

总之

Navo 本质上就是一个集合站,记录那些值得分享的站点,并且方便小范围社群的共享交流,它并不能代替收藏夹和导航站。

目前我只是实现了基础功能,我自己用起来感觉体验并不是很好,但是我觉得这个方向没问题,接下来就是优化迭代。

以下三个功能我认为是可以做的:

  • 收藏夹:个人可以根据类别创建收藏夹,类似歌单,一键直达,不需要每次都搜索。特别是对于自建服务,可以集中管理展示,会很舒服。
  • AI接入:接入AI可以实现自然语言搜索,自动生成评论啥的,纯手打确实还是好累。而且如果站点的评论数量足够多,还能通过AI聚合分析大家对同一个网站的评论,精确地描绘出这个网站真正的核心功能。这真的很酷,不是吗?
  • GitHub仓库:这个是我一直想要解决的痛点,我的GitHub star的仓库有五百多个,真正做到只标星不浏览,用的上用不上都找不到,我感觉navo这个设计理念,可以解决这个问题,毕竟很多GitHub的项目的README并没有很好的描述它的用处,默认你是知道它干什么的。

大伙儿有兴趣可以先试试现在这个项目,自建也好,直接用我搭好的也行,有什么想法、建议、意见随时提,有人用我会感到很荣幸。

58 个赞

cf tunnel的速度那就更加感人了

等上班去看看

1 个赞

看着不错

1 个赞

太强了!

1 个赞

好厉害:star_struck:

1 个赞

挺好的佬

1 个赞

主要是带宽,看电影啥的

马上试用一下

1 个赞

感谢大佬,马上部署试试

不错呢,最近在找导航站

純cf真的很好 找時間體驗一下順便偷偷加個鑒權

挺好的佬

1 个赞

这个可以

1 个赞

感谢分享

1 个赞

网站信息分类混乱,不看好。

1 个赞

这个挺有意思的!

1 个赞

大佬的理念很不错

1 个赞

确实,这个问题我一直在思考,如果真的想做一个有用的导航站,我认为接入 AI 是必须的。还需要继续调整打磨,希望未来的版本能够打动你 :heart:

挺有意思的,感觉叫导航站有点不合适,更像是收藏夹加评论。没有分类。

1 个赞