🇨🇳 TeslaMate-CN-Docker

Docker Version Map Proxy GitHub stars

中国大陆可用的 TeslaMate 容器化方案 Teslamate 汉化 Teslamate 中文| TeslaMate Docker Solution for Mainland China

镜像 Repository

强烈推荐 Teslamate iOS appMytess

🌟 特性 Features

  • 完整汉化 - 界面全面中文化(汉化中)
  • 🗺️ 地图访问 - 内置代理服务器解决 OpenStreetMap 访问问题
  • 🗺️ 百度地图 - 支持百度地址逆地址解析,车辆位置信息更精准
  • 🐳 一键部署 - Docker Compose 一键部署

🚀 快速启动 Quick Start

本地内网部署步骤 Deployment

本项目提供两种部署方式:

版本 文件 说明
普通版本 docker-compose.yml 基础版本,包含 TeslaMate + Grafana
Mytesla 版本 docker-compose-with-mytesla.yml 集成 Mytesla Dash,现代化看板替代 Grafana

📊 Mytesla Dash - Grafana 替代方案

Mytesla Dash 是一个现代化的 Tesla 数据看板,可以完美替代 Grafana 作为日常使用的数据展示界面。

为什么选择 Mytesla Dash

  • 现代化 UI - 简洁美观的界面设计,移动端友好
  • 开箱即用 - 无需复杂的 Grafana 仪表盘配置
  • 实时监控 - 车辆状态、充电进度实时展示
  • 数据分析 - 行程记录、能耗统计、充电费用一目了然
  • 地理围栏 - 支持自定义地理围栏,自动识别充电地点
  • 分时计费 - 峰谷电价自动计算,精确统计充电成本

授权说明

注意Mytesla Dash 需要一次性授权才能使用,首次访问时会引导完成授权流程。

获取授权码:小红书 Mytesla 授权

界面预览

Dashboard 主界面

记录

统计


🔐 反向代理与认证安全

docker-compose-with-mytesla.yml 采用 Traefik + ForwardAuth 架构,提供企业级的安全防护:

架构说明

┌─────────────────────────────────────────────────────────────┐
│                        用户请求                              │
└─────────────────────────┬───────────────────────────────────┘
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                 Traefik (反向代理)                           │
│  - 统一入口 (端口 80)                                        │
│  - 路由分发                                                  │
│  - 中间件处理                                                │
└─────────────────────────┬───────────────────────────────────┘
                          ▼
┌─────────────────────────────────────────────────────────────┐
│              Auth Service (认证服务)                         │
│  - Cookie-based 会话认证                                     │
│  - 登录/登出管理                                             │
│  - ForwardAuth 中间件                                        │
└─────────────────────────┬───────────────────────────────────┘
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    后端服务                                  │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │TeslaMate │  │  Dash    │  │ Grafana  │  │   API    │    │
│  │/teslamate│  │    /     │  │ /grafana │  │  /panel  │    │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘    │
└─────────────────────────────────────────────────────────────┘

安全特性

组件 作用
Traefik 反向代理,统一管理所有服务的入口,隐藏内部服务端口
Auth Service 提供统一的登录认证,保护敏感数据不被未授权访问
ForwardAuth 每个请求都会先经过认证服务验证,确保只有登录用户才能访问
路径隔离 不同服务使用不同路径,互不干扰

访问路径

  • / - Mytesla Dash 主界面(需要登录)
  • /teslamate - TeslaMate 管理界面(需要登录)
  • /grafana - Grafana 仪表盘
  • /login - 登录页面
  • /logout - 登出
  • /settings - 设置页面

🚀 部署指南

方式一:普通版本(TeslaMate + Grafana

# 克隆仓库
git clone https://github.com/gococonut/teslamate-cn-docker.git
cd teslamate-cn-docker

# 启动服务
docker compose up -d

方式二:Mytesla 版本(推荐)

# 克隆仓库
git clone https://github.com/gococonut/teslamate-cn-docker.git
cd teslamate-cn-docker

# 启动服务
docker compose -f docker-compose-with-mytesla.yml up -d

访问服务

  • 普通版本

    • TeslaMate: http://your-ip:4000
    • Grafana: http://your-ip:3000
  • Mytesla 版本

    • 统一入口: http://your-ip (默认跳转到 Dashboard
    • TeslaMate: http://your-ip/teslamate
    • Grafana: http://your-ip/grafana
    • TeslaMate API: http://your-ip/mytesla/api (无需认证)
    • 默认登录: 用户名 admin / 密码 admin123(可在 http://your-ip/settings 设置页面修改)

⚠️ 重要:安全配置

在生产环境部署前,务必修改以下重要的环境变量,否则可能导致安全风险:

🔐 必须修改的环境变量

编辑 docker-compose-with-mytesla.yml 文件,修改以下配置:

1. Auth 服务登录凭据

auth:
  environment:
    - AUTH_USERNAME=admin          # ⚠️ 修改为你的用户名
    - AUTH_PASSWORD=admin123       # ⚠️ 修改为强密码
    - SECRET_KEY=mytesla-secret-key-change-me  # ⚠️ 修改为随机字符串(至少 32 位)

2. TeslaMate 加密密钥

teslamate:
  environment:
    - ENCRYPTION_KEY=your-encryption-key-change-me  # ⚠️ 修改为随机字符串(至少 32 位)

3. 数据库密码

database:
  environment:
    - POSTGRES_PASSWORD=teslamate  # ⚠️ 修改为强密码

teslamate:
  environment:
    - DATABASE_PASS=teslamate      # ⚠️ 与数据库密码保持一致

4. Grafana 管理员密码

grafana:
  environment:
    - GRAFANA_PASSWD=admin123      # ⚠️ 修改为强密码
    - GF_SECURITY_ADMIN_PASSWORD=admin123  # ⚠️ 修改为强密码

5. TeslaMate API Token

teslamateapi:
  environment:
    - API_TOKEN=PLEASE-CHANGE-THIS-API-TOKEN-IN-PRODUCTION  # ⚠️ 修改为随机字符串
    - ENCRYPTION_KEY=your-encryption-key-change-me  # ⚠️ 与 TeslaMate 的加密密钥保持一致

💡 安全建议

  • 生成随机密钥:使用以下命令生成安全的随机字符串

    # Linux/macOS
    openssl rand -base64 32
    
    # 或者
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
    
  • 强密码要求

    • 至少 12 位字符
    • 包含大小写字母、数字和特殊字符
    • 避免使用常见密码或个人信息
  • 定期更换密码:建议每 3-6 个月更换一次关键密码

  • 备份加密密钥ENCRYPTION_KEY 用于加密敏感数据(如 Tesla API Token),丢失后无法恢复数据

修改后重启服务

# 停止服务
docker compose -f docker-compose-with-mytesla.yml down

# 重新启动
docker compose -f docker-compose-with-mytesla.yml up -d
S
Description
No description provided
Readme 6.1 MiB