Catégories
Technologie Tesla

Comment installer TeslaMate sur BuyVM Slice pour seulement $2 de frais d'hébergement mensuels

Cet article vous fournira un guide détaillé sur la façon d'installer TeslaMate sur votre AcheterVM Tranche. Nous passerons en revue chaque étape du processus, depuis le choix de la configuration de la machine virtuelle qui convient à vos besoins, jusqu'à l'installation et la configuration de TeslaMate sur votre machine virtuelle.

Si vous êtes intéressé par la mise en place d'un TeslaMate auto-hébergé à un coût abordable de seulement $2 par mois en utilisant une tranche BuyVM, lisez ce qui suit. Nous avons tout prévu avec ce tutoriel étape par étape.

Caractéristiques du TeslaMate :

  • Rapports de conduite et de charge
  • Rapport sur l'efficacité de la conduite
  • Consommation d'énergie (nette / brute)
  • Chargement de l'énergie ajoutée par rapport à l'énergie utilisée
  • Vampire Drain
  • Portée projetée du 100% (dégradation de la batterie)
  • Statistiques de charge
  • Statistiques d'entraînement
  • Historique des mises à jour installées
  • Voir quand votre voiture était en ligne ou endormie
  • Carte routière de la vie
  • Adresses visitées

Vérifiez AUSSI le statut de votre voiture (inc. niveau de la batterie) sans réveiller votre voiture !

Sélection SLICE

Dans ce tutoriel, nous allons utiliser le SLICE 512 de AcheterVM qui comprend 1 cœur à 3,50+ GHz (l'utilisation équitable du CPU s'applique), 512 Mo de mémoire, 10 Go de stockage SSD et une bande passante non mesurée.

buyvmsliceplans 512andup 20200529 | Graydon Schwartz
Note : SLICE 4096 ($15) et plus incluent l'utilisation d'un CPU dédié.

Je recommande de s'inscrire pour que l'un de leurs nouveaux VPS AMD Ryzen dans le centre de données de Las Vegas réapparaisse, car ils sont plus performants, tout neufs et sans coût supplémentaire. Ils proposent également des serveurs cloud à New York et au Luxembourg, mais avec du matériel Intel plus ancien.

J'ai déjà utilisé plus de mémoire pour l'hébergement de TeslaMate mais j'ai trouvé que 512 Mo était largement suffisant pour faire fonctionner TeslaMate pour un Model 3 et un accès pour moi seul.

Commander une tranche

buyvm order512slice 20200529 | Graydon Schwartz
Hors de la chaussette.
  1. Sélectionnez un emplacement :
    Ordre - Las Vegas
    Ordre - New York
    Ordre - Luxembourg
  2. Que voulez-vous faire aujourd'hui ? Cliquez sur 'Commander l'hébergement‘.
  3. Sélectionnez la taille de votre tranche et cliquez sur ''.Commandez maintenant‘.
  4. Entrez votre domaine ou sous-domaine dans le formulaire de commande.
    Exemple : teslamate.tesla.com
  5. Ils acceptent PayPal, stripe, ainsi qu'un tas d'autres options. Assurez-vous que les informations de votre compte correspondent à celles du paiement, sinon votre achat risque d'être annulé.

L'activation devrait intervenir dans un délai de 1 à 3 heures pendant les heures d'ouverture normales, mais les nouveaux comptes peuvent prendre jusqu'à 24 heures. Les commandes passées pendant le week-end sont activées le lundi s'il n'y a personne de disponible.

Préalable :

  1. LV RYZEN KVM 512MB ou tranche supérieure
  2. Deux FQDN, par exemple teslamate.example.com et grafana.exemple.com
  3. Client SSH PuTTY

Se connecter à Stallion

buyvmstallionloginscreen20200529 | Graydon Schwartz
Comment installer TeslaMate sur BuyVM Slice pour seulement $2 de frais d'hébergement mensuels 7

Stallion est l'interface web que BuyVM a développé pour que vous puissiez charger votre tranche avec un système d'exploitation, voir le statut et gérer toutes les autres tâches sur votre serveur virtuel. Vous trouverez un lien vers Stallion en haut de la page lorsque vous vous connectez au portail client frantech.

Nous devrons configurer Docker manuellement car il n'y a pas de Docker pré-configuré mais ce n'est vraiment pas un problème.

Sélectionnez l'image et mettez la VM sous tension

