mirror of
https://github.com/yekk-me/teslamate-cn-image.git
synced 2026-02-19 13:44:41 +08:00
* Restructure repository for Mytess SEO optimization ## Changes ### File Reorganization - Move docker-compose files and images to new `script/` directory - Create new English root README.md with Mytess showcase - Add simplified Chinese README.zh.md as redirect - Add comprehensive English deployment guide in script/README.md ### Docker Compose Updates - Remove Chinese mirror sources (docker.1ms.run) from all images - Use official Docker registry for global compatibility - Add cache headers for Dash static assets (1-year cache) - Configure caching for Next.js static files and PWA assets ### SEO & Documentation - Feature Mytess prominently with screenshots and links - Include App Store and mytess.net references - Natural keyword integration for TeslaMate iOS/mobile searches - Comprehensive troubleshooting and configuration guides - Architecture diagrams for both deployment options ### Benefits - Improved global search visibility for Mytess - Better user experience with clear English documentation - Performance improvements via static asset caching - Maintained backward compatibility for existing users Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove emojis and add showcase images to README ## Changes - Remove all emoji icons from both English and Chinese READMEs - Add actual showcase images from mytess-web project - Update feature descriptions with paired screenshots - Include images for: drive insights, cost management, map mode, and notifications - Maintain professional and clean documentation style Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Switch to official TeslaMate images and clarify version differences ## Changes ### Docker Compose Updates - **Basic version (docker-compose.yml)**: Now uses official images - teslamate/teslamate:latest (was mytesla/teslamate:v2.2) - teslamate/grafana:latest (was mytesla/grafana:v2.2) - **Mytesla version (docker-compose-with-mytesla.yml)**: Unchanged, continues using mytesla images ### Documentation Updates - **English README**: Clarify two deployment options with clear use cases - Option 1: Official version for international users - Option 2: Mytesla optimized for China (with problem solutions listed) - **Chinese README**: Add detailed explanation of mytesla version benefits - OpenStreetMap proxy solution - Baidu Maps support - Chinese localization - Unified authentication - **script/README.md**: Update deployment instructions with version comparison ### Benefits - Users can now choose between official and optimized versions - Clear guidance on which version to use based on location - Mytesla version value proposition clearly explained (China-specific fixes) - Maintains flexibility for different user needs Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Add Mytesla Dash licensing information ## Changes - Add FAQ entry about Mytesla Dash license requirement - Direct users to contact hi@mytesla.cc for licensing inquiries - Add note in script/README.md for Mytesla Dash option - Replace Chinese-specific licensing link with international email contact Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Use official TeslaMate/Grafana images in both configurations ## Changes ### Docker Compose Updates Both versions now use official TeslaMate and Grafana images: - `teslamate/teslamate:v2.2` (official) - `teslamate/grafana:v2.2` (official) **Basic version (docker-compose.yml)**: - Official TeslaMate + Grafana only **Mytesla version (docker-compose-with-mytesla.yml)**: - Official TeslaMate + Grafana as base - Plus Mytesla enhancement components: - mytesla/auth - Unified authentication - mytesla/dash - Modern web dashboard - mytesla/teslamateapi - Enhanced API - mytesla/env-adapter - Environment adapter ### Documentation Updates - Update all READMEs to reflect official image usage - Clarify that Mytesla version = Official base + Mytesla components - Explain advantages of Mytesla components in Chinese docs - Remove "China-specific" positioning, focus on feature benefits ### Benefits - Both versions stay up-to-date with official TeslaMate releases - Mytesla version provides additional value through enhancement components - Clear separation: official base vs. enhanced features - Users can choose based on feature needs, not geography Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Add TeslaMateAPI to basic docker-compose configuration ## Changes ### Docker Compose - Add official TeslaMateAPI service to basic version - Image: tobiasehlert/teslamateapi:latest - Port: 8080 (standard TeslaMateAPI port) - Enable API commands and token authentication - Configure database and MQTT connections ### Documentation Updates - Update all port references from 3030 to 8080 - Add TeslaMateAPI to basic version service list - Update firewall instructions to include port 8080 - Clarify that basic version now supports Mytess iOS app ### Benefits - Basic version now fully supports Mytess iOS app connectivity - Users can choose between: - Basic: Separate ports (4000, 3000, 8080) - Mytesla: Unified port 80 with reverse proxy - No need to use Mytesla version just for API access Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Fix basic version TeslaMateAPI configuration ## Changes ### Docker Compose - Change image to mytesla/teslamateapi:latest (match with-mytesla version) - Update port mapping to 3030:8080 (consistent with documentation) - Align environment variables with with-mytesla version: - Add API_TOKEN configuration - Add teslamateapi-data volume - Add teslamate dependency - Remove unnecessary logging configuration ### Documentation - Update all API port references back to 3030 - Ensure consistency across all README files ### Result - Basic version now uses same API image as Mytesla version - Configuration is consistent and simpler - Port 3030 is standard for TeslaMateAPI external access Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Fix TeslaMateAPI authentication description ## Changes - Correct API access description from "(no auth required)" to "(requires API token)" - TeslaMateAPI does require API_TOKEN for authentication - Although it bypasses Traefik ForwardAuth, it still needs token validation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Remove China-specific language and TeslaMateAPI reference from English docs ## Changes ### README.md - Remove "optimized for mainland China" from subtitle - Replace "China-Specific Optimizations" with generic feature benefits - Remove China-related notes about map loading issues - Remove TeslaMateAPI GitHub link from Related Projects - Focus on universal features: Mytess integration, modern interface ### script/README.md - Change "recommended for China" to "recommended" (universal) - Remove China-specific troubleshooting (Baidu Maps references) - Use generic network troubleshooting guidance ### Rationale - Make English documentation internationally focused - Chinese-specific information remains in README.zh.md - Avoid geographic positioning in global documentation - Remove redundant API reference (already integrated in project) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Update repository URLs to new location ## Changes - Update all git clone URLs from old repository to new location - Old: github.com/gococonut/teslamate-cn-image - New: github.com/yekk-me/teslamate-mytess-docker - Update directory names in cd commands to match new repo name - Update GitHub Issues links ### Files Updated - README.md (English) - README.zh.md (Chinese) - script/README.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Recommend mytesla images for Chinese users and explain benefits ## Changes in README.zh.md ### Image Recommendations - Change to recommend mytesla/teslamate:v2.2 for Chinese users - Change to recommend mytesla/grafana:v2.2 for Chinese users - Keep official images as "Option 1" for international users ### Added "Mytesla 镜像解决的问题" Section Clearly explain China-specific problems solved by mytesla images: - ✓ OpenStreetMap proxy for map loading in mainland China - ✓ Baidu Maps geocoding integration for accurate locations - ✓ Complete Chinese localization and pre-configured dashboards - ✓ Network optimizations for China ### Positioning - Chinese README now recommends mytesla images (China-optimized) - English README uses official images (international) - Clear value proposition for Chinese users Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Fix PostgreSQL data directory mount path ## Changes - Fix database volume mount in docker-compose-with-mytesla.yml - Change from `/var/lib/postgresql` to `/var/lib/postgresql/data` - PostgreSQL official image stores data in `/var/lib/postgresql/data` - Now consistent with basic version configuration ### Impact - Ensures data is properly persisted in the correct directory - Prevents potential data loss issues - Matches PostgreSQL best practices Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Fix PostgreSQL mount and add Baidu Maps configuration guide ## Changes ### PostgreSQL Volume Mount Fix - Remove `/data` from PostgreSQL mount paths in both files - Correct path: `/var/lib/postgresql` (not `/var/lib/postgresql/data`) - Applies to both docker-compose.yml and docker-compose-with-mytesla.yml ### Chinese README Enhancement Add Baidu Maps configuration section for accurate geocoding: - Instructions to obtain BD_MAP_AK and BD_MAP_SK - Step-by-step guide for Chinese users - Explains benefit: accurate Chinese location names vs English addresses - Example configuration in teslamate service environment ### Rationale - PostgreSQL 18 uses `/var/lib/postgresql` as data directory - Baidu Maps improves location accuracy for Chinese users - Solves reverse geocoding issues in mainland China Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
319 lines
11 KiB
Markdown
319 lines
11 KiB
Markdown
# TeslaMate Deployment Scripts
|
|
|
|
[← Back to Main README](../README.md)
|
|
|
|
This directory contains Docker Compose configurations for deploying TeslaMate.
|
|
|
|
## Files
|
|
|
|
- `docker-compose.yml` - Official TeslaMate version (basic setup)
|
|
- `docker-compose-with-mytesla.yml` - Mytesla enhanced version (recommended)
|
|
- `images/` - Dashboard screenshots
|
|
|
|
## Quick Deployment
|
|
|
|
### Option 1: Official Version (International Users)
|
|
Uses official TeslaMate and Grafana images.
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
**Services included:**
|
|
- TeslaMate web interface (official)
|
|
- PostgreSQL database
|
|
- Grafana dashboards (official)
|
|
- TeslaMateAPI (official - for Mytess iOS app)
|
|
- Mosquitto MQTT broker
|
|
|
|
**Best for**: Users preferring separate service ports and official images only.
|
|
|
|
### Option 2: Mytesla Enhanced Version (Recommended)
|
|
Official TeslaMate/Grafana with Mytesla enhancement components.
|
|
|
|
```bash
|
|
docker compose -f docker-compose-with-mytesla.yml up -d
|
|
```
|
|
|
|
**Image composition:**
|
|
- **TeslaMate**: `teslamate/teslamate:v2.2` (official)
|
|
- **Grafana**: `teslamate/grafana:v2.2` (official)
|
|
- **Mytesla components**:
|
|
- `mytesla/auth` - Unified authentication service
|
|
- `mytesla/dash` - Modern web dashboard
|
|
- `mytesla/teslamateapi` - Enhanced API (full Mytess support)
|
|
- `mytesla/env-adapter` - Environment adapter
|
|
|
|
**Additional features:**
|
|
- Traefik reverse proxy with unified authentication
|
|
- Modern Mytesla Dash web interface (mobile-friendly)
|
|
- Enhanced TeslaMateAPI with full Mytess iOS app support
|
|
- Single-port access to all services (port 80)
|
|
- Production-ready security architecture
|
|
|
|
**Best for**: Users wanting modern web interface, mobile app integration, and unified authentication.
|
|
|
|
**Note**: Mytesla Dash requires a one-time authorization. For licensing inquiries, contact hi@mytesla.cc.
|
|
|
|
## Configuration
|
|
|
|
### Required Environment Variables
|
|
|
|
**Important:** Change these before production deployment!
|
|
|
|
```yaml
|
|
# Authentication (Mytesla Dash version)
|
|
AUTH_USERNAME=admin # Change this!
|
|
AUTH_PASSWORD=admin123 # Change this!
|
|
SECRET_KEY=change-me-random-32 # Change this!
|
|
|
|
# TeslaMate encryption
|
|
ENCRYPTION_KEY=change-me-random # Change this!
|
|
|
|
# Database
|
|
POSTGRES_PASSWORD=teslamate # Change this!
|
|
|
|
# API Token (for Mytess app)
|
|
API_TOKEN=change-me-token # Change this!
|
|
```
|
|
|
|
### Generate Secure Random Keys
|
|
|
|
Use OpenSSL to generate secure random strings:
|
|
|
|
```bash
|
|
openssl rand -base64 32
|
|
```
|
|
|
|
This will output a 32-character random string. Use this for `ENCRYPTION_KEY`, `SECRET_KEY`, and `API_TOKEN`.
|
|
|
|
### Important Notes
|
|
|
|
- **ENCRYPTION_KEY**: Used to encrypt sensitive data like Tesla API tokens. If you lose this key, you cannot recover your data!
|
|
- **API_TOKEN**: Used by Mytess app to authenticate with TeslaMateAPI. Must match between config and app.
|
|
- **Database Password**: Change from default to prevent unauthorized access.
|
|
|
|
## Architecture
|
|
|
|
### Basic Version
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Your Network │
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
│ │TeslaMate │ │ Grafana │ │ API │ │
|
|
│ │ :4000 │ │ :3000 │ │ :3030 │ │
|
|
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
|
|
│ │ │ │ │
|
|
│ └──────────────┼──────────────┘ │
|
|
│ │ │
|
|
│ ┌───────▼────────┐ │
|
|
│ │ PostgreSQL │ │
|
|
│ └────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### Mytesla Dash Version
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ Your Network │
|
|
│ │
|
|
│ ┌──────────┐ │
|
|
│ │ Traefik │ :80 (Unified Entry) │
|
|
│ └────┬─────┘ │
|
|
│ │ │
|
|
│ ┌───────────────┼───────────────┐ │
|
|
│ │ │ │ │
|
|
│ ┌────▼─────┐ ┌────▼────┐ ┌──────▼─────┐ │
|
|
│ │TeslaMate │ │ Dash │ │ API │ │
|
|
│ │/teslamate│ │ / │ │/mytesla/api│ │
|
|
│ └────┬─────┘ └────┬────┘ └──────┬─────┘ │
|
|
│ │ │ │ │
|
|
│ └──────────────┼───────────────┘ │
|
|
│ │ │
|
|
│ ┌───────▼────────┐ │
|
|
│ │ PostgreSQL │ │
|
|
│ └────────────────┘ │
|
|
│ │
|
|
│ ┌──────────────┐ │
|
|
│ │ Auth Service │ (ForwardAuth) │
|
|
│ └──────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Access Points
|
|
|
|
### Basic Version
|
|
- **TeslaMate**: `http://your-ip:4000`
|
|
- **Grafana**: `http://your-ip:3000` (default: admin/admin)
|
|
- **TeslaMateAPI**: `http://your-ip:3030`
|
|
|
|
### Mytesla Dash Version
|
|
- **Unified entry**: `http://your-ip` (redirects to Dashboard)
|
|
- **Dashboard**: `http://your-ip/`
|
|
- **TeslaMate**: `http://your-ip/teslamate`
|
|
- **Grafana**: `http://your-ip/grafana`
|
|
- **TeslaMateAPI**: `http://your-ip/mytesla/api` (requires API token)
|
|
- **Settings**: `http://your-ip/settings` (change auth credentials)
|
|
- **Default login**: `admin` / `admin123`
|
|
|
|
## Connecting Mytess iOS App
|
|
|
|
### Step 1: Note Your TeslaMateAPI Endpoint
|
|
|
|
- **Basic version**: `http://your-server-ip:3030`
|
|
- **Mytesla Dash version**: `http://your-server-ip/mytesla/api`
|
|
|
|
Replace `your-server-ip` with:
|
|
- Your local IP (e.g., `192.168.1.100`) for home network access
|
|
- Your public IP or domain name for internet access
|
|
|
|
### Step 2: Open Mytess App
|
|
|
|
1. Download Mytess from [App Store](https://apps.apple.com/app/id6757828502)
|
|
2. Open the app
|
|
3. Go to **Settings** → **Server Configuration**
|
|
|
|
### Step 3: Enter Server Information
|
|
|
|
1. **Server URL**: Enter your TeslaMateAPI endpoint from Step 1
|
|
2. **API Token**: Enter the `API_TOKEN` value from your docker-compose file
|
|
3. Tap **Test Connection**
|
|
4. If successful, you'll see your vehicle data
|
|
|
|
### Troubleshooting Connection
|
|
|
|
- **Connection timeout**: Check firewall allows port 3030 (basic) or 80 (Mytesla Dash)
|
|
- **401 Unauthorized**: API_TOKEN mismatch - ensure it matches your config
|
|
- **404 Not Found**: Check URL format - must include `http://` prefix
|
|
|
|
For detailed Mytess setup, visit [mytess.net](https://mytess.net).
|
|
|
|
## Troubleshooting
|
|
|
|
### Services Not Starting
|
|
|
|
Check logs to diagnose issues:
|
|
|
|
```bash
|
|
# View all service logs
|
|
docker compose logs
|
|
|
|
# View specific service logs
|
|
docker compose logs teslamate
|
|
docker compose logs database
|
|
|
|
# Follow logs in real-time
|
|
docker compose logs -f
|
|
```
|
|
|
|
Restart services:
|
|
|
|
```bash
|
|
# Restart all services
|
|
docker compose restart
|
|
|
|
# Restart specific service
|
|
docker compose restart teslamate
|
|
```
|
|
|
|
### Cannot Connect from Mobile
|
|
|
|
**Check firewall:**
|
|
```bash
|
|
# Allow port 3030 (basic version)
|
|
sudo ufw allow 3030
|
|
|
|
# Allow port 80 (Mytesla Dash version)
|
|
sudo ufw allow 80
|
|
```
|
|
|
|
**Verify services are running:**
|
|
```bash
|
|
docker compose ps
|
|
```
|
|
|
|
**Test connectivity:**
|
|
- From same network: Try accessing from web browser first
|
|
- From internet: Ensure router port forwarding is configured
|
|
|
|
### Map Not Loading
|
|
|
|
- Check TeslaMate logs: `docker compose logs teslamate`
|
|
- Verify network connectivity to OpenStreetMap servers
|
|
- Ensure no firewall blocking external map tile requests
|
|
|
|
### Database Connection Failed
|
|
|
|
**Check database is running:**
|
|
```bash
|
|
docker compose ps database
|
|
```
|
|
|
|
**Check database password matches:**
|
|
- `POSTGRES_PASSWORD` in database service
|
|
- `DATABASE_PASS` in teslamate service
|
|
- Must be identical!
|
|
|
|
**Reset database (WARNING: deletes all data):**
|
|
```bash
|
|
docker compose down -v # Remove volumes
|
|
docker compose up -d # Start fresh
|
|
```
|
|
|
|
### Grafana Dashboard Missing Data
|
|
|
|
**Check Grafana can connect to database:**
|
|
```bash
|
|
docker compose logs grafana
|
|
```
|
|
|
|
**Verify database credentials match:**
|
|
- `DATABASE_USER`, `DATABASE_PASS`, `DATABASE_NAME`, `DATABASE_HOST` in grafana service
|
|
- Should match database service configuration
|
|
|
|
## Maintenance
|
|
|
|
### Backup Database
|
|
|
|
```bash
|
|
docker compose exec database pg_dump -U teslamate teslamate > backup.sql
|
|
```
|
|
|
|
### Restore Database
|
|
|
|
```bash
|
|
docker compose exec -T database psql -U teslamate teslamate < backup.sql
|
|
```
|
|
|
|
### Update Services
|
|
|
|
```bash
|
|
# Pull latest images
|
|
docker compose pull
|
|
|
|
# Restart with new images
|
|
docker compose up -d
|
|
```
|
|
|
|
### View Resource Usage
|
|
|
|
```bash
|
|
docker compose stats
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- **Main README**: [../README.md](../README.md)
|
|
- **Chinese Guide**: [../README.zh.md](../README.zh.md)
|
|
- **TeslaMate Official Docs**: [docs.teslamate.org](https://docs.teslamate.org)
|
|
- **Mytess Website**: [mytess.net](https://mytess.net)
|
|
|
|
## Support
|
|
|
|
- **Discord**: [https://discord.com/invite/2DBzQfFPW8](https://discord.com/invite/2DBzQfFPW8)
|
|
- **Email**: hi@mytesla.cc
|
|
- **GitHub Issues**: [Report a problem](https://github.com/yekk-me/teslamate-mytess-docker/issues)
|