#!/bin/bash # Génère deploy/historisation/.env avec des secrets ALÉATOIRES. # # Ces secrets ne viennent de nulle part : les deux bases n'existent pas encore, # c'est ce fichier qui décide de leurs identifiants. Il ne faut donc pas les # choisir à la main — une phrase inventée est plus courte et plus devinable # qu'elle n'en a l'air, et personne ne les tape jamais : les conteneurs les # lisent ici, et Home Assistant lit le jeton dans son propre secrets.yaml. # # Le seul secret qui vient d'ailleurs est HA_TOKEN : c'est le jeton Home # Assistant, déjà en service, repris du .env à la racine du dépôt. # # Usage : bash preparer-env.sh set -euo pipefail cd "$(dirname "$0")" if [ -f .env ]; then echo "REFUS : .env existe déjà." echo "Le régénérer changerait les mots de passe d'une base déjà créée, qui" echo "continuerait d'attendre les anciens. Le supprimer d'abord si c'est" echo "vraiment ce que vous voulez — et alors supprimer aussi les volumes." exit 1 fi alea() { openssl rand -hex "$1"; } HA_TOKEN_VAL="$(grep -E '^\s*HA_TOKEN\s*=' ../../.env 2>/dev/null | head -1 | cut -d= -f2- | tr -d ' "'"'" || true)" if [ -z "$HA_TOKEN_VAL" ]; then echo "HA_TOKEN introuvable dans le .env à la racine du dépôt." echo "Le renseigner à la main dans .env après génération." HA_TOKEN_VAL="a_remplacer" fi PG="$(alea 24)" INFLUX_PW="$(alea 16)" INFLUX_TOKEN="$(alea 32)" cat > .env <