buyvm reinstallcentos7 64bit 20200529 | Graydon Schwartz
Comment installer TeslaMate sur BuyVM Slice pour seulement $2 de frais d'hébergement mensuels 8

Sélectionnez "Réinstallation" dans le menu des onglets. Maintenant, cliquez sur 'Redhat Based (7)' dans la liste à gauche. Cliquez sur 'Reinstall' à côté de 'CentOS 7.0 64bit' pour faire apparaître l'invite d'installation. Il vous sera demandé de saisir un mot de passe. Il s'agit de votre mot de passe root (ou d'administration) pour votre serveur virtuel. Veillez à le noter dans un endroit sûr.

Cliquez sur la case à cocher par : Oui, veuillez effacer toutes les données de votre nom d'hôte.com (ADRESSE IP).

Cliquez sur "Réinstaller" lorsque vous êtes prêt à procéder.

Installation manuelle de Docker

Installer le paquet yum-utils (qui fournit l'utilitaire yum-config-manager)

sudo yum install -y yum-utils

et mettre en place le stable dépôt.

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Installer le nouvelle version de Docker Engine et de containerd :

sudo yum install docker-ce docker-ce-cli containerd.io

Démarrez Docker.

sudo systemctl start docker

Vérifier

sudo docker run hello-world

Configurer Docker pour qu'il démarre au démarrage

sudo systemctl enable docker

Pour désactiver ce comportement, utilisez désactiver à la place :

sudo systemctl disable docker

Source : Docker

Configuration - docker-compose.yml

version : "3

services :
  teslamate :
    image : teslamate/teslamate:latest
    redémarrage : toujours
    dépend_on :
      - base de données
    environnement :
      - UTILISATEUR_BASE=${TM_DB_USER}
      - DATABASE_PASS=${TM_DB_PASS}
      - NOM_DE_LA_BASE=${TM_DB_NAME}
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
      - VIRTUAL_HOST=${FQDN_TM}
      - CHECK_ORIGIN=true
      - TZ={$TM_TZ}
    volumes :
      - ./import:/opt/app/import
    labels :
      - Traefik.enable=true
      - traefik.port=4000
      - "traefik.http.middlewares.redirect.redirectscheme.scheme=https"
      - "traefik.http.middlewares.auth.basicauth.usersfile=/auth/.htpasswd"
      - "traefik.http.routers.teslamate-insecure.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.rouers.teslamate-insecure.middlewares=redirect"
      - "traefik.http.routeurs.teslamate.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routeurs.teslamate.middlewares=auth"
      - "traefik.http.routeurs.teslamate.entrypoints=websecure"
      - "traefik.http.routeurs.teslamate.tls.certresolver=tmhttpchallenge"

  base de données :
    image : postgres:12
    restart : always
    environnement :
      - POSTGRES_USER=${TM_DB_USER}
      - POSTGRES_PASSWORD=${TM_DB_PASS}
      - POSTGRES_DB=${TM_DB_NAME}
    volumes :
      - teslamate-db:/var/lib/postgresql/data

  grafana :
    image : teslamate/grafana:latest
    redémarrage : toujours
    environnement :
      - DATABASE_USER=${TM_DB_USER}
      - MOT DE PASSE=${TM_DB_PASS}
      - NOM_DE_LA_BASE=${TM_DB_NAME}
      - DATABASE_HOST=database
      - GRAFANA_PASSWD=${GRAFANA_PW}
      - GF_SECURITY_ADMIN_USER=${GRAFANA_USER}
      - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PW}
      - GF_AUTH_BASIC_ENABLED=true
      - GF_AUTH_ANONYMOUS_ENABLED=false
      - GF_SERVER_ROOT_URL=https://${FQDN_GRAFANA}
    volumes :
      - teslamate-grafana-data:/var/lib/grafana
    labels :
      - Traefik.enable=true
      - Traefik.port=3000
      - "traefik.http.middlewares.redirect.redirectscheme.scheme=https"
      - "traefik.http.routeurs.grafana-insecure.rule=Host(`${FQDN_GRAFANA}`)"
      - "traefik.http.routeurs.grafana-insecure.middlewares=redirect"
      - "traefik.http.routeurs.grafana.rule=Host(`${FQDN_GRAFANA}`)"
      - "traefik.http.routers.grafana.entrypoints=websecure"
      - "traefik.http.routers.grafana.tls.certresolver=tmhttpchallenge"

  mosquitto :
    image : eclipse-mosquitto:1.6
    restart : always
    ports :
      - 127.0.0.1:1883:1883
    volumes :
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

  proxy :
    image : traefik:v2.1
    restart : always
    commande :
      - "--global.sendAnonymousUsage=false"
      - "--providers.docker"
      - "--providers.docker.exposedByDefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.tmhttpchallenge.acme.httpchallenge=true"
      - "--certificatesresolvers.tmhttpchallenge.acme.httpchallenge.entrypoint=web"
      - "--certificatsresolvers.tmhttpchallenge.acme.email=${LETSENCRYPT_EMAIL}"
      - "--certificatsresolvers.tmhttpchallenge.acme.storage=/etc/acme/acme.json"
    ports :
      - 80:80
      - 443:443
    volumes :
      - ./.htpasswd:/auth/.htpasswd
      - ./acme/:/etc/acme/
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes :
    teslamate-db :
    teslamate-grafana-data :
    mosquitto-conf :
    mosquitto-data :

