From ca6cdd921a78f99434772243808dab180a52debe Mon Sep 17 00:00:00 2001 From: untypequicode Date: Fri, 25 Oct 2024 23:36:41 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 243 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) diff --git a/install.sh b/install.sh index 92a0933..9f53715 100644 --- a/install.sh +++ b/install.sh @@ -11,9 +11,252 @@ if! [ -x "$(command -v git)" ]; then apt update apt install -y git echo "Git a été installé avec succès!" + read -p "Veuillez saisir votre nom d'utilisateur Git: " username + read -p "Veuillez saisir votre adresse e-mail Git: " email + git config --global user.name "$username" + git config --global user.email "$email" + echo "Votre nom d'utilisateur et votre adresse e-mail Git ont été configurés avec succès!" else echo "Installation de Git annulée." fi else echo "Git est déjà installé sur votre système." fi + +# Vérifier si btop est déjà installé +if! [ -x "$(command -v btop)" ]; then + # Si btop n'est pas installé, demander confirmation avant installation + read -p "btop n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer btop + echo "Installation de btop en cours..." + apt update + apt install -y btop + echo "btop a été installé avec succès!" + else + echo "Installation de btop annulée." + fi +else + echo "btop est déjà installé sur votre système." +fi + +# Vérifier si tree est déjà installé +if! [ -x "$(command -v tree)" ]; then + # Si tree n'est pas installé, demander confirmation avant installation + read -p "tree n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer tree + echo "Installation de tree en cours..." + apt update + apt install -y tree + echo "tree a été installé avec succès!" + else + echo "Installation de tree annulée." + fi +else + echo "tree est déjà installé sur votre système." +fi + +# Vérifier si Docker est déjà installé +if! [ -x "$(command -v docker)" ]; then + # Si Docker n'est pas installé, demander confirmation avant installation + read -p "Docker n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer Docker + echo "Installation de Docker en cours..." + curl -fsSL https://get.docker.com -o get-docker.sh + sh get-docker.sh + echo "Docker a été installé avec succès!" + # Donne les droits à l'utilisateur courant d'exécuter Docker sans avoir à utiliser sudo + usermod -aG docker $USER + mkdir -p /home/$USER/docker + echo "Veuillez vous déconnecter et vous reconnecter pour appliquer les changements." + else + echo "Installation de Docker annulée." + fi +else + echo "Docker est déjà installé sur votre système." +fi + +# Vérifier si le docker compose de nginx reverse proxy est déjà installé mais avant vérifier si docker est installé +if! [ -x "$(command -v docker)" ]; then + if [! -d "nginx-proxy" ]; then + # Si le docker compose de nginx reverse proxy n'est pas installé, demander confirmation avant installation + read -p "Le docker compose de nginx reverse proxy n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r -d "n" + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, cloner le dépôt Git contenant le docker compose de nginx reverse proxy + echo "Installation du docker compose de nginx reverse proxy en cours..." + mkdir -p /home/$USER/docker/nginx-proxy + cd /home/$USER/docker/nginx-proxy + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/nginx-proxy-manager/docker-compose.yml + docker-compose up -d + echo "Le docker compose de nginx reverse proxy a été installé avec succès!" + else + echo "Installation du docker compose de nginx reverse proxy annulée." + fi + else + echo "Le docker compose de nginx reverse proxy est déjà installé sur votre système." + fi +fi + +# Vérifier si npm est déjà installé +if! [ -x "$(command -v npm)" ]; then + # Si npm n'est pas installé, demander confirmation avant installation + read -p "npm n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer npm + echo "Installation de npm en cours..." + apt update + apt install -y npm + echo "npm a été installé avec succès!" + # Vérifier si nvm est déjà installé + if! [ -x "$(command -v nvm)" ]; then + # Si nvm n'est pas installé, demander confirmation avant installation + read -p "nvm n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer nvm + echo "Installation de nvm en cours..." + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash + echo "nvm a été installé avec succès!" + source ~/.bashrc + # Installer la dernière version de Node.js avec nvm + nvm install node + nvm use node + echo "La dernière version de Node.js a été installée avec succès!" + else + echo "Installation de nvm annulée." + fi + else + echo "nvm est déjà installé sur votre système." + fi + else + echo "Installation de npm annulée." + fi +else + echo "npm est déjà installé sur votre système." +fi + +# Vérifier si le dossier www est déjà créé dans le répertoire de docker +if! [ -x "$(command -v docker)" ]; then + if [! -d "/home/$USER/docker/www" ]; then + # Si le dossier www n'est pas créé, demander confirmation avant création + read -p "Le dossier www n'est pas créé dans le répertoire de docker. Voulez-vous le créer? (o/n) " -n 1 -r -d "n" + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, créer le dossier www + echo "Création du dossier www en cours..." + mkdir -p /home/$USER/docker/www + echo "Le dossier www a été créé avec succès!" + else + echo "Création du dossier www annulée." + fi + else + echo "Le dossier www est déjà créé dans le répertoire de docker." + fi +fi + +# Vérifier si le docker est installé et si le répertoire www est créé pour installer une app vuejs +if! [ -x "$(command -v docker)" ]; then + if [ -d "/home/$USER/docker/www" ]; then + # Si le docker est installé et le répertoire www est créé, demander confirmation avant installation de l'app Vue.js + read -p "Voulez-vous installer une application Vue.js dans le répertoire www? (o/n) " -n 1 -r -d "n" + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer l'app Vue.js en demandant le nom du projet + read -p "Veuillez saisir le nom du projet Vue.js: " project + echo "Installation de l'application Vue.js en cours..." + cd /home/$USER/docker/www + npm create vue@latest $project + cd $project + npm install + # Vérifier si le docker compose de l'app Vue.js est déjà installé + if [! -d "$project" ]; then + # Si le docker compose de l'app Vue.js n'est pas installé, demander confirmation avant installation + read -p "Le docker compose de l'application Vue.js n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r -d "n" + echo "Installation du docker compose de l'application Vue.js en cours..." + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/vuejs/docker-compose.yml + # Créer le 'nom_container' dans le fichier docker-compose.yml par le nom du projet + sed -i "s/nom_container/$project/g" docker-compose.yml + # Demander le port d'écoute de l'app Vue.js + read -p "Veuillez saisir le port d'écoute de l'application Vue.js: " port + echo "EXTERNAL_PORT=$port" > .env + echo "INTERNAL_PORT=8080" >> .env + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/vuejs/Dockerfile + docker-compose up -d + echo "Le docker compose de l'application Vue.js a été installé avec succès!" + else + echo "Le docker compose de l'application Vue.js est déjà installé sur votre système." + fi + else + echo "Installation de l'application Vue.js annulée." + fi +else + echo "Le répertoire www n'est pas créé dans le répertoire de docker." +fi + +# Vérifier si grafana est déjà installé +if! [ -x "$(command -v docker)" ]; then + if [! -d "/home/$USER/docker/grafana" ]; then + # Si grafana n'est pas installé, demander confirmation avant installation + read -p "Grafana n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r -d "n" + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer grafana + echo "Installation de grafana en cours..." + mkdir -p /home/$USER/docker/grafana + cd /home/$USER/docker/grafana + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/grafana/docker-compose.yml + docker-compose up -d + echo "Grafana a été installé avec succès!" + # Vérifier si l'utilisateur veut installer prometheus + read -p "Voulez-vous installer Prometheus? (o/n) " -n 1 -r -d "n" + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer prometheus + echo "Installation de Prometheus en cours..." + mkdir -p /home/$USER/docker/prometheus + cd /home/$USER/docker/prometheus + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/prometheus/docker-compose.yml + mkdir -p /home/$USER/docker/prometheus/prometheus + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/prometheus/prometheus/prometheus.yml + # Vérifier si l'utilisateur veut installer cadvisor + read -p "Voulez-vous installer cAdvisor? (o/n) " -n 1 -r -d "n" + echo + if [[ $REPLY =~ ^[Oo]$ ]]; then + # Si l'utilisateur accepte, installer cadvisor + echo "Installation de cAdvisor en cours..." + mkdir -p /home/$USER/docker/cadvisor + cd /home/$USER/docker/cadvisor + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/cadvisor/docker-compose.yml + docker-compose up -d + echo "cAdvisor a été installé avec succès!" + echo "Ajout de cAdvisor dans le fichier de configuration de Prometheus..." + wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/cadvisor/config-prometheus.yml + cat config-prometheus.yml >> /home/$USER/docker/prometheus/prometheus/prometheus.yml + echo "cAdvisor a été ajouté avec succès dans le fichier de configuration de Prometheus!" + echo "cAdvisor a été installé avec succès!" + else + echo "Installation de cAdvisor annulée." + fi + cd /home/$USER/docker/prometheus + docker-compose up -d + echo "Prometheus a été installé avec succès!" + else + echo "Installation de Prometheus annulée." + fi + cd /home/$USER/docker/grafana + docker-compose up -d + echo "Grafana a été installé avec succès!" + else + echo "Installation de grafana annulée." + fi + else + echo "Grafana est déjà installé sur votre système." + fi +fi