基于 CF worker 做了两个开源工具, 可能可以解决你的搜索和网络访问难题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Yrobot
V2EX    分享创造

基于 CF worker 做了两个开源工具, 可能可以解决你的搜索和网络访问难题

  •  
      Yrobot
    yrobot 5 天前 733 次点击

    我在日常开发中经常遇到这几个痛点:

    • 需要搜索功能: 想在项目中集成搜索?第三方 API 收费且有限制,自建搜索引擎成本太高
    • GitHub 资源访问慢: 拉取 GitHub Raw 文件、配置文件时经常超时,影响开发效率
    • 网络环境不稳定: Docker 镜像、npm 包、API 访问经常受限,需要频繁切换代理

    经过一个多月的开发和实际使用,我做出了两个基于 Cloudflare Workers 的开源工具,完全免费、零维护成本,尝试解决了这些问题。


    cloudflare-search - 开箱即用的聚合搜索 API

    将搜索能力打包为接口,随时调用,无需维护

    为什么开发它?

    我主要是在使用 Claude Code 的过程中,急需一个可以快速获取 google search 结果的工具。

    而且我的很多项目都需要搜索功能,但是:

    • 第三方搜索 API 要么收费,要么有严格的调用限制
    • 自建搜索引擎(如 SearXNG)需要私有化部署,维护成本高,网络环境要求严格

    于是我开发了 cloudflare-search,部署一次后已经稳定运行快一个月

    核心特性

    • 多引擎聚合: 同时使用 Google 、Brave 、DuckDuckGo 、Bing,结果更全面
    • 极速响应: 所有引擎并行请求,3 秒内返回聚合结果
    • 容错机制: 单个引擎失败不影响其他引擎,保证稳定性
    • AI 友好: 原生支持 MCP 协议,Claude 可直接调用
    • 零成本: Cloudflare Workers 免费版每天 10 万次请求

    实际使用场景

    1. 项目中集成搜索功能

    2. AI 助手集成

    如果你在使用 AI 工具(如 Claude),可以通过 MCP 协议集成,让 AI 实时搜索信息

    3. 命令行工具

    在脚本中快速获取搜索结果:

    curl "https://your-domain/search?q=docker 最佳实践" | jq '.results[0]' 

    cloudflare-proxy - 解决资源访问慢

    为什么需要它?

    • GitHub Raw 文件下载龟速: 配置文件、脚本、文档访问经常超时
    • 静态资源加载失败: GitHub Pages 、jsdelivr CDN 时好时坏
    • Docker 镜像拉取困难: pull 镜像动不动就失败

    cloudflare-proxy 提供了多种访问方式,一次部署,随处使用。

    核心特性

    • 多种访问方式: Web 界面、URL 参数、路径方式、标准 HTTP 代理
    • HTTPS 支持: 完整支持 HTTPS 网站代理
    • 智能重定向: 自动处理 301/302 重定向
    • CORS 支持: 完美解决前端跨域问题
    • 零成本: 同样基于 Cloudflare Workers,免费额度充足

    实际使用场景

    1. GitHub 静态文件加速(最常用)

    # 原始地址(可能龟速或超时) https://raw.githubusercontent.com/user/repo/main/config.yml # 使用代理(秒开,稳定) https://your-proxy-domain/https://raw.githubusercontent.com/user/repo/main/config.yml 

    2. 项目依赖文件

    在 package.json 、Dockerfile 、GitHub Actions 等配置中使用:

    { "dependencies": { "my-lib": "https://your-proxy-domain/https://github.com/user/repo/archive/main.tar.gz" } } 

    3. Docker 镜像加速

    # 配置 Docker 镜像代理 echo '{ "registry-mirrors": [ "https://your-proxy-domain/https://registry-1.docker.io" ] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker 

    4. 前端 CORS 代理

    // 解决前端跨域问题 fetch("https://your-proxy-domain/https://api.example.com/data") .then((res) => res.json()) .then((data) => console.log(data)); 

    如果这两个工具对你有帮助:

    • 给项目点个 Star,支持开源
    • 遇到问题?提 Issue,我会及时回复
    • 有好的想法?欢迎 PR
    • 觉得特别有用?请作者喝杯咖啡也是极好的~

    项目链接


    最后说两句

    这两个工具源于我自己的真实需求:

    • cloudflare-search: 我需要一个稳定的搜索 API,用在我的项目中,也能给我的 AI 助手使用,部署一次后已经稳定运行快一个月,很舒服
    • cloudflare-proxy: 我厌倦了 GitHub 资源访问时好时坏,拉配置文件经常超时(比如一些放在 github 的 json 配置要在电视上使用),所以做了这个代理,现在所有静态资源访问都很稳定

    现在分享给大家,希望也能帮到你。如果你的项目需要搜索功能,或者被网络访问问题困扰,不妨试试这两个工具。

    期待你的 Star ,也欢迎交流讨论!


    PS: 记得绑定自己的域名使用,访问更稳定哦~

    wukaige
        1
    wukaige  
       5 天前


    部署成功,就是图标有点问题
    Yrobot
        2
    Yrobot  
    OP
       5 天前
    我改个更通用的 emoji 吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3384 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 05:03 PVG 13:03 LAX 21:03 JFK 00:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86