Files
script-vps/install-docker.sh

181 lines
9.0 KiB
Bash

# 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 ! command -v docker-compose &> /dev/null; 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