一、在Docker文件夹下新建movecar文件夹

二、下载movecar压缩包文件,解压缩会得到以下5个文件

三、用记事本打开docker-compose.yml并按提示修改
services:
# ==========================================
# 1. MoveCar 核心应用容器 (Node.js)
# ==========================================
movecar-app:
build: .
container_name: movecar_app
restart: always
# 【端口映射】外异内同的最佳实践
# 左边 13000: 飞牛 NAS 暴露给局域网的端口 (如:Cloudflare Tunnel 填这个)
# 右边 3000: Docker 容器内部 Node.js 监听的端口 (无需修改)
ports:
- "13000:3000"
# === 限制日志大小,防止长期运行占用 NAS 空间 ===
logging:
driver: "json-file"
options:
max-size: "10m" # 每个日志文件最大 10MB
max-file: "3" # 最多保留 3 个滚动日志
environment:
# --- 系统基础运行配置 ---
- NODE_ENV=production
- PORT=3000 # 明确告诉程序在容器内部监听 3000 端口
- REDIS_URL=redis://movecar-redis:6379 # 内部连接 Redis 的专属通道
# --- 🌐 代理网络配置 (拯救 Bark 通知海外阻断的关键) ---
# 请将 192.168.1.X:7890 替换为你实际的代理服务器 IP 和端口
# 加上这两行后,Node.js 发出的通知请求会全部走代理通道,瞬间秒发
#- HTTP_PROXY=http://192.168.1.X:7890
#- HTTPS_PROXY=http://192.168.1.X:7890
# --- 🔗 外部访问域名 (二维码和通知跳转的核心) ---
# 必须带 https://,末尾不要加斜杠
- EXTERNAL_URL=https://car.sairx.cn
# ==========================================
# 🚘 车主配置区 (支持无限多用户扩容)
# 访问参数 u 的值会自动转为大写匹配这里的后缀
# ==========================================
# 【默认车主】(当扫码链接不带 ?u= 参数时生效)
- CAR_TITLE=默认车主
- PUSHPLUS_TOKEN=你的默认PushPlusToken
# 【用户 1:USER1】(访问 /?u=USER1)
- CAR_TITLE_USER1=苏U88888
- PUSHPLUS_TOKEN_USER1=你的PushPlusToken填这里
- BARK_URL_USER1=你的BARK填这里
- PHONE_NUMBER_USER1=13388888888
# 【用户 2:USER2】(访问 /?u=user2)
- CAR_TITLE_USER2=苏E666666
- PUSHPLUS_TOKEN_USER1=你的PushPlusToken填这里
- BARK_URL_USER1=你的BARK填这里
- PHONE_NUMBER_USER2=183666666666
# 声明依赖关系:必须等 Redis 启动后,应用才能启动
depends_on:
- movecar-redis
# ==========================================
# 2. Redis 数据库容器 (负责状态存储与断点续传)
# ==========================================
movecar-redis:
image: redis:7-alpine
container_name: movecar_redis
restart: always
# 出于安全考虑,Redis 不需要映射端口到 NAS 主机,只在 Docker 虚拟网内互通即可
volumes:
# 【数据持久化】确保 NAS 重启或更新容器后,坐标和状态数据不丢失
- redis_data:/data
# 开启 AOF 持久化模式,数据写入更安全
command: redis-server --appendonly yes
# 声明命名卷
volumes:
redis_data:3.1、修改内容如下:(修改后保存,5个文件全部上传到movecar文件夹)
四、新建compose项目

项目名称:movecar或者自定义
路径:选择movecar文件夹
来源:会默认提示已有配置文件,直接确认。

开始构建,以上会拉取两个容器,后续增加用户只需要在movecar_app容器变量中添加即可,参考如下:
变量名称同上+变量值

默认使用13000端口映射的3000容器端口,可以自行修改替换13000端口
五、构建启动,局域网访问ip+端口
六、外网访问(通过前面CF Tunnel实现外网访问)
快速教程连接:https://blog.sairx.cn/?p=019f07ba-809f-7473-af61-72b78053db26
七、挪车码生成
局域网访问 ip:13000/qr/?u=user1
外网访问 https://你的域名/qr/?u=USER1
示例:

直接Ctrl+P打印,默认A5大小,也可以借助草料二维码自己生成美化,下面提供几个模板



八、效果预览:




