相信很多车主都有这样的烦恼:路边临时停靠,为了方便别人联系自己挪车,不得不在挡风玻璃前留下真实的手机号码。但这不仅容易遭到恶意推销的电话轰炸,还存在极大的隐私泄露风险。

两套智能扫码挪车系统的部署方案:

  • Cloudflare Serverless 版:纯白嫖,零成本,适合没有服务器的同学。

  • Docker 私有化部署版:基于 Node.js + Redis,专为 NAS(如飞牛 fnOS、群晖)玩家打造,支持多用户隔离(一套系统搞定全家人的车),以及内置代理解决国内 Bark 推送阻断问题。

绝对保护隐私:扫码者通过网页一键发送通知,全程不暴露你的手机号码。

双向位置共享:车主可以查看扫码者的实时位置(判断是否真的在车旁);车主点击“确认前往”后,扫码者也能看到车主的位置。

防恶意骚扰机制:如果扫码者拒绝授权位置,系统将强制延迟 30 秒发送通知,极大降低无聊人士的扫码动力。

强力消息推送:结合 Bark 推送(支持 iOS 紧急/重要级别),即使手机开启了勿扰模式也能强行响铃提醒。安卓用户同理可替换为 Pushplus 或 Server酱。

完全免费,零运维:纯 Serverless 架构,白嫖 Cloudflare 免费额度,永不宕机。

GitHub:

https://github.com/lesnolie/movecar?tab=readme-ov-filecloudflare版本

https://github.com/nbbk/MoveCar-Dockerdocker版本


1.Cloudfalre部署

第一步:注册 Cloudflare 账号

  1. 打开 Cloudflare 官网:https://dash.cloudflare.com/sign-up

  2. 输入你的邮箱和密码,完成注册并登录。

第二步:创建 Worker (云端运行环境)

  1. 登录后,点击左侧菜单栏的「Workers & Pages」。

  2. 点击右侧的「Create」按钮,然后选择「Create Worker」。

  3. 在 Name(名称)一栏填入 movecar(或者你喜欢的任何英文字母)。

  4. 点击右下角的「Deploy」(部署)按钮。

  5. 部署完成后,点击「Edit code」(编辑代码),你会看到一个代码编辑器。

  6. 将里面的默认代码全部删除。

  7. 复制全部代码(博客代码是在原有的 Bark、增加适合国内微信生态的 PushPlus,以及极其稳定且适合极客的 Telegram Bot。),粘贴到刚才清空的编辑器中。

  8. 点击右上角的「Deploy」保存代码。

具体代码地址:https://github.com/illria/movecar/blob/patch-1/movecar.js

第三步:创建 KV 存储 (云端数据库)

我们需要一个地方来临时存储挪车状态和位置信息。

  1. 回到 Cloudflare 左侧菜单,点击「KV」。

  2. 点击「Create a namespace」(创建命名空间)。

  3. 名称必须填入:MOVE_CAR_STATUS,然后点击「Add」。

  4. 重新回到左侧菜单的「Workers & Pages」,点击你刚才创建的 movecar 项目。

  5. 进入顶部的「Settings」(设置)选项卡,在左侧找到「Bindings」(绑定)。

  6. 点击「Add」-> 选择「KV Namespace」。

  7. Variable name(变量名) 必须准确填入:MOVE_CAR_STATUS

  8. 在下拉菜单中选择你刚刚创建的命名空间,点击「Deploy」保存。

第四步:配置推送环境变量

这一步决定了通知怎么发到你的手机上。

  1. 依然在 Worker 的「Settings」中,找到「Variables and Secrets」(变量和机密)。

  2. 点击「Add」添加以下变量(任选其中几个通知方式):

