#!/bin/bash # Définir les variables USER=$(whoami) # Vérifier si Git est déjà installé if ! command -v git &> /dev/null; then # Si Git n'est pas installé, demander confirmation avant installation read -p "Git n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r echo if [[ $REPLY =~ ^[Oo]$ ]]; then # Si l'utilisateur accepte, installer Git echo "Installation de Git en cours..." sudo apt update sudo 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 fi # Vérifier si btop est déjà installé if ! command -v btop &> /dev/null; 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..." sudo apt update sudo 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 ! command -v tree &> /dev/null; 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..." sudo apt update sudo 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 ! command -v docker &> /dev/null; 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 sudo chown $USER:$USER /var/run/docker.sock sudo chown -R $USER:$USER /home/$USER/docker sudo chmod -R 775 /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 command -v docker &> /dev/null; 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 ! command -v npm &> /dev/null; 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..." sudo apt update sudo apt install -y npm echo "npm a été installé avec succès!" # Vérifier si nvm est déjà installé if ! command -v nvm &> /dev/null; 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 command -v docker &> /dev/null; 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 command -v docker &> /dev/null; 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 ! [ -f "/home/$USER/docker/www/$project/docker compose.yml" ]; 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 command -v docker &> /dev/null; then if ! docker ps -a --format '{{.Names}}' | grep -q 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 fi