#!/bin/sh # Configuration des chemins CONFIG_FILE="/app/server.js" TEMP_FILE="/app/server.tmp.js" ENV_FILE="/app/.env" # Fonction pour échapper les caractères spéciaux escape_value() { echo "$1" | sed 's/[\/&]/\\&/g' } # Copie initiale du fichier cp $CONFIG_FILE $TEMP_FILE # Lecture du fichier .env s'il existe if [ -f "$ENV_FILE" ]; then echo "📄 Lecture des variables depuis ${ENV_FILE}" while IFS='=' read -r key value || [ -n "$key" ]; do # Ignorer les lignes vides ou commentaires case $key in ''|\#*) continue ;; esac # Nettoyage des variables key=$(echo "$key" | tr -d ' ') value=$(echo "$value" | tr -d '"' | tr -d "'") # Vérifier si c'est une variable NEXT_PUBLIC case $key in NEXT_PUBLIC_*) escaped_value=$(escape_value "$value") sed -i "s|\"${key}\":\"[^\"]*\"|\"${key}\":\"${escaped_value}\"|g" $TEMP_FILE echo "Configuration depuis .env : ${key}=${value}" ;; esac done < "$ENV_FILE" fi # Parcours des variables d'environnement (priorité sur .env) echo "Vérification des variables d'environnement" env | grep '^NEXT_PUBLIC_' | while read -r line; do var_name=$(echo "$line" | cut -d= -f1) var_value=$(echo "$line" | cut -d= -f2-) escaped_value=$(escape_value "$var_value") sed -i "s|\"${var_name}\":\"[^\"]*\"|\"${var_name}\":\"${escaped_value}\"|g" $TEMP_FILE echo "Override depuis ENV : ${var_name}=${var_value}" done # Mise à jour du fichier de configuration mv $TEMP_FILE $CONFIG_FILE echo "Configuration mise à jour avec succès" # Démarrage du serveur echo "Démarrage du serveur Next.js" exec node server.js