Configuration - .env

TM_DB_USER=teslamate
TM_DB_PASS=secret
TM_DB_NAME=teslamate

GRAFANA_USER=admin
GRAFANA_PW=admin

FQDN_GRAFANA=grafana.example.com
FQDN_TM=teslamate.example.com

TM_TZ=Europe/Berlin

LETSENCRYPT_EMAIL=yourperson@example.com

Configuration - .htpasswd

Conformément à la documentation de TeslaMate. Je vous recommande d'utiliser cet outil pour créer votre fichier .htpasswd :
http://www.htaccesstools.com/htpasswd-generator/
Saisissez votre nom d'utilisateur, mot de passe et sélectionnez Bcrypt (à partir de Apache v2.4)
Dans l'exemple ci-dessous, j'ai saisi nom d'utilisateur et mot de passe pour ces champs :

Exemple :

mon:$2y$10$as5PEnYaoGEx2ebCFjdK0e9PBshAsvzIeAKijwNgeMSC9oJkDNo2.

Copiez et collez maintenant ces informations dans votre fichier .htpasswd.

vi .htpasswd (ou votre éditeur de texte préféré)

Assurez-vous de configurer votre mot de passe avant de commencer le Teslamate avec Docker !

docker-compose up

Note : Il se peut que vous deviez exécuter cette commande deux fois pour qu'elle fonctionne.

Configuration du DNS

Vous devrez faire pointer teslamate.example.com + grafana.exampe.com (votre sous-domaine) vers l'adresse IP qui vous a été fournie par BuyShared lorsque vous avez créé votre serveur virtuel. Ceci est fait en contactant votre hébergeur ou en vous connectant à votre panneau de contrôle pour gérer vos enregistrements DNS et faire ajouter ces entrées.

Se connecter à TeslaMate

  1. Ouvrir l'interface web https://teslamate.example.com
    Connectez-vous avec les détails que vous avez saisis dans le fichier .htpasswd, puis vous serez invité à vous connecter avec votre compte Tesla.
  2. Connectez-vous avec votre compte Tesla
  3. Les tableaux de bord Grafana sont disponibles à l'adresse suivante:https://grafana.example.com.
  4. Entrez le nom d'utilisateur et le mot de passe :admin:admin et vous serez invité à changer le mot de passe lors de votre première connexion.

Mise à niveau disponible ?

Je vérifie toujours les notes de mise à jour avant la mise à niveau.

docker-compose pull

[root@localhost ~]# docker-compose pull
Extraction de la base de données ... terminé
Extraction de teslamate ... terminé
Extraction de grafana ... terminé
Extraction de mosquitto ... terminé
Extraction du proxy ... terminé

docker-compose up

[root@localhost ~]# docker-compose up
Recréation de la racine_grafana_1 ...
Recréation de la base de données racine_1 ...
Recréation de root_grafana_1 ... terminé
Recréation de la base de données racine_1 ... terminé
Recréation de la base de données root_teslamate_1 ... terminé
....messages de mise à jour
16:57:45.350 [info] Tzdata a mis à jour la version 2019c en 2020a.

Votre installation est maintenant mise à niveau et vous pouvez fermer le terminal. Vous pouvez vérifier la version en vous connectant à votre panneau de contrôle TeslaMate.

Protection supplémentaire

Commençons par désactiver/désinstaller FirewallD :

sudo yum remove -y firewalld

Maintenant, installons/activons IPTables.