1.bark通知

  • 变量名: BARK_URL

  • : 填入你的 Bark 推送地址(例如 https://api.day.app/你的专属Key

2.微信pushplus通知

  • 变量名: PUSHPLUS_TOKEN

  • : 填入你的 PUSHPLUS_TOKEN 的token即可

3.telegram bot通知

  • 变量名: TG_BOT_TOKEN

  • 变量名:TG_CHAT_ID

  • : 填入你的 TOKEN和ID 的即可

补充具体步骤:

变量名 (Variable name)

描述

获取方式

TG_BOT_TOKEN

机器人的身份令牌

在 Telegram 找 @BotFather 创建机器人后获得。

TG_CHAT_ID

接收通知的用户 ID

在 Telegram 找 @userinfobot 发送消息即可获得你的数字 ID。

如果还没申请,可以快速操作一下:

  1. 获取 Token

    • 在 Telegram 搜索 @BotFather

    • 输入 /newbot,按提示给机器人起个名字。

    • 它会发给你一串像 723456789:ABCDefgh... 的字符串,这就是 TG_BOT_TOKEN

  2. 获取 Chat ID

    • 在 Telegram 搜索 @userinfobot

    • 点击 Start 或发一条消息。

    • 它会返回一串数字(例如 123456789),这就是 TG_CHAT_ID

  3. 激活机器人

    • 非常重要的一步:你必须先在 Telegram 里主动点开你的机器人,点一下 Start。如果不点开始,机器人没有权限主动给你发消息。

如果你希望在 Telegram 上收到挪车请求,只需在 Cloudflare Worker 的变量设置中添加两个 key:

  1. TG_BOT_TOKEN: 填入从 @BotFather 获取的机器人 Token。

  2. TG_CHAT_ID: 填入从 @userinfobot 获取的个人数字 ID。

这样即使你在电脑端登录 Telegram,也能同步收到挪车提醒,双重保险!


(可选)再添加一个备用电话变量,万一断网了还能打电话:

  • 变量名: PHONE_NUMBER

  • : 你的备用手机号。

第五步:绑定自定义域名(可选)

如果你觉得 Cloudflare 默认分配的 workers.dev 域名太长或被污染,可以绑定自己的域名:

  1. 在 Worker 的「Settings」中找到「Domains & Routes」。

  2. 点击「Add」->「Custom Domain」。

  3. 输入你托管在 Cloudflare 上的域名 (例如 car.yourdomain.com),按照提示完成 DNS 配置即可。如果没有域名的小伙伴可以看我往期视频有免费的域名可以领取 免费域名:领取地址


2.多用户智能挪车系统 (Docker 部署版)

快速部署指南

第一步:克隆代码 通过 SSH 登录你的 NAS 或服务器,进入你的 Docker 数据目录,执行克隆:

Bash

# 1. 进入你的 Docker 数据存放目录
cd /你的/Docker/专属/目录

# 2. 克隆本项目代码
git clone https://github.com/nbbk/MoveCar-Docker.git
#  拉取失败使用下面的
git clone https://gh-proxy.com/https://github.com/nbbk/MoveCar-Docker.git

# 3. 进入刚刚下载好的项目根目录
cd MoveCar-Docker

第二步:配置环境变量 使用文本编辑器打开目录下的 docker-compose.yml 文件。修改其中的核心环境变量:

  • EXTERNAL_URL:必须修改为你准备使用的外网域名(带 https://)。

  • CAR_TITLE:默认车主称呼,如 京A88888

  • PUSHPLUS_TOKENBARK_URL:填入你的推送配置。

🚩 重点避坑:解决 Bark 收不到通知的问题 由于 Bark 服务器在海外,如果你发现 PushPlus 能收到但 Bark 报错超时,可以在 docker-compose.ymlenvironment 节点下配置局域网代理。例如,如果你的旁路由运行着科学上网插件:

YAML

environment:
  - HTTP_PROXY=http://192.168.3.221:7890
  - HTTPS_PROXY=http://192.168.3.221:7890

这样就能让 Node.js 发出的 Bark 请求走代理通道,实现通知秒推。

第三步:一键构建并启动 在项目根目录下,执行:

Bash

sudo docker compose up -d --build

服务将在本地 13000 端口启动。你可以使用 Cloudflare Tunnel 或 Lucky 等反向代理工具将其暴露到公网并绑定 HTTPS。

注意⚠️:如果使用Cloudflare Tunnel 安装时候选择docker 运行一段时间就断链 使用下面的代码 把token换成自己的在命令行粘贴即可 本意是让容器在后台运行

docker run -d \
  --name cloudflared \
  --restart unless-stopped \
  cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjU(把这里的改成自己的token)

环境变量配置详解

docker-compose.yml 中,修改以下环境变量来定制你的系统:

变量名 必填 说明

EXTERNAL_URL 你的外网访问域名(必须带 https://),用于生成专属二维码和拼接确认链接。

CAR_TITLE 否 默认车主的称呼或车牌号,例如 京A88888。

PHONE_NUMBER 否 默认车主的手机号,例如 13800138000。

PUSHPLUS_TOKEN 否 默认车主的 PushPlus 推送 Token(用于微信接收通知)。

BARK_URL 否 默认车主的 Bark 推送链接(例如 https://api.day.app/你的Key,用于苹果设备接收通知)。

HTTP_PROXY / HTTPS_PROXY 否 局域网代理地址(例如 http://192.168.1.9:7890),NAS 用户解决 Bark 阻断必备。

多用户高级配置 (变量名后缀加 _大写用户名)

为了给家人或朋友的车也用上这个系统,你可以直接在 docker-compose.yml 中追加带后缀的环境变量(后缀必须大写)。 例如,你想配置一个用户参数为 zhangsan

  • CAR_TITLE_ZHANGSAN=张三(京A88888)

  • PUSHPLUS_TOKEN_ZHANGSAN=你的PushPlusToken

  • BARK_URL_ZHANGSAN=https://api.day.app/你的BarkKey

  • PHONE_NUMBER_ZHANGSAN=你的手机号码


访问链接说明

系统部署成功并配置好域名后,通过 URL 参数 ?u=用户名 来区分不同车主:

  • 扫码者主页 (呼叫车主页)https://你的域名/?u=用户名

  • 车主确认页 (在通知中点击)https://你的域名/owner-confirm?u=用户名

  • 专属挪车码生成页https://你的域名/qr?u=用户名 (在电脑端打开此页,按 Ctrl + P 直接打印贴在车窗上)

💡 提示:如果不带 ?u= 参数(即直接访问 https://你的域名/),系统会读取基础环境变量,使用“默认车主”的配置。

必做安全设置:拦截恶意流量

由于这是一个暴露在公网的链接,为了防止被境外的脚本或爬虫恶意访问,强烈建议开启地区限制。

使用 WAF 规则(推荐做法):

  1. 进入 Cloudflare Dashboard 主页,点击你的主域名。

  2. 左侧菜单点击「Security」->「WAF」。

  3. 点击「Create rule」(创建规则)。

  4. Rule name (规则名称):填入 Block non-CN traffic

  5. Field (字段) 选择 CountryOperator (运算符) 选择 does not equalValue (值) 选择 China

  6. Choose action (执行动作) 选择 Block

  7. 点击「Deploy」。这样,所有非中国大陆的 IP 就再也打不开你的挪车页面了。


最终收尾:制作专属挪车牌

一切配置妥当后,复制你的 Worker 最终访问地址(如 https://movecar.你的账号.workers.dev)。

  1. 打开草料二维码等在线工具,将该链接转换为二维码并下载。

  2. 利用 AI 生成工具(如 ChatGPT、Nano Banana 等)生成一张好看的底图。

  3. 将二维码和底图排版在一起,加上“扫码通知车主挪车”的提示文字。

  4. 找打印店打印出来,过塑后贴在车窗上。

至此,一套完美保护隐私、功能强大的极客挪车系统就大功告成了!如果你在部署过程中遇到任何问题,欢迎在评论区留言交流。

via:https://github.com/lesnolie/movecar?tab=readme-ov-file

via:https://github.com/nbbk/MoveCar-Docker