本篇将介绍两种部署方式,一种是 NAS/树莓派部署,一种是云服务器部署。
本指南将带您一步步完成以下目标:
portal.mytesla.cc
,解锁高级数据统计、自动计费和实时通知等强大功能。准备工作:
portal.mytesla.cc
账户。首先,在您的 NAS 或树莓派上创建一个新的工作目录,例如 teslamate
,然后进入该目录。
mkdir teslamate
cd teslamate
接着,创建一个名为 docker-compose.yml
的文件,并将您提供的以下内容完整地复制粘贴进去。
重要提示:请勿修改此 docker-compose.yml
文件的任何内容,我们将在后续步骤中通过其他方式配置变量。
# 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=teslamate
- 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
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:
要让 portal.mytesla.cc
能够访问到我们部署在内网的 TeslamateAPI ,我们需要一个公网地址。Sakura FRP 就是来实现这一点的工具。
注册并获取访问密钥 (Token)
NATFRP_TOKEN
。创建隧道
绑定子域名
至此,您应该拥有了两个关键信息:
mycar.xxx.com:远程端口号
(请替换为您自己的子域名和端口号)配置访问密钥
修改 docker-compose.yml
文件,将 ${NATFRP_TOKEN}
的值替换为从 Sakura FRP 网站复制的访问密钥。
启动所有容器
在 teslamate
目录下,运行以下命令以后台模式启动所有服务或直接在 NAS 后台 docker 应用中启动所有服务。
首次启动会下载所有镜像,请耐心等待。启动完成后,可以通过 docker-compose ps
命令查看所有容器是否都处于 running
或 up
状态。
远程管理配置
此时, sakurafrp
容器应该已经成功连接到了服务器。
回到 Sakura FRP 网站,在左侧菜单进入 服务 -> 远程管理。
您应该能看到一个在线的设备。选择它。
在 启动密码 处,填入 docker-compose.yml
中 sakurafrp
服务里 NATFRP_REMOTE
字段的值: qYMeu4yq1deFoGlutd4
。
点击“连接”,即可远程管理您的 FRP 客户端(例如查看日志、重载配置等)。
做下如图操作:
http://<你的 NAS 或树莓派 IP>:4000
。Access Token
和 Refresh Token
。https://mycar.xxx.com:远程端口号
。注意,协议是 https
,并且必须包含端口号。docker-compose.yml
文件中 teslamateapi
服务里 API_TOKEN
字段的值:LEM3nUfT5xFJGR9PhzLu
。如果配置正确, mytesla.cc
将会显示“连接成功”的提示。稍等片刻,您就可以在 mytesla.cc
的仪表盘、行程、充电等页面看到由您自己部署的 Teslamate 所提供的精准数据了!同时,行程结束通知、充电完成通知、每日/每周/每月统计报告等高级功能也将自动启用。
恭喜!您已成功搭建了一套完全由自己掌控的特斯拉数据记录与分析系统。
TeslaMate 是一个功能强大的 Tesla 车辆数据记录和分析平台。本指南将帮助您在海外腾讯云服务器上安全部署 TeslaMate (支持用户名登录),包括域名、服务器配置、SSL 证书配置等完整流程。
推荐购买企鹅云新加坡轻应用服务器即可( 99/年)
在腾讯云 DNS 解析控制台:
teslamate
(或您喜欢的子域名)A
600
如果需要 www 访问:
www
CNAME
teslamate.yourdomain.com
600
提供了一个交互式安装脚本,可以自动完成所有配置:
bash -c "$(curl -sSL https://s.mytesla.cc/install.sh)"
在成功部署 TeslaMate 后,强烈推荐您使用 Mytesla UI :
实时车辆监控
数据分析
通知提醒
1
xinyana 9 天前 via Android
好重,内网穿透好多轻量级工具吧
|
![]() |
3
SakuraYuki 9 天前
一般情况下猫做好端口转发都能穿吧,除非你那 udp 被 qos 的很严重或者买的十八手宽带
|
![]() |
4
gococonut OP @SakuraYuki 不懂点技术,不好处理,有些人就 NAS docker 应用界面操作搞搞。写这个目的是让更多的人能自己部署,懂技术的自己想咋弄咋弄。
|
![]() |
5
hxsf 9 天前 ![]() 推广[Mytesla UI], 请发推广区。
分享[Mytesla UI],可以直接分享。这文章很软文 |
![]() |
6
xceszzy 9 天前
要 49 呢。充电都要用谷电电我,只能体验 5 天了。
|
![]() |
7
SakuraYuki 9 天前
@gococonut #4 对不懂技术的人来说你让他们用 docker 比直接下一个 tailscale 那可难太多了
|
![]() |
8
gococonut OP @SakuraYuki #7 错了,他们还真会用 docker ,我接触到的很多完全不懂技术,跟着教程也能自己搭起来。 而且 NAS 大多是 编辑 yml 文件直接页面操作的。tailscale 太不方便了,要一直开着,有时还不稳定。
|
![]() |
9
Latin 9 天前
等我什么时候买的起特斯拉再说,哈哈
|
![]() |
10
xceszzy 9 天前
https://imgur.com/a/2WkRuZV 这玩意儿 没有 app 么。 这样就容易推送,分享了。
|
11
fuzzsh 9 天前 via Android
> 重要提示:请勿修改此 docker-compose.yml 文件的任何内容,我们将在后续步骤中通过其他方式配置变量。
不揣测你的居心,用惯一键脚本的小白肯定不会细究 var 的用途,在明显配了 password/secret 的文件,不标出且不让他改?只要拿 http 特征上 shodan 一搜,数据一网打尽,虽说监测数据泄露不影响行车安全 |
![]() |
12
Tink PRO @SakuraYuki #7 小白一般是喜欢 docker compose 一把梭的
|
![]() |
13
gococonut OP @fuzzsh 别断章取义,很多人甚至不知道 ${VAR} 到底意味着什么,强调的是别乱改,有太多人直接用的 teslamate 官方文档的默认账号密码,只是为了方便。你自己试一下一键脚本再来评论。 你的好意我理解,别阴阳怪气的,好好说话,还什么居心。 内网只暴露了 8080 而且有 API TOKEN ,sakura 的端口子域名都是一层保护。云服务的脚本所有密码都是自动随机生成的。
|
14
fuzzsh 9 天前 via Android
将 teslamateapi mapping 到公网,API_TOKEN 固定 LEM3nUfT5xFJGR9PhzLu ,teslamateapi 唯一的 secret 都暴露了,不知道从那里来的保护,所谓域名也算保护的话,我也无话可说
而且互联网上又不止 shodan 一家做探测,大多数是全端口探测 |
![]() |
15
gococonut OP @fuzzsh #14 你家 NAS 直接暴露公网的?端口怎么就暴露了? API_TOKEN 以及各种密码我也贴条了强调了,内网的除了 API TOKEN 其他的固定也没什么问题。整个文档还挺长很多步骤,有问题你指出来没问题,都是为了安全。注意你说话方式方法。动不动揣测你的居心?这话听也太难听了。
|
16
fuzzsh 9 天前 via Android
|
17
1018ji 9 天前
买不起
|
![]() |
18
czwstc 9 天前
上公网的后果就是你的车出现在 https://teslamap.io/?i=1 这个网站上。
安全意识很重要 |
![]() |
21
czwstc 9 天前
你好,你是作者吗?我有几个问题
我是 Teslamate 多年的用户,的确觉得 teslamate 的 UI 不够好看。如果是一个付费 UI ,我是愿意购买的。 如果付费的 UI 价格更贵,例如 49 美金,我觉得 Tesla 社区应该也会不少人支持。 但我也是不愿意把硬件服务暴露到公网的。 我大概看了下这个服务的文档,我找到了大量端口穿透的教程。。但是没理解穿透的端口是 mytesla 的端口还是 teslamate 的端口? 所以我的问题是: 1.mytesla 能否部署在本地,在本地连接 teslamate 2.mytesla 如果部署云端需要访问 Teslamate ,能否提供访问 IP 的列表,这样可以方便开启白名单。 |
![]() |
23
gococonut OP @czwstc #21
打洞是暴露了一个 RESTful 服务。是 mytesla/teslamateapi 的服务。 > 1.mytesla 能否部署在本地,在本地连接 teslamate 目前不支持部署在本地,但是你可以用 http://lan.mytesla.cc 访问内网数据,可以不打洞。 > 2.mytesla 如果部署云端需要访问 Teslamate ,能否提供访问 IP 的列表,这样可以方便开启白名单。 mytesla UI 是浏览器直接与 mytesla/teslamateapi 建立连接的,不会经过任何服务器,不是服务器访问所以也就没有 IP 白名单的说法。 |
![]() |
24
czwstc 9 天前
你是不是暴露的不是 Teslamate ,而是一个叫 mytesla/teslamateapi 的容器端口。
我觉得可以把 image 名字命名成 api4teslamate 更加合理一些 |