全新部署 Mytesla
前言
本篇将介绍两种部署方式,一种是无公网 IP 部署 Teslamate 并实现内网穿透,一种是云服务器部署 Teslamate。
本指南适用于从零开始部署完整 Mytesla 系统的用户。如果您已经有 TeslaMate 运行,请参考 已有 TeslaMate 指南。
- 没有安装过 TeslaMate 的用户
- 希望使用最新配置的用户
- 追求最佳实践的用户
确保已完成环境初始化
部署概览
完整的 Mytesla 系统包括以下组件:
部署架构
核心服务层
- PostgreSQL: 数据持久化存储
- MQTT: 实时消息传递
- TeslaMate: 车辆数据收集器
- Grafana: 数据可视化仪表板
API 服务层
- TeslaMateAPI: RESTful API 服务
- 健康检查: 服务状态监控
网络暴露层
- Tailscale (推荐): 零配置 VPN
- Cloudflare Tunnel: 企业级代理
- Traefik: 反向代理和负载均衡
无公网 IP 部署 Teslamate 并实现内网穿透指北
本指南将带您一步步完成以下目标:
- 在您的 NAS 或树莓派(等支持 Docker 的设备)上,通过 Docker Compose 部署 Teslamate 、Grafana 、PostgreSQL 数据库、Mosquitto MQTT 服务以及 TeslamateAPI 。
- 配置并启动 Sakura FRP (樱花穿透)服务,将内网的 TeslamateAPI 端口暴露到公网。
- 将您的车辆授权给本地 Teslamate 服务进行数据记录。
- 将穿透后的公网 API 地址和令牌配置到
portal.mytesla.cc
,解锁高级数据统计、自动计费和实时通知等强大功能。
准备工作:
- 一台安装了 Docker 和 Docker Compose 的 NAS 或树莓派设备。
- 基础的 SSH 或命令行操作知识或 NAS 后台 docker 应用。
- 一个
portal.mytesla.cc
账户。
第一步:准备 Docker Compose 文件
根据您的使用方式选择:
🖥️ SSH/命令行用户:
mkdir teslamate
cd teslamate
🏠 NAS 用户:直接在 NAS 的 Docker 应用界面中创建新的容器组合即可,无需手动创建目录。
创建一个名为 docker-compose.yml
的文件(或在 NAS Docker 应用中直接编辑),并将以下内容完整地复制粘贴进去。
重要提示:请勿修改此配置文件的任何内容,我们将在后续步骤中通过其他方式配置变量。
# docker-compose.yml
services:
teslamate:
image: docker.1ms.run/mytesla/teslamate:v2.1
restart: always
environment:
- ENCRYPTION_KEY=wJrM9nILN5wM5Zm4Z
- DATABASE_USER=teslamate
- DATABASE_PASS=44TqZYlH8odDc2hqPYE
- DATABASE_NAME=teslamate
- DATABASE_HOST=database
- MQTT_HOST=mosquitto
- BD_MAP_AK=
- BD_MAP_SK=
ports:
- "4000:4000"
volumes:
- ./import:/opt/app/import
cap_drop:
- all
database:
image: docker.1ms.run/postgres:17
restart: always
environment:
- POSTGRES_USER=teslamate
- POSTGRES_PASSWORD=44TqZYlH8odDc2hqPYE
- POSTGRES_DB=teslamate
volumes:
- teslamate-db:/var/lib/postgresql/data
grafana:
image: docker.1ms.run/mytesla/grafana:v2.1
restart: always
environment:
- DATABASE_USER=teslamate
- DATABASE_PASS=44TqZYlH8odDc2hqPYE
- DATABASE_NAME=teslamate
- DATABASE_HOST=database
ports:
- "3000:3000"
volumes:
- teslamate-grafana-data:/var/lib/grafana
mosquitto:
image: docker.1ms.run/eclipse-mosquitto:2
restart: always
command: mosquitto -c /mosquitto-no-auth.conf
volumes:
- mosquitto-conf:/mosquitto/config
- mosquitto-data:/mosquitto/data
teslamateapi:
image: mytesla/teslamateapi:latest
container_name: teslamateapi
restart: unless-stopped
environment:
- DATABASE_USER=teslamate
- DATABASE_PASS=44TqZYlH8odDc2hqPYE
- DATABASE_NAME=teslamate
- DATABASE_HOST=database
- ENCRYPTION_KEY=wJrM9nILN5wM5Zm4Z
- MQTT_HOST=mosquitto
- TZ=Asia/Shanghai
- API_TOKEN=LEM3nUfT5xFJGR9PhzLu
ports:
- "8080:8080"
volumes:
- teslamateapi-data:/opt/app/data
depends_on:
- database
- teslamate
- mosquitto
sakurafrp:
image: natfrp.com/launcher:latest
restart: always
ports:
- "7102:7102"
environment:
LANG: zh_CN.UTF-8
TZ: Asia/Shanghai
NATFRP_TOKEN: ${NATFRP_TOKEN}
NATFRP_REMOTE: qYMeu4yq1deFoGlutd4
volumes:
- sakurafrp-data:/run
volumes:
teslamate-db:
teslamate-grafana-data:
mosquitto-conf:
mosquitto-data:
teslamateapi-data:
sakurafrp-data:
第二步:配置 Sakura FRP 内网穿透
要让 portal.mytesla.cc
能够访问到我们部署在内网的 TeslamateAPI ,我们需要一个公网地址。Sakura FRP 就是来实现这一点的工具。
-
注册并获取访问密钥 (Token)
- 访问 https://www.natfrp.com/ 并注册一个账户。
- 登录后,在左侧菜单进入 用户中心 -> API 信息 页面。
- 找到您的 访问密钥,点击"复制"按钮。这个密钥就是我们需要的
NATFRP_TOKEN
。
-
创建隧道
- 在左侧菜单进入 服务 -> 隧道列表 页面。
- 点击"创建隧道",配置如下图。
-
绑定子域名
- 在左侧菜单进入 服务 -> 子域绑定 页面。
- 点击"绑定子域名",配置如下图。
至此,您应该拥有了两个关键信息:
- 公网地址:
mycar.xxx.com:远程端口号
(请替换为您自己的域名和端口号) - 访问密钥 (Token): 从第一步获取的一长串字符。
第三步:启动 Docker 服务
-
配置访问密钥 修改
docker-compose.yml
文件,将${NATFRP_TOKEN}
的值替换为从 Sakura FRP 网站复制的访问密钥。 -
启动所有容器
🖥️ SSH/命令行用户:
docker-compose up -d
# 检查状态
docker-compose ps🏠 NAS 用户:直接在 NAS 后台 Docker 应用中启动所有服务即可。
首次启动会下载所有镜像,请耐心等待。启动完成后,所有容器都应该处于
running
或up
状态。 -
远程管理配置 此时,
sakurafrp
容器应该已经成功连接到了服务器。 回到 Sakura FRP 网站,在左侧菜单进入 服务 -> 远程管理。 您应该能看到一个在线的设备。选择它。 在 启动密码 处,填入docker-compose.yml
中sakurafrp
服务里NATFRP_REMOTE
字段的值:qYMeu4yq1deFoGlutd4
。 点击"连接",即可远程管理您的 FRP 客户端(例如查看日志、重载配置等)。 做下如图操作:
验证部署
服务状态检查
# 检查所有容器状态
docker-compose ps
# 查看服务日志
docker-compose logs teslamate
docker-compose logs teslamateapi
Web 界面访问
服务 | 地址 | 用途 | 默认账号 |
---|---|---|---|
TeslaMate | http://localhost:4000 | 主配置界面 | 无需登录 |
Grafana | http://localhost:3000 | 数据可视化 | admin / [生成的密码] |
TeslaMateAPI | http://localhost:8080 | API 状态页 | 无需登录 |
⚙️ 初始配置
第四步:授权车辆给 Teslamate
- 在浏览器中访问您的 Teslamate 主面板:
http://<你的 NAS 或树莓派 IP>:4000
。 - 您会看到一个登录界面。按照页面提示,您需要获取特斯拉账户的
Access Token
和Refresh Token
。 - 点击页面上的链接,或使用其他第三方工具(如 Auth for Tesla App )生成这两个令牌。
- 将获取到的两个令牌粘贴到输入框中,点击登录。
- 如果一切顺利,Teslamate 将开始从特斯拉服务器拉取您车辆的历史数据和实时信息。这可能需要一些时间。
第五步:在 portal.mytesla.cc 中配置 API
- 登录您的 mytesla.cc 账户。
- 进入 设置 页面,并切换到 Teslamate 选项卡。
- TeslamateAPI 地址: 填写您在 第二步 中获取的 完整公网地址,格式为
https://mycar.xxx.com:远程端口号
。注意,协议是https
,并且必须包含端口号。 - TeslamateAPI 令牌: 填写
docker-compose.yml
文件中teslamateapi
服务里API_TOKEN
字段的值:LEM3nUfT5xFJGR9PhzLu
。 - 点击"保存"。
如果配置正确, mytesla.cc
将会显示"连接成功"的提示。稍等片刻,您就可以在 mytesla.cc
的仪表盘、行程、充电等页面看到由您自己部署的 Teslamate 所提供的精准数据了!同时,行程结束通知、充电完成通知、每日/每周/每月统计报告等高级功能也将自动启用。
恭喜
恭喜!您已成功搭建了一套完全由自己掌控的特斯拉数据记录与分析系统。
云服务器部署 Teslamate 指北
TeslaMate 是一个功能强大的 Tesla 车辆数据记录和分析平台。本指南将帮助您在海外腾讯云服务器上安全部署 TeslaMate (支持用户名登录),包括域名、服务器配置、SSL 证书配置等完整流程。
1. 准备工作
2. 云服务器以及域名
推荐购买企鹅云新加坡轻应用服务器即可( 99/年)
3. 配置 DNS 解析
3.1 添加 A 记录
在腾讯云 DNS 解析控制台:
- 主机记录:
teslamate
(或您喜欢的子域名) - 记录类型:
A
- 记录值: 您的服务器公网 IP
- TTL:
600
3.2 添加 CNAME 记录(可选)
如果需要 www 访问:
- 主机记录:
www
- 记录类型:
CNAME
- 记录值:
teslamate.yourdomain.com
- TTL:
600
4. 一键部署脚本
提供了一个交互式安装脚本,可以自动完成所有配置:
4.1 登录服务器
- 登录腾讯云控制台,找到您的服务器
- 远程登录 免密登录
bash -c "$(curl -sSL https://s.mytesla.cc/install.sh)"
4.2 脚本功能特性
- ✅ 自动安装 Docker 和 Docker Compose
- ✅ 交互式配置环境变量
- ✅ 自动生成安全密码
- ✅ 配置 SSL 证书( Let's Encrypt )
- ✅ 基础认证保护
- ✅ 使用 Mytesla 优化镜像
- ✅ 支持百度地图精确定位
- ✅ 自动启动服务
- ✅ 支持更新服务
- ✅ 支持备份以及恢复数据
🆘 故障排除
如果遇到问题,请查看: