Linux本地部署TeslaMate结合内网穿透实现公网访问内网车辆信息

文章目录

    • 1. Docker部署TeslaMate
    • 2. 本地访问TeslaMate
    • 3. Linux安装Cpolar
    • 4. 配置TeslaMate公网地址
    • 5. 远程访问TeslaMate
    • 6. 固定TeslaMate公网地址
    • 7. 固定地址访问TeslaMate

TeslaMate是一个开源软件,可以通过连接特斯拉账号,记录行驶历史,统计能耗、里程、充电次数等数据。用户可以通过web界面查看车辆状态、行程报告、充电记录等信息,并生成漂亮的图表和统计报告。

另外,TeslaMate也可以记录车子所有的位置、轨迹、速度、温度、海拔、续航、充电等等非常详细的信息。和其他第三方软件数据库都放在别人那里不同,TeslaMate是架设在自己的虚拟或实体服务器(比如支持docker的NAS)里的,所有的数据都在自己控制之下,安全性相对其他第三方软件要好不少

cpolar是一个安全的内网穿透云服务,可以将内网下的本地服务器通过安全隧道暴露至公网,使得公网用户可以正常访问内网服务。

下面介绍使用Docker中部署TeslaMate并结合cpolar内网穿透软件实现无公网无云服务器也可以远程访问TeslaMate,何时何地查看自己的车辆数据!

1. Docker部署TeslaMate

在Linux中任意目录下创建一个docker-compose.yml文件

vim docker-compose.yml

然后把以下内容复制进去,其中注释的地方需要自行修改一下

version: "3"

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=secretkey #自定义设置一个加密的kay
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password #自定义设置一个密码!
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:latest
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=password #自定义设置一个密码!
      - POSTGRES_DB=teslamate
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password #自定义设置一个密码!
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
    ports:
      - 3000: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 up -d

启动部署完成后,界面正常可以看到每个镜像容器都已经正常安装和创建运行,执行docker ps 可以看到成功运行了teslamate容器,接下来进行本地访问

image-20240104105132740

2. 本地访问TeslaMate

上面成功运行teslamate后,通过访问挂载的3000端口即可看到我们teslamate登录界面,输入默认账号和密码:admin即可登录,本地部署运行启动就完成了,接下来我们安装

image-20240104105859061

3. Linux安装Cpolar

上面在本地Docker中成功部署了teslamate服务,并局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过Cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口 即:【http://局域网ip:9200】,使用cpolar账号登录(如没有账号,可以点击下面免费注册),登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

image-20231016143741228

4. 配置TeslaMate公网地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个teslamate的公网http地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:3000 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP

点击创建

image-20240104110406333

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

image-20240104110459327

5. 远程访问TeslaMate

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到我们TeslaMate界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问 !

image-20240104110606567

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:teslamate.cpolar.cn),这样更显正式,便于流交协作。

6. 固定TeslaMate公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240104111619808

保留成功后复制保留成功的二级子域名的名称

image-20240104111639474

返回登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20240104111712119

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240104111740140

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

image-20240104111757850

7. 固定地址访问TeslaMate

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地TeslaMate,无需公网IP,无需云服务器,随时随地查看车辆数据!

image-20240104111912104

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475435.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【网络原理】HTTP 请求 (Request)详解

文章目录 🎍请求格式🎄认识URL🌸query string🌸关于 URL encode 🍀认识 “方法” (method)🌸GET方法🌸POST 方法🌸GET 和 POST 的区别 🌲认识请求 “报头” (header)&…

揭秘3D大屏制作:轻松上手的必备工具清单!

轻轻松松做出3D可视化大屏,你需要知道这几样东西 3D可视化大屏一、3D可视化大屏介绍二、3D可视化应用领域三、3D可视化的技术四、3D可视化的制作平台五、总结 大家好,这里是程序猿代码之路。在如今信息以及数据爆炸的时代,如何有效地展示和解…

【算法】差分算法详解(模板)

类似于数学中的求导和积分之间的关系,差分可以看成前缀和的逆运算。 差分数组: 首先给定一个原数组a:a[1], a[2], a[3],,,,,, a[n]; 然后我们构造一个数组b : b[1] ,b[2] , b[3],,,,,, b[i]; 使得 a[i] b[1] b[2 ] b[3] ,,,…

Protobuf 的介绍与使用(入门级)

背景 在移动互联网时代,手机流量、电量是最为有限的资源,而移动端的即时通讯应用无疑必须得直面这两点。 解决流量过大的基本方法就是使用高度压缩的通信协议,而数据压缩后流量减小带来的自然结果也就是省电:因为大数据量的传输必…