sudo yum install -y iptables-services
sudo systemctl start iptables

Configurer IPTables pour qu'il démarre automatiquement au moment du démarrage.

sudo systemctl enable iptables

IPTables sur CentOS 7 est livré avec un ensemble de règles par défaut, que vous pouvez visualiser avec la commande suivante.

sudo iptables -L -n

La sortie ressemblera :

Chaîne INPUT (politique ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chaîne FORWARD (politique ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chaîne OUTPUT (politique ACCEPT)
cible prot opt source destination

Vous pouvez voir que l'une de ces règles autorise le trafic SSH, votre session SSH est donc sécurisée.

Étant donné que ces règles sont des règles d'exécution et qu'elles seront perdues au redémarrage, il est préférable de les enregistrer dans un fichier à l'aide de :

sudo /usr/libexec/iptables/iptables.init save

Cette commande enregistrera les règles dans le fichier /etc/sysconfig/iptables fichier. Vous pouvez modifier les règles à tout moment en changeant ce fichier avec votre éditeur de texte préféré.

Ensuite, autorisez le trafic supplémentaire à travers le pare-feu

Puisque vous utiliserez probablement votre nouveau serveur pour héberger des sites Web à un moment donné, vous devrez ajouter de nouvelles règles au pare-feu pour autoriser le trafic HTTP et HTTPS. Pour ce faire, ouvrez le fichier IPTables :

sudo nano /etc/sysconfig/iptables

Juste après ou avant la règle SSH, ajoutez les règles pour le trafic HTTP (port 80) et HTTPS (port 443), de sorte que cette partie du fichier apparaisse comme indiqué dans le bloc de code ci-dessous.

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

Enregistrez et fermez le fichier, puis rechargez IPTables.

sudo systemctl reload iptables

Une fois l'étape ci-dessus terminée, votre serveur CentOS 7 devrait maintenant être raisonnablement sécurisé et être prêt à être utilisé en production.

Autre sécurité ?

Je veux préfacer cette idée en disant que vous pouvez rencontrer des problèmes parce que le certificat SSL de TeslaMate exige que les sous-domaines soient dirigés vers l'adresse IP de votre VPS, mais si vous le cachez derrière Cloudflare, ce ne sera pas le cas et le SSL ne sera pas renouvelé lors des redémarrages de TeslaMate. Donc, je ne recommande plus d'activer CF jusqu'à ce qu'il soit entièrement pris en charge par le développeur. Je vais le laisser ici pour alimenter la réflexion.

cloudflare | Graydon Schwartz
Comment installer TeslaMate sur BuyVM Slice pour seulement $2 de frais d'hébergement mensuels 9

Il s'agit d'une étape supplémentaire qui n'est pas nécessaire pour commencer mais qui peut apporter un peu plus de sécurité à vos sous-domaines. Inscrivez-vous à Cloudflare! Il s'agit d'un service gratuit qui protège et accélère votre site web.

  1. Cliquez sur "DNS".
  2. Pour votre grafana (A Record) :
    Définir Statut du proxy à Proxied.
  3. Aussi, pour votre teslamate (A Record) :
    Définir Statut du proxy à Proxied.

Vous remarquerez maintenant que si vous faites un ping sur vos sous-domaines, ils ont maintenant un ping plus faible et une adresse IP différente parce que vous acheminez maintenant votre trafic à travers le réseau Cloudflare et votre adresse IP avec BuyVM est maintenant cachée lors des requêtes DNS.

J'ai testé l'activation du mode proxy depuis un certain temps maintenant et je n'ai rencontré aucun problème jusqu'à présent.

J'espère que ce guide de configuration vous a été utile. 🙂

Installation du Teslamate : Conclusion

En conclusion, l'installation de TeslaMate sur votre BuyVM Slice est un moyen rentable et efficace de surveiller les données de votre véhicule Tesla. Avec notre guide étape par étape, vous pouvez facilement installer et configurer TeslaMate sur votre machine virtuelle sans aucun problème.

En suivant ces instructions, vous serez en mesure de profiter des avantages de TeslaMate auto-hébergé tout en maintenant vos dépenses au minimum. Nous espérons que cet article a été utile pour vous guider tout au long du processus, et nous vous souhaitons la meilleure des chances dans votre parcours d'installation de TeslaMate.

Par Graydon Schwartz

Pour en savoir plus sur Graydon, consultez le site À propos de moi page.