57 lines
1.9 KiB
Bash
57 lines
1.9 KiB
Bash
#!/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"
|