it:server:teslamate

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
it:server:teslamate [2024/11/14 16:28] – vytvořeno Petr Nosekit:server:teslamate [2024/11/14 22:32] (aktuální) Petr Nosek
Řádek 2: Řádek 2:
  
 Skvělý logger na vlastním server dat pro auta značky Tesla. Skvělý logger na vlastním server dat pro auta značky Tesla.
 +
  
 ===== Instalace ===== ===== Instalace =====
Řádek 10: Řádek 11:
  
  
-Instaluji pomocí dockeru a na začátek je potřeba dobře zabezpečit. Pomocí stránky https://randomkeygen.com/ jsem si vygenroval token na zakryptování Tesla API tokenu.+Instaluji pomocí dockeru a na začátek je potřeba dobře zabezpečit. Pomocí stránky https://randomkeygen.com/ jsem si vygeneroval token na zakryptování Tesla API tokenu. 
 + 
 +Takto vypadá můj //docker-compose.yml//: 
 + 
 +<code yaml> 
 +version: "3.3"  # Nastavení verze Docker Compose 
 + 
 +services: 
 +  teslamate: 
 +    container_name: teslamate 
 +    image: teslamate/teslamate:latest 
 +    restart: always 
 +    environment: 
 +      - ENCRYPTION_KEY=****** #replace with a secure key to encrypt your Tesla API tokens f.ex. randomkeygen.com 
 +      - DATABASE_USER=******* 
 +      - DATABASE_PASS=******* #insert your secure database password! 
 +      - DATABASE_NAME=******* 
 +      - DATABASE_HOST=database 
 +      - MQTT_HOST=******* 
 +      - MQTT_PORT=8883 
 +      - MQTT_USERNAME=******* 
 +      - MQTT_PASSWORD=******* 
 +      - MQTT_TLS=true 
 +      - MQTT_TLS_ACCEPT_INVALID_CERTS=true 
 +      - TZ=Europe/Prague 
 +    ports: 
 +      - 4000:4000 
 +    volumes: 
 +      - ./import:/opt/app/import 
 +    cap_drop: 
 +      - all 
 + 
 +  database: 
 +    container_name: postgres 
 +    image: postgres:17 
 +    restart: always 
 +    environment: 
 +      - POSTGRES_USER=******* 
 +      - POSTGRES_PASSWORD=******* #insert your secure database password! 
 +      - POSTGRES_DB=******* 
 +      - TZ=Europe/Prague 
 +    volumes: 
 +      - teslamate-db:/var/lib/postgresql/data 
 + 
 +  grafana: 
 +    container_name: grafana-teslamate 
 +    image: teslamate/grafana:latest 
 +    restart: always 
 +    environment: 
 +      - DATABASE_USER=******* 
 +      - DATABASE_PASS=******* #insert your secure database password! 
 +      - DATABASE_NAME=******* 
 +      - DATABASE_HOST=database 
 +      - TZ=Europe/Prague 
 +    ports: 
 +      - 3001:3000 
 +    volumes: 
 +      - teslamate-grafana-data:/var/lib/grafana 
 + 
 +volumes: 
 +  teslamate-db: 
 +  teslamate-grafana-data: 
 + 
 +</code> 
 + 
 +Samozřejmě je nutné nahradit hvězdičky vlastními hesly, uživatelskými jmény atp. Další možnosti nastavení Environment Variables pro Teslamate je v [[https://docs.teslamate.org/docs/configuration/environment_variables|dokumentaci]]. 
 + 
 + 
 +Jakmile budu řešit zabezpečení, tak bude dobré zprovoznit v dockeru **traefik proxy** dle [[https://docs.teslamate.org/docs/guides/traefik|návodu]]. 
 + 
 +Ještě pro úplnost doplňuji, že databáze je uložena mimo kontejner v dockeru a je v cestě: **/var/lib/docker/volumes** 
 + 
 + 
 + 
 +==== Získání Tesla tokenu ==== 
 + 
 +K získání Tesla tokenu jsem použil tento nástroj: https://github.com/fredli74/fetch-tesla-token 
 + 
 +Nainstaloval jsem si ho lokálně a spustil ve složce pomocí příkazu: 
 + 
 +<code> 
 +npm run start 
 +</code> 
 + 
 +Postup je takový, že zadám url: http://localhost:15198 
 + 
 +Tam běží stránka, kde je popsaný postup. Kliknu na URL, přihlásím se k Tesla účtu a zkopíruji URL zpátky do stránky Tesla token fetcher. Následně pak získám Access Token a Refresh Token potřebný pro přihlášení Teslamate. 
 + 
 + 
 + 
 +==== Záloha a obnova databáze ==== 
 + 
 +Návod vychází z [[https://docs.teslamate.org/docs/maintenance/backup_restore|této dokumentace]] a je potřeba opět nastavit správná uživatelské jméno a databázi. 
 + 
 +Záloha databáze: 
 + 
 +<code bash> 
 +docker compose exec -T database pg_dump -U teslamate teslamate > ./teslamate.bck  
 +</code> 
 + 
 + 
 +Obnova databáze: 
 + 
 +<code bash> 
 +# Stop the teslamate container to avoid write conflicts 
 +docker compose stop teslamate 
 + 
 +# Drop existing data and reinitialize (Don't forget to replace first teslamate if using different TM_DB_USER) 
 +docker compose exec -T database psql -U teslamate teslamate << . 
 +DROP SCHEMA public CASCADE; 
 +CREATE SCHEMA public; 
 +CREATE EXTENSION cube WITH SCHEMA public; 
 +CREATE EXTENSION earthdistance WITH SCHEMA public; 
 +
 + 
 +# Restore 
 +docker compose exec -T database psql -U teslamate -d teslamate < teslamate.bck 
 + 
 +# Restart the teslamate container 
 +docker compose start teslamate 
 +</code> 
 + 
 +==== Upgrade na novou verzi ==== 
 + 
 +Předem určitě zálohovat databázi a poté spustit příkazy: 
 + 
 +<code bash> 
 +docker compose stop 
 +docker compose pull 
 +docker compose up -d 
 +</code>
  
  • it/server/teslamate.1731601731.txt.gz
  • Poslední úprava: 2024/11/14 16:28
  • autor: Petr Nosek