相信很多车主都有这样的烦恼:路边临时停靠,为了方便别人联系自己挪车,不得不在挡风玻璃前留下真实的手机号码。但这不仅容易遭到恶意推销的电话轰炸,还存在极大的隐私泄露风险。
两套智能扫码挪车系统的部署方案:
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-file(cloudflare版本)
https://github.com/nbbk/MoveCar-Docker(docker版本)
1.Cloudfalre部署
第一步:注册 Cloudflare 账号
打开 Cloudflare 官网:https://dash.cloudflare.com/sign-up
输入你的邮箱和密码,完成注册并登录。
第二步:创建 Worker (云端运行环境)
登录后,点击左侧菜单栏的「Workers & Pages」。
点击右侧的「Create」按钮,然后选择「Create Worker」。
在 Name(名称)一栏填入
movecar(或者你喜欢的任何英文字母)。点击右下角的「Deploy」(部署)按钮。
部署完成后,点击「Edit code」(编辑代码),你会看到一个代码编辑器。
将里面的默认代码全部删除。
复制全部代码(博客代码是在原有的 Bark、增加适合国内微信生态的 PushPlus,以及极其稳定且适合极客的 Telegram Bot。),粘贴到刚才清空的编辑器中。
点击右上角的「Deploy」保存代码。
具体代码地址:https://github.com/illria/movecar/blob/patch-1/movecar.js
第三步:创建 KV 存储 (云端数据库)
我们需要一个地方来临时存储挪车状态和位置信息。
回到 Cloudflare 左侧菜单,点击「KV」。
点击「Create a namespace」(创建命名空间)。
名称必须填入:
MOVE_CAR_STATUS,然后点击「Add」。重新回到左侧菜单的「Workers & Pages」,点击你刚才创建的
movecar项目。进入顶部的「Settings」(设置)选项卡,在左侧找到「Bindings」(绑定)。
点击「Add」-> 选择「KV Namespace」。
Variable name(变量名) 必须准确填入:
MOVE_CAR_STATUS。在下拉菜单中选择你刚刚创建的命名空间,点击「Deploy」保存。
第四步:配置推送环境变量
这一步决定了通知怎么发到你的手机上。
依然在 Worker 的「Settings」中,找到「Variables and Secrets」(变量和机密)。
点击「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的即可
补充具体步骤:
如果还没申请,可以快速操作一下:
获取 Token:
在 Telegram 搜索 @BotFather。
输入
/newbot,按提示给机器人起个名字。它会发给你一串像
723456789:ABCDefgh...的字符串,这就是TG_BOT_TOKEN。
获取 Chat ID:
在 Telegram 搜索 @userinfobot。
点击
Start或发一条消息。它会返回一串数字(例如
123456789),这就是TG_CHAT_ID。
激活机器人:
非常重要的一步:你必须先在 Telegram 里主动点开你的机器人,点一下
Start。如果不点开始,机器人没有权限主动给你发消息。
如果你希望在 Telegram 上收到挪车请求,只需在 Cloudflare Worker 的变量设置中添加两个 key:
TG_BOT_TOKEN: 填入从 @BotFather 获取的机器人 Token。
TG_CHAT_ID: 填入从 @userinfobot 获取的个人数字 ID。这样即使你在电脑端登录 Telegram,也能同步收到挪车提醒,双重保险!
(可选)再添加一个备用电话变量,万一断网了还能打电话:
变量名:
PHONE_NUMBER值: 你的备用手机号。
第五步:绑定自定义域名(可选)
如果你觉得 Cloudflare 默认分配的 workers.dev 域名太长或被污染,可以绑定自己的域名:
在 Worker 的「Settings」中找到「Domains & Routes」。
点击「Add」->「Custom Domain」。
输入你托管在 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_TOKEN或BARK_URL:填入你的推送配置。
🚩 重点避坑:解决 Bark 收不到通知的问题 由于 Bark 服务器在海外,如果你发现 PushPlus 能收到但 Bark 报错超时,可以在 docker-compose.yml 的 environment 节点下配置局域网代理。例如,如果你的旁路由运行着科学上网插件:
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=你的PushPlusTokenBARK_URL_ZHANGSAN=https://api.day.app/你的BarkKeyPHONE_NUMBER_ZHANGSAN=你的手机号码
访问链接说明
系统部署成功并配置好域名后,通过 URL 参数 ?u=用户名 来区分不同车主:
扫码者主页 (呼叫车主页):
https://你的域名/?u=用户名车主确认页 (在通知中点击):
https://你的域名/owner-confirm?u=用户名专属挪车码生成页:
https://你的域名/qr?u=用户名(在电脑端打开此页,按Ctrl + P直接打印贴在车窗上)
💡 提示:如果不带
?u=参数(即直接访问https://你的域名/),系统会读取基础环境变量,使用“默认车主”的配置。
必做安全设置:拦截恶意流量
由于这是一个暴露在公网的链接,为了防止被境外的脚本或爬虫恶意访问,强烈建议开启地区限制。
使用 WAF 规则(推荐做法):
进入 Cloudflare Dashboard 主页,点击你的主域名。
左侧菜单点击「Security」->「WAF」。
点击「Create rule」(创建规则)。
Rule name (规则名称):填入
Block non-CN traffic。Field (字段) 选择
Country,Operator (运算符) 选择does not equal,Value (值) 选择China。Choose action (执行动作) 选择
Block。点击「Deploy」。这样,所有非中国大陆的 IP 就再也打不开你的挪车页面了。
最终收尾:制作专属挪车牌
一切配置妥当后,复制你的 Worker 最终访问地址(如 https://movecar.你的账号.workers.dev)。
打开草料二维码等在线工具,将该链接转换为二维码并下载。
利用 AI 生成工具(如 ChatGPT、Nano Banana 等)生成一张好看的底图。
将二维码和底图排版在一起,加上“扫码通知车主挪车”的提示文字。
找打印店打印出来,过塑后贴在车窗上。
至此,一套完美保护隐私、功能强大的极客挪车系统就大功告成了!如果你在部署过程中遇到任何问题,欢迎在评论区留言交流。
via:https://github.com/lesnolie/movecar?tab=readme-ov-file
via:https://github.com/nbbk/MoveCar-Docker
评论