类别
软件 技术 特斯拉

如何用Docker设置TeslaMate

在这篇文章中,我将一步一步地指导你如何安装和设置 TeslaMate 到你的Vultr云实例上。从选择你的虚拟机配置到在你的虚拟机上安装和配置该工具。寻找关于BuyVM的指南? 买入指南.

在本教程中,我使用 Vultr 因为他们有一种理想的方式,可以用他们的预设镜像建立一个docker服务器,并很快开始工作。我还喜欢如果你对TeslaMate不满意,你可以轻松地摧毁云实例,继续你的一天。然而,看看你能用多大程度的 $100的免费点数 (必须在30天内使用积分)!

$100的免费点数
Vultr的SSD VPS服务器、云服务器和云主机
$3.50/月

轻松地在全球范围内部署云服务器、裸机和存储。

  • 云计算、裸机、专用云、Kubernetes
  • 收到$100,测试Vultr平台。
如果你购买,我们会赚取佣金,而不会给你带来额外的费用。

TeslaMate的特点。

  • 驱动器和充电报告
  • 驾驶效率报告
  • 能源消耗(净值/总值)
  • 增加的充电能量与使用的能量
  • 吸血鬼排水
  • 预计100%射程(电池衰减情况)
  • 充电统计表
  • 驱动力统计
  • 已安装更新的历史
  • 查看您的汽车何时在线或处于睡眠状态
  • 终身驾驶地图
  • 访问过的地址

另外,还要检查你的车的状态(包括电池水平),而不会吵醒你的车!

我们将遵循开发者的高级说明,因为我们将使用一个云实例,或者,你可以将其安装在Rasberry Pi或你身边的额外电脑上。然而,我喜欢这个选项,因为 Vultr 由于很容易为任何人重新制作。

部署新实例

vultrplus20200413 | Graydon Schwartz
鼠标移到 (+)加 符号,并点击 部署新服务器

选择服务器:云计算

vultrchooseservercloudcompute20200413 | Graydon Schwartz
如何用Docker 24设置TeslaMate


服务器位置:芝加哥(我选择了芝加哥,但你可以选择最适合你的方式)。

  • 美国亚特兰大
  • 美国纽约(NJ)市
  • 美国芝加哥
  • 美国达拉斯
  • 美国洛杉矶
  • 美国,迈阿密
  • 美国,西雅图
  • 美国,硅谷
  • 多伦多,加拿大
  • 荷兰,阿姆斯特丹
  • 法国,巴黎
  • 法兰克福,德国
  • 英国,伦敦
  • 日本,东京
  • 新加坡, 新加坡
  • 悉尼,澳大利亚

服务器类型:申请。 码头:在 CentOS 7 x64 19.03.4-ce

vultrservertypeappdocker20200413 | Graydon Schwartz
如何用Docker 25设置TeslaMate

服务器大小: 25GB SSD
$5.00/月或$0.007/小时
1 CPU
1024MB 记忆*
1000GB 带宽

vultrserversize20200413 | Graydon Schwartz
如何用Docker设置TeslaMate 26

*注意:Docker需要一个至少有768MB内存的计划。

点击进入 现在就部署!

vultrdeploynow20200413 | Graydon Schwartz
如何用Docker 27设置TeslaMate

点击 "产品"!

vultrproducts20200413 | Graydon Schwartz
如何用Docker设置TeslaMate 28
vultryourproducts20200413 | Graydon Schwartz
如何用Docker设置TeslaMate 29

服务器信息

vultrserverinfodocker20200413 | Graydon Schwartz
如何用Docker 30设置TeslaMate

下载 浦发银行

输入IP地址
并点击 打开!

GUIDE:高级Docker安装(Traefik, Let's Encrypt, HTTPS, HTTP Basic Auth)。

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

设置 - docker-compose.yml

版本。"3"

服务。
  teslamate。
    image: teslamate/teslamate:latest
    重新启动: 总是
    depends_on:
      - 数据库
    环境。
      - database_user=${tm_db_user}.
      - 数据库密码=${tm_db_pass}。
      - 数据库名称=${tm_db_name}。
      - DATABASE_HOST=数据库
      - MQTT_HOST=mosquitto
      - virtual_host=${fqdn_tm}。
      - CHECK_ORIGIN=true
      - tz=${tm_tz}。
    卷。
      - ./import:/opt/app/import
    标签。
      - "traefik.enable=true"
      - "traefik.port=4000"
      - "traefik.http.middlewares.redirect.redirectscheme.scheme=https"
      - "traefik.http.middlewares.teslamate-auth.basicauth.realm=teslamate"
      - "traefik.http.middlewares.teslamate-auth.basicauth.usersfile=/auth/.htpasswd"
      - "traefik.http.routers.teslamate-insecure.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routers.teslamate-insecure.middlewares=redirect"
      - "traefik.http.routers.teslamate-ws.rule=Host(`${FQDN_TM}`) && Path(`/live/websocket`) "
      - "traefik.http.routers.teslamate-ws.entrypoints=websecure"
      - "traefik.http.routers.teslamate-ws.tls"
      - "traefik.http.routers.teslamate.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routers.teslamate.middlewares=teslamate-auth"
      - "traefik.http.routers.teslamate.entrypoints=websecure"
      - "traefik.http.routers.teslamate.tls.certresolver=tmhttpchallenge"
    cap_drop。
      - 所有

  数据库。
    image: postgres:13
    重新启动: 总是
    环境。
      - postgres_user=${tm_db_user}.
      - postgres_password=${tm_db_pass}。
      - POSTGRES_DB=${TM_DB_NAME}
    卷。
      - teslamate-db:/var/lib/postgresql/data

  grafana。
    Image: teslamate/grafana:latest
    重新启动:总是
    环境。
      - database_user=${tm_db_user}.
      - database_pass=${tm_db_pass}。
      - 数据库名称=${tm_db_name}。
      - DATABASE_HOST=数据库
      - grafana_passwd=${grafana_pw}。
      - gf_security_admin_user=${grafana_user}。
      - gf_security_admin_password=${grafana_pw}。
      - GF_AUTH_ANONYMOUS_ENABLED=false
      - gf_server_domain=${fqdn_tm}。
      - GF_SERVER_ROOT_URL=%(协议)s://%(域)s/grafana
      - GF_SERVER_SERVE_FROM_SUB_PATH=true

    卷。
      - teslamate-grafana-data:/var/lib/grafana
    标签。
      - "traefik.enable=true"
      - "traefik.port=3000"
      - "traefik.http.middlewares.redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.grafana-insecure.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routers.grafana-insecure.middlewares=redirect"
      - "traefik.http.routers.grafana.rule=Path(`/grafana`) || PathPrefix(`/grafana/`)"
      - "traefik.http.routers.grafana.entrypoints=websecure"
      - "traefik.http.routers.grafana.tls.certresolver=tmhttpchallenge"

  mosquitto。
    Image: eclipse-mosquitto:2
    重新启动:总是
    命令:mosquitto -c /mosquitto-no-auth.conf
    端口。
      - 127.0.0.1:1883:1883
    卷。
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

  代理。
    image: traefik:v2.4
    重新启动:总是
    命令。
      - "--global.sendAnonymousUsage=false"
      - "--providers.docker"
      - "--providers.docker.exposedByDefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.tmhttpchallenge.acme.httpchallenge=true"
      - "--certificatesresolvers.tmhttpchallenge.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.tmhttpchallenge.acme.email=${LETSENCRYPT_EMAIL}"
      - "--certificatesresolvers.tmhttpchallenge.acme.storage=/etc/acme/acme.json"
    端口。
      - 80:80
      - 443:443
    卷。
      - ./.htpasswd:/auth/.htpasswd
      - ./acme/:/etc/acme/。
      - /var/run/docker.sock:/var/run/docker.sock:ro

卷。
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data:

设置 - .env

TM_DB_USER=teslamate
TM_DB_PASS=secret
TM_DB_NAME=teslamate

GRAFANA_USER=admin
GRAFANA_PW=admin

FQDN_TM=teslamate.example.com

TM_TZ=Europe/Berlin

LETSENCRYPT_EMAIL=yourperson@example.com

设置 - .htpasswd

根据TeslaMate的文档。我建议你使用这个工具来创建你的.htpasswd文件。
http://www.htaccesstools.com/htpasswd-generator/
输入你想要的 帐号, 密码选择Bcrypt(Apache v2.4以上版本)。
在下面的例子中,我输入了 帐号密码 为这些领域。

例子。

my:$2y$10$as5PEnYaoGEx2ebCFjdK0e9PBshAsvzIeAKijwNgeMSC9oJkDNo2。

现在复制并粘贴这些信息到你的.htpasswd文件中。

vi .htpasswd(或你喜欢的文本编辑器)。

在使用Docker启动Teslamate之前,请确保你设置了密码!

docker-compose up

注意:你可能需要运行这个命令两次才能发挥作用。



DNS设置

你将需要把teslamate.example.com + grafana.exampe.com(你的子域)指向Vultr在你创建虚拟服务器时提供给你的IP地址。这可以通过联系你的虚拟主机或登录你的控制面板来管理你的DNS记录并添加这些条目来完成。

登录TeslaMate

  1. 打开网络界面 https://teslamate.example.com
    用你输入到.htpasswd文件中的详细信息登录,然后会提示你用你的特斯拉账户登录。
  2. 用你的特斯拉账户登录
  3. Grafana 仪表板可在以下网站上找到: https://grafana.example.com.
  4. 输入用户名:密码。管理员:管理员 首先,你会被提示在第一次登录时更改密码。

我花了$0.01或1便士来测试Teslamate。$0.02来完成这个教程。 🙂

vultrdockercloudinstance | Graydon Schwartz
Vultr 控制面板

你可以在设置中把摄氏度改为华氏度,把公里数改为英里。

淘宝网上的 "淘宝网 "和 "淘宝网 "都是以 "淘宝网 "的形式出现的。
TeslaMate主屏幕

这就是主屏幕的样子。你还会看到一张地图,上面有你的特斯拉汽车的位置针。

触摸屏充电1kwfeb212020 | Graydon Schwartz
5英里/小时 | 12A | 3kW

我在最近的普通12A插座上进行了一次充电,以显示TeslaMate的充电过程是什么样的。干净的界面!🙂

触摸屏充电3kwfeb212020 | Graydon Schwartz
13英里/小时|16A|3kW
teslamatecharginggraph3kwfeb212020 | Graydon Schwartz
13英里/小时|16A|3kW

2020年3月10日更新

TeslaMate在大约16天前发布了v1.17.1的更新。

  • 添加 旅程仪表板:这个仪表板是为可视化较长的旅行而建立的。它提供了一个在几个小时或几天内记录的所有驾驶和收费的概况。
  • TeslaMate发布页

我很高兴能测试这个新的 旅程仪表板 在新版本中添加了。这对特斯拉的公路旅行当然会有很大帮助!🙂。

这是我用来构建本教程部分内容的文档。
https://docs.teslamate.org/docs/guides/traefik
https://docs.teslamate.org/docs/guides/portainer

2020年3月21日更新

如何使用Teslamate以外的新行程功能。

  1. 打开网络界面 https://teslamate.example.com
  2. 仪表板 => 点选或点击"旅程
  3. 点选或点击"今天到目前为止
  4. 从""中选择预设最后5分钟",一直到"过去5年"或自定义日期范围选择。
淘宝网上的 "淘宝网 "和 "淘宝网 "都是以 "淘宝网 "为基础的,而 "淘宝网 "是以 "淘宝网 "为基础的。
TeslaMate主屏幕
纺织服装业:3月2日12020 1 | 格雷顿-施瓦茨
点选或将鼠标放在"仪表板
纺织服装业:3月2日12020 2 | 格雷顿-施瓦茨
点选或点击"旅程
纺织服装行业:3月2日12020 3 | 格雷顿-施瓦茨
从""中选择预设最后5分钟",一直到"过去5年"或自定义日期范围选择。
纺织服装业的发展是一个漫长的过程,而不是一蹴而就的。
TeslaMate > 行程实例
纺织服装行业:3月2日12020 4 | 格雷顿-施瓦茨
TeslaMate > 行程实例(特写)。

我希望这个设置指南对你有帮助。 🙂

| 格雷顿-施瓦茨

作者:Graydon Schwartz

了解更多关于Graydon的信息。 关于我 页。

“How to Setup TeslaMate with Docker”上的一条回复

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注