用 TeslaMate 记录车辆数据的应该不少,但日常维护(备份、恢复、升级)每次都要翻文档找命令,挺烦。我把这些操作封装成了一套脚本,顺便也做了个部署引导页面,这里分享一下。
做了个交互式引导页面,不管你是全新安装还是已有 TeslaMate 要加 API 服务,NAS 还是命令行,都有对应的流程。密钥密码页面上自动生成,复制就行,不用自己 openssl rand 。
https://cn.mytess.net/zh/deploy
命令行用户也可以直接一行搞定:
# 全新安装
curl -fsSL https://cn.mytess.net/scripts/install-teslamate.sh -o install.sh && bash install.sh
# 已有 TeslaMate ,加 API 服务
curl -fsSL https://cn.mytess.net/scripts/add-teslamateapi.sh -o add-api.sh && bash add-api.sh
第二个脚本会自动读你现有容器的环境变量,备份 compose 文件,插入 API 服务,改完给你看 diff 。不放心的话选 N 它会回滚,把要加的内容打印出来你自己加。
说一下 mytesla/teslamateapi:基于 tobiasehlert/teslamateapi 构建,只读数据库和 MQTT ,不改任何数据,没有外部数据传输。就是在 TeslaMate 和客户端之间加了一个 HTTP API 层。
这个是主要想分享的。五个命令:
# 备份
curl -fsSL https://cn.mytess.net/scripts/mytess-tool.sh | bash -s -- backup
# 恢复(破坏性操作,会替换所有数据)
curl -fsSL https://cn.mytess.net/scripts/mytess-tool.sh | bash -s -- restore your_backup.bck
# 升级 API (只动 API 容器,不影响 TeslaMate 和数据库)
curl -fsSL https://cn.mytess.net/scripts/mytess-tool.sh | bash -s -- upgrade-api
# 重启所有服务
curl -fsSL https://cn.mytess.net/scripts/mytess-tool.sh | bash -s -- restart
# 收集诊断信息(容器状态、资源占用、API 日志,不含密码)
curl -fsSL https://cn.mytess.net/scripts/mytess-tool.sh | bash -s -- diagnose
脚本会自动找到你的 TeslaMate 容器和 compose 文件,不需要手动指定路径。查找逻辑做了多层 fallback:先按镜像名找,再按容器名模糊匹配; compose 文件先读 Docker label ,再扫常见目录,都找不到让你手动输入。基本上不管你怎么部署的都能适配。
脚本支持中英文,根据系统语言自动判断。
备份本质就是 pg_dump,手动跑也行:
docker compose exec -T database pg_dump -U teslamate teslamate > teslamate_$(date +%Y%m%d).bck
但有个坑一定要注意:备份文件一定要拷到别的地方。部分 NAS 的 Docker 管理界面更新容器配置时会清空整个项目文件夹,备份文件放在里面会一起没掉。
升级 API 的时候,如果你 compose 里写了固定版本号而不是 latest,脚本会自动查最新版本并更新 tag ,改之前备份 compose 文件。