#!/bin/bash # Ce script installe Node.js et les modules nécessaires pour faire tourner server.js # sans nécessiter d'accès root. # Il vérifie que la version de Node.js est d'au moins 22. # Fonction pour afficher les messages en vert log() { echo -e "\033[1;32m$1\033[0m" } # 1. Vérifier si nvm est installé, sinon l'installer if [ -z "$(command -v nvm)" ]; then log "nvm non trouvé, installation de nvm..." # Téléchargement et exécution du script d'installation de nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash # Charger nvm dans le shell courant export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" log "Si NVM n'est pas chargé automatiquement dans de nouvelles sessions, ajoutez les lignes suivantes dans votre fichier ~/.bashrc ou équivalent :" echo 'export NVM_DIR="$HOME/.nvm"' echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # Charge nvm' else log "nvm est déjà installé." fi # 2. Vérifier si Node.js est installé et si sa version est >= 22 if command -v node >/dev/null; then current_version=$(node -v | sed 's/^v//') major_version=$(echo "$current_version" | cut -d. -f1) if [ "$major_version" -lt 22 ]; then log "Version de Node.js actuelle ($current_version) inférieure à 22. Installation de Node.js version 22..." nvm install 22 nvm use 22 else log "Version de Node.js suffisante ($current_version)." fi else log "Node.js non trouvé, installation de Node.js version 22..." nvm install 22 nvm use 22 fi # 3. Créer package.json s'il n'existe pas déjà if [ ! -f package.json ]; then log "Création du fichier package.json..." npm init -y fi # 4. Installer les dépendances nécessaires pour server.js log "Installation des modules npm requis..." npm install express express-session sqlite3 ansi-to-html log "Installation terminée. Vous pouvez démarrer votre serveur avec :" echo "node server.js"