七夏 发表于 2026-1-10 21:12:31

MoveCar - 挪车通知系统

基于 Cloudflare Workers 的智能挪车通知系统,扫码即可通知车主,保护双方隐私。
请求者页面:

车主页面:

为什么需要它?

[*]🚗 被堵车却找不到车主 - 干着急没办法
[*]📱 传统挪车码暴露电话 - 隐私泄露、骚扰电话不断
[*]😈 恶意扫码骚扰 - 有人故意反复扫码打扰
[*]🤔 路人好奇扫码 - 并不需要挪车却触发通知
这个系统如何解决?

[*]✅ 不暴露电话号码 - 通过推送通知联系,保护隐私
[*]✅ 双向位置共享 - 车主可确认请求者确实在车旁
[*]✅ 无位置延迟 30 秒 - 降低恶意骚扰的动力
[*]✅ 免费部署 - Cloudflare Workers 免费额度完全够用
[*]✅ 无需服务器 - Serverless 架构,零运维成本
为什么使用 Bark 推送?

[*]🔔 支持「紧急 / 重要 / 警告」通知级别
[*]🎵 可自定义通知音效
[*]🌙 即使开启勿扰模式也能收到提醒
[*]📱 安卓用户:原理相通,将 Bark 替换为安卓推送服务即可(如 Pushplus、Server酱)
使用流程
请求者(需要挪车的人)

[*]扫描车上的二维码,进入通知页面
[*]填写留言(可选),如「挡住出口了」
[*]允许获取位置(不允许则延迟 30 秒发送)
[*]点击「通知车主」
[*]等待车主确认,可查看车主位置
车主

[*]收到 Bark 推送通知
[*]点击通知进入确认页面
[*]查看请求者位置(判断是否真的在车旁)
[*]点击确认,分享自己位置给对方
部署教程
第一步:注册 Cloudflare 账号

[*]打开 https://dash.cloudflare.com/sign-up
[*]输入邮箱和密码,完成注册
第二步:创建 Worker

[*]登录后点击左侧菜单「Workers & Pages」
[*]点击「Create」→「Create Worker」
[*]名称填 movecar(或你喜欢的名字)
[*]点击「Deploy」
[*]点击「Edit code」,删除默认代码
[*]复制 movecar.js 全部内容粘贴进去
[*]点击右上角「Deploy」保存
第三步:创建 KV 存储

[*]左侧菜单点击「KV」
[*]点击「Create a namespace」
[*]名称填 MOVE_CAR_STATUS,点击「Add」
[*]回到你的 Worker →「Settings」→「Bindings」
[*]点击「Add」→「KV Namespace」
[*]Variable name 填 MOVE_CAR_STATUS
[*]选择刚创建的 namespace,点击「Deploy」
第四步:配置环境变量

[*]Worker →「Settings」→「Variables and Secrets」
[*]添加以下变量:

[*]BARK_URL:你的 Bark 推送地址(如 https://api.day.app/xxxxx)
[*]PHONE_NUMBER:备用联系电话(可选)
第五步:绑定域名(可选)

[*]Worker →「Settings」→「Domains & Routes」
[*]点击「Add」→「Custom Domain」
[*]输入你的域名,按提示完成 DNS 配置
制作挪车码
生成二维码

[*]复制你的 Worker 地址(如 https://movecar.你的账号.workers.dev)
[*]使用任意二维码生成工具(如 草料二维码、QR Code Generator)
[*]将链接转换为二维码并下载
美化挪车牌
使用 AI 工具生成精美的装饰设计:
[*]Nanobanana Pro - 生成装饰图案和背景
[*]ChatGPT - 生成创意设计图
制作步骤:
[*]用 AI 工具生成你喜欢的装饰图案
[*]将二维码与生成的图案组合排版
[*]添加「扫码通知车主」提示文字
[*]打印、过塑,贴在车上
💡 用 AI 生成独一无二的挪车牌,让你的爱车更有个性!效果展示

安全设置(推荐)
为防止境外恶意攻击,建议只允许中国地区访问:方法一:使用 WAF 规则(推荐)

[*]进入 Cloudflare Dashboard → 你的域名
[*]左侧菜单点击「Security」→「WAF」
[*]点击「Create rule」
[*]规则设置:

[*]Rule name:Block non-CN traffic
[*]If incoming requests match:Country does not equal China
[*]Then:Block
[*]点击「Deploy」
方法二:在 Worker 代码中过滤
在 movecar.js 的 handleRequest 函数开头添加:
async function handleRequest(request) {
const country = request.cf?.country;
if (country && country !== 'CN') {
    return new Response('Access Denied', { status: 403 });
}

// 下面保持原有逻辑
}⚠️ 曾经被境外流量攻击过,强烈建议开启地区限制!
页: [1]
查看完整版本: MoveCar - 挪车通知系统