TeslaMate项目在Debian系统上的手动安装指南
teslamate 项目地址: https://gitcode.com/gh_mirrors/tes/teslamate
前言
TeslaMate是一款功能强大的特斯拉车辆数据监控和分析工具,能够记录并可视化您的特斯拉车辆的各种数据。本文将详细介绍如何在Debian或Ubuntu系统上手动安装TeslaMate,适合那些希望深入了解系统配置的技术爱好者。
安装前准备
在开始安装前,请确保您的系统满足以下软件要求:
1. PostgreSQL数据库(v12+)
TeslaMate使用PostgreSQL作为后端数据库存储车辆数据。安装步骤如下:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt-get update
sudo apt-get install -y postgresql-12 postgresql-client-12
2. Elixir语言环境(v1.12+)
TeslaMate使用Elixir语言开发,需要安装其运行环境:
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb
sudo apt-get update
sudo apt-get install -y elixir esl-erlang
3. Grafana可视化平台(v8.3.4+)
Grafana用于展示TeslaMate收集的数据:
sudo apt-get install -y apt-transport-https software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service
安装必要的Grafana插件:
sudo grafana-cli plugins install pr0ps-trackmap-panel 2.1.4
sudo grafana-cli plugins install natel-plotly-panel 0.0.7
sudo grafana-cli --pluginUrl https://github.com/panodata/panodata-map-panel/releases/download/0.16.0/panodata-map-panel-0.16.0.zip plugins install grafana-worldmap-panel-ng
sudo systemctl restart grafana-server
4. MQTT代理(如Mosquitto)
用于实时数据传输:
sudo apt-get install -y mosquitto
5. Node.js(v14+)
前端构建依赖:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
获取TeslaMate源代码
将TeslaMate项目克隆到本地:
cd /usr/src
git clone https://github.com/teslamate-org/teslamate.git
cd teslamate
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
数据库配置
创建TeslaMate专用的数据库和用户:
sudo -u postgres psql
postgres=# create database teslamate;
postgres=# create user teslamate with encrypted password 'your_secure_password_here';
postgres=# grant all privileges on database teslamate to teslamate;
postgres=# ALTER USER teslamate WITH SUPERUSER;
postgres=# \q
注意:数据库迁移完成后可以撤销超级用户权限。
项目编译
编译TeslaMate项目:
mix local.hex --force; mix local.rebar --force
mix deps.get --only prod
npm install --prefix ./assets && npm run deploy --prefix ./assets
MIX_ENV=prod mix do phx.digest, release --overwrite
设置系统区域设置(如遇UTF-8错误):
sudo locale-gen en_US.UTF-8
sudo localectl set-locale LANG=en_US.UTF-8
系统服务配置
使用systemd(推荐)
创建服务文件/etc/systemd/system/teslamate.service
:
[Unit]
Description=TeslaMate
After=network.target
After=postgresql.service
[Service]
Type=simple
Restart=on-failure
RestartSec=5
Environment="HOME=/usr/src/teslamate"
Environment="LANG=en_US.UTF-8"
Environment="LC_CTYPE=en_US.UTF-8"
Environment="TZ=Asia/Shanghai"
Environment="PORT=4000"
Environment="ENCRYPTION_KEY=your_secure_encryption_key_here"
Environment="DATABASE_USER=teslamate"
Environment="DATABASE_PASS=your_secure_password_here"
Environment="DATABASE_NAME=teslamate"
Environment="DATABASE_HOST=127.0.0.1"
Environment="MQTT_HOST=127.0.0.1"
WorkingDirectory=/usr/src/teslamate
ExecStartPre=/usr/src/teslamate/_build/prod/rel/teslamate/bin/teslamate eval "TeslaMate.Release.migrate"
ExecStart=/usr/src/teslamate/_build/prod/rel/teslamate/bin/teslamate start
ExecStop=/usr/src/teslamate/_build/prod/rel/teslamate/bin/teslamate stop
[Install]
WantedBy=multi-user.target
启动并设置开机自启:
sudo systemctl start teslamate
sudo systemctl enable teslamate
Grafana仪表板导入
- 访问
http://localhost:3000
,使用默认凭证admin:admin
登录 - 创建名为"TeslaMate"的数据源:
类型: PostgreSQL
默认: 是
名称: TeslaMate
主机: localhost
数据库: teslamate
用户: teslamate
密码: your_secure_password_here
SSL模式: 禁用
版本: 10
- 导入仪表板:
./grafana/dashboards.sh restore
如需使用非默认凭证:
LOGIN=user:password ./grafana/dashboards.sh restore
结语
至此,您已成功在Debian系统上手动安装了TeslaMate。相比使用Docker的安装方式,手动安装让您对系统有更深入的控制,适合需要定制化配置的高级用户。安装完成后,您可以通过访问TeslaMate的Web界面开始监控您的特斯拉车辆数据。
teslamate 项目地址: https://gitcode.com/gh_mirrors/tes/teslamate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考