2024-10-25 15:55:14 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
2024-10-25 23:40:19 +02:00
|
|
|
# Définir les variables
|
|
|
|
|
USER=$(whoami)
|
|
|
|
|
|
2024-10-25 15:55:14 +02:00
|
|
|
# Vérifier si Git est déjà installé
|
2024-10-25 23:45:58 +02:00
|
|
|
if ! command -v git &> /dev/null; then
|
2024-10-25 15:55:14 +02:00
|
|
|
# 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..."
|
2024-10-25 23:40:19 +02:00
|
|
|
sudo apt update
|
|
|
|
|
sudo apt install -y git
|
2024-10-25 15:55:14 +02:00
|
|
|
echo "Git a été installé avec succès!"
|
2024-10-25 23:36:41 +02:00
|
|
|
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!"
|
2024-10-25 15:55:14 +02:00
|
|
|
else
|
|
|
|
|
echo "Installation de Git annulée."
|
|
|
|
|
fi
|
|
|
|
|
fi
|
2024-10-25 23:36:41 +02:00
|
|
|
|
|
|
|
|
# Vérifier si btop est déjà installé
|
2024-10-25 23:45:58 +02:00
|
|
|
if ! command -v btop &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
# 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..."
|
2024-10-25 23:49:16 +02:00
|
|
|
sudo apt update
|
|
|
|
|
sudo apt install -y btop
|
2024-10-25 23:36:41 +02:00
|
|
|
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é
|
2024-10-25 23:45:58 +02:00
|
|
|
if ! command -v tree &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
# 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..."
|
2024-10-25 23:49:16 +02:00
|
|
|
sudo apt update
|
|
|
|
|
sudo apt install -y tree
|
2024-10-25 23:36:41 +02:00
|
|
|
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é
|
2024-10-25 23:45:58 +02:00
|
|
|
if ! command -v docker &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
# 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é
|
2024-10-25 23:45:58 +02:00
|
|
|
if command -v docker &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
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é
|
2024-10-25 23:45:58 +02:00
|
|
|
if ! command -v npm &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
# 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..."
|
2024-10-25 23:49:16 +02:00
|
|
|
sudo apt update
|
|
|
|
|
sudo apt install -y npm
|
2024-10-25 23:36:41 +02:00
|
|
|
echo "npm a été installé avec succès!"
|
|
|
|
|
# Vérifier si nvm est déjà installé
|
2024-10-25 23:45:58 +02:00
|
|
|
if ! command -v nvm &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
# 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
|
2024-10-25 23:45:58 +02:00
|
|
|
if command -v docker &> /dev/null; then
|
|
|
|
|
if ! [ -d "/home/$USER/docker/www" ]; then
|
2024-10-25 23:36:41 +02:00
|
|
|
# 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
|
2024-10-25 23:45:58 +02:00
|
|
|
if command -v docker &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
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é
|
2024-10-25 23:45:58 +02:00
|
|
|
if command -v docker &> /dev/null; then
|
2024-10-25 23:36:41 +02:00
|
|
|
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
|