环境介绍
注意:安装前请准备好如下东西
- 一个给teslamate使用的二级域名,比如
tesla.xxx.com
,并解析到你当前服务器的公网ip上
安装teslamate
安装依赖的docker和docker-compose服务
1 2 3 4 5 6 7 8 9 10 11
| $ apt-get update
$ curl -fsSL https://get.docker.com |sudo bash
$ apt-get install -y docker-compose
$ systemctl enable docker
|
创建teslamate的安装目录,并设置目录权限
1 2 3 4 5 6 7 8 9
| $ mkdir -p /data/teslamate/{teslamate-db,teslamate-grafana-data,mosquitto-conf,mosquitto-data,import}
$ chmod 777 mosquitto-conf mosquitto-data teslamate-db teslamate-grafana-data import
$ cd /data/teslamate/ && ls import mosquitto-conf mosquitto-data teslamate-db teslamate-grafana-data
|
创建teslamate的docker-compose文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| $ cd /data/teslamate/
$ vim docker-compose.yml version: "3"
services: teslamate: image: teslamate/teslamate:1.27.2 restart: always environment: - ENCRYPTION_KEY=pXwmZBJwH11111111vJQzTN - DATABASE_USER=teslamate - DATABASE_PASS=123456 - DATABASE_NAME=teslamate - DATABASE_HOST=database - MQTT_HOST=mosquitto - TZ=Asia/Shanghai - VIRTUAL_HOST=tesla.xxx.com - CHECK_ORIGIN=true ports: - 4001:4000 volumes: - ./import:/opt/app/import cap_drop: - all
database: image: postgres:14 restart: always environment: - POSTGRES_USER=teslamate - POSTGRES_PASSWORD=123456 - POSTGRES_DB=teslamate volumes: - ./teslamate-db:/var/lib/postgresql/data
grafana: image: putianhui/grafana-tesla-cn:v1.2 restart: always environment: - DATABASE_USER=teslamate - DATABASE_PASS=123456 - DATABASE_NAME=teslamate - DATABASE_HOST=database - GF_AUTH_ANONYMOUS_ENABLED=false - GF_SERVER_DOMAIN=tesla.xxx.com - GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana - GF_SERVER_SERVE_FROM_SUB_PATH=true ports: - 3001:3000 volumes: - ./teslamate-grafana-data:/var/lib/grafana
mosquitto: image: eclipse-mosquitto:2 restart: always command: mosquitto -c /mosquitto-no-auth.conf volumes: - ./mosquitto-conf:/mosquitto/config - ./mosquitto-data:/mosquitto/data
volumes: teslamate-db: teslamate-grafana-data: mosquitto-conf: mosquitto-data:
|
注意:上面的docker-compose文件仅需要以下几点的修改即可,其他可使用默认。
- 将
tesla.xxx.com
二级域名修改为你自己的teslamate二级域名
。
DATABASE_PASS
这个数据库密码三个容器保持一致。
通过docker-compose文件拉取容器镜像并启动容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $ cd /data/teslamate/
$ ls docker-compose.yml import mosquitto-conf mosquitto-data teslamate-db teslamate-grafana-data
$ docker-compose up -d
$ docker-compose logs -f
$ ss -tnl |egrep '3001|4001' LISTEN 0 4096 0.0.0.0:3001 0.0.0.0:* LISTEN 0 4096 0.0.0.0:4001 0.0.0.0:* LISTEN 0 4096 [::]:3001 [::]:* LISTEN 0 4096 [::]:4001 [::]:*
|
部署nginx进行代理grafana和teslamate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| $ apt-get install -y nginx
$ vim /etc/nginx/conf.d/tesla.conf server { listen 80; server_name tesla.xxx.com;
location / { proxy_pass http://127.0.0.1:4001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_connect_timeout 1800s; proxy_send_timeout 1800s; proxy_read_timeout 1800s; }
location /grafana { proxy_pass http://127.0.0.1:3001; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
$ nginx -t $ systemctl start nginx && systemctl enable nginx
|
nginx服务启动后即可通过你自己的二级域名http://tesla.xxx.com
访问到teslamate和grafana服务了,如果无法访问请打开服务器的80端口
,如果使用了https协议请打开443端口
配置使用teslamate
在ios手机或者macos上面下载一个Auth for Teslaz
这个App,然后选择global
,点击Sign in with Tesla
,输入自己的特斯拉账号和密码登录。
登录成功后会调整这个界面,我们把Refresh Token
和Access Token
复制记录下来,等下站点里面会用到
我们使用浏览器打开前面部署teslamate使用的二级域名http://tesla.xxx.com
会默认访问teslamate的站点,令牌
填写前面的AccessToken
内容,刷新令牌
填写前面的RefreshToken
内容,然后点击登陆。
登陆成功后点击右上角设置,修改web应用程序和控制台的地址为你的二级域名,填写ok后空白地方点一下即可自动保存

配置teslamate服务访问验证
注意:默认部署成功之后teslamate所有人可以从公网访问到,导致不安全,这里配置nginx访问站点时的账号密码认证来加强安全。如果你不在乎直接所有人公网访问此步骤可以忽略
生成一个htpasswd加密后的账号密码字符串后面要用到,可以访问在线生成站点,输入账号和密码生成即可,如果不想生成的话就使用下面的加密字符串,账号密码为admin/admin123
1
| admin:$apr1$ow0QgvnZ$BxatHNt0uJKFhdiydwHww0
|
创建nginx使用的.htpasswd加密字符串文件
1 2 3
| $ vim /etc/nginx/.htpasswd admin:$apr1$ow0QgvnZ$BxatHNt0uJKFhdiydwHww0
|
修改teslamate的nginx配置文件,添加访问验证配置
1 2 3 4 5 6 7 8 9 10 11 12
| $ vim /etc/nginx/conf.d/tesla.conf
location / { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd }
$ nginx -t $ nginx -s reload
|
后面使用浏览器访问teslamate的域名http://tesla.xxx.com
就会提示输入账号密码才可以访问了,密码就是你生成的账号密码,如果使用前面默认的加密字符串账号密码就是admin/admin123
查看监控数据仪表盘
查看仪表盘可以使用浏览器打开你的二级域名后面跟/grafana访问到grafana,比如http://tesla.xxx.com/grafana
,首次登录默认密码为admin/admin
,登录成功记得修改默认密码。