【随笔】Git -- 解决提交时本地与目标分支不一致导致提交失败(三)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

Codeforces Round 935 (Div. 3) (A~G)

1945A - Setting up Camp 题意:三种人安排住宿,a只能跟自己住,b只能三个人住,c能1~3个人,问最终最少房间数 思路:a单独安排,b放一起,不足三个人的用c补,然后c按照3人一房间尽可能分配 void solve() {int a , b , c;cin >> a >>…

一番赏小程序开发,潮玩市场创业新选择!

一番赏是目前非常火爆的抽奖模式,拥有不确定性和超高的惊喜感, 各类隐藏款限量款盲盒商品让年轻消费者欲罢不能。在各种流行趋势下,一番上的市场规模逐渐扩大,吸引着无数人入局。 一番赏在市场上主要是以线下商场门店和线上小程…

某招聘系统0day挖掘(获取4站点报告证书)

前言: 21年的挖的漏洞了 漏洞均已提交且均已修复,这里文章只做技术交流 挖掘过程 对我来说,毕竟喜欢直接黑盒挖0day,一个0day挖到后就可以刷上百分。 如该系统正常找了一个招聘系统用的比较多的 如该通用系统,该通用系统存在一个注册功能 正常的进行注册一个账户进去…

Elasticsearch:将 ILM 管理的数据流迁移到数据流生命周期

警告:此功能处于技术预览阶段,可能会在未来版本中更改或删除。 Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。目前的最新版本为 8.12。 在本教程中,我们将了解如何将现有数据流&#xff0…

Yolov部署在Windows和Android上

Yolov部署在Windows和Android上 前言主要模块主要流程转换为ONNX 部署代码JAVAC 前言 Yolov是目标检测的利器,工业中运用得很火。尽管网上的Yolov部署资料很多,但是这块内容目前做得还算上成熟。为了将Yolov部署在Android和Windows上费了些功夫&#xff…

‍Java OCR技术全面解析:六大解决方案比较

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

升级你的技能:发现国产操作系统Deepin学习网站的无限可能!

网址:deepin是一款由武汉深之度科技有限公司开发的Linux操作系统。以下是对deepin的详细介绍: 发展历程:deepin最初名为Hiweed Linux,自2004年起开始对外发行。它经历了多次迭代和改进,逐渐发展成为今天广受好评的操作…

语音转文字——sherpa ncnn语音识别离线部署C++实现

简介 Sherpa是一个中文语音识别的项目,使用了PyTorch 进行语音识别模型的训练,然后训练好的模型导出成 torchscript 格式,以便在 C 环境中进行推理。尽管 PyTorch 在 CPU 和 GPU 上有良好的支持,但它可能对资源的要求较高&#x…

面试算法-67-完全二叉树的节点个数

题目 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置…

招聘系统开发招聘软件APP招聘小程序开发对标仿BOSS直聘

项目背景 一、市场前景:求职招聘市场的数字化革新 随着互联网的普及和人们对线上求职的接受度提高,求职招聘市场正经历一场数字化革新。招聘系统、软件APP与小程序等数字化产品不仅提供了便捷的求职和招聘服务,还通过智能算法和数据分析技术…

“美联储才是大多头”!鲍威尔推翻降息疑虑!今年降息三次,比特币直奔6.8万!

北京时间周四(3月21日)凌晨,美联储宣布将基准利率维持在5.25%-5.50%区间,为连续第五次保持利率不变,符合市场预期。 然而,更引人注目的是美联储对未来的降息计划。即使降低通胀的进展已经停滞,美…

创建maven项目

创建空项目 然后配置maven 然后,创建module

多线程实现

1.多线程:并发实现 主线程和子线程并行实现。 一个进程中有多个线程,可以同时进行多个任务。进程是系统分配的,线程的执行是由调度器决定的。 注意:线程开启不一定执行,由Cpu调度执行。 线程创建的三种方式&#xff…

js【详解】深拷贝

什么是深拷贝? 对于引用类型的数据,才有深浅拷贝的说法 浅拷贝 :执行拷贝的变量只复制被拷贝变量内存的引用数据的地址。 被拷贝变量内地址指向的数据发生变化时,执行拷贝的变量也会同步改变 深拷贝: 在堆内存中开…

高效输入关键词,瞬间生成惊艳图片:创意与速度的完美结合!

在数字化时代,图片已经成为我们生活中不可或缺的一部分。无论是社交媒体的分享、广告的创意,还是工作中的报告展示,高质量的图片都能为我们的内容增添不少色彩。但你是否曾遇到过这样的困扰:想要一张符合心意的图片,却…