Compare commits

..

34 Commits

Author SHA1 Message Date
d698908ac5 Ajout de git 2024-10-30 16:28:16 +01:00
9f101692b8 Ajout de la possibilité d'ajouter un utilisateur avec les permissions sur le ssh 2024-10-30 16:15:30 +01:00
200b16f45d Ajout de la possibilité d'ajouter un utilisateur avec les permissions sur le ssh 2024-10-30 16:08:07 +01:00
d2edacc1af Ajout de la possibilité d'ajouter un utilisateur 2024-10-30 16:03:33 +01:00
3907df8996 Suppression de la version de docker compose pour nocodb 2024-10-30 14:27:46 +01:00
ccc676f22d Correctif dans le script de nocodb 2024-10-30 14:26:55 +01:00
e99948a859 Ajout de nocodb au script 2024-10-30 14:26:01 +01:00
ec09b80187 Suppression d'une ancienne image de strapi 2024-10-30 03:41:58 +01:00
4f9fab2595 Ajout du sudo pour l'installation de unzip 2024-10-30 03:16:42 +01:00
ce72d6ed88 update README 2024-10-30 03:04:17 +01:00
ae81a146df Changement du système de récupération de l'image de strapi et du repo 2024-10-30 02:46:25 +01:00
49cde69b85 Ajout de l'image docker strapi pour eviter la compilation à chaquer fois 2024-10-30 02:15:19 +01:00
315c9caa85 Possibilité de ne pas recompiler strapi 2024-10-30 02:10:56 +01:00
2a5763ee25 Ajout de la doc de grafana et prometheus sur leurs ports et urls 2024-10-30 01:54:05 +01:00
e8860b82d1 Correctif pour l'installation de prometheus 2024-10-30 01:44:22 +01:00
aff4646b38 Suppresion des versions dans les fichiers docker compose 2024-10-30 01:40:43 +01:00
a00c3107f0 Correctif pour l'installation de vuejs 2024-10-30 01:29:22 +01:00
f136500011 Correctif pour l'installation de vuejs 2024-10-30 01:27:59 +01:00
8580136bf7 Correctif pour l'installation de prometheus 2024-10-30 01:25:47 +01:00
41637188c7 Ajout de l'adresse docker 2024-10-30 01:23:10 +01:00
c57478a207 Ajout de l'adresse docker 2024-10-30 01:22:19 +01:00
20bf37ac77 Rectification du système de réponse pour o/n 2024-10-30 01:19:34 +01:00
df1fe7b3b7 Rectification du système de réponse pour o/n 2024-10-30 01:08:54 +01:00
8eb75a8931 Suppression de la réponse automatique, l'utilisateur devra faire entrée pour valider son input du read 2024-10-30 01:03:07 +01:00
17b9912e19 Suppression de la réponse automatique, l'utilisateur devra faire entrée pour valider son input du read 2024-10-30 01:01:31 +01:00
5e80941091 Ajout dans le doc du port de strapi 2024-10-30 00:58:55 +01:00
fb54d6b125 Suppression de la réponse automatique, l'utilisateur devra faire entrée pour valider son input du read 2024-10-30 00:57:39 +01:00
e0f054159d Changement de wget à curl et fix du bug de sed du nom de docker vuejs 2024-10-30 00:53:28 +01:00
cd5c5b07c0 Ajout du retour au home à la fin de chaque script 2024-10-30 00:43:30 +01:00
914a0fd601 Ajout de l'installation de strapi en utilisant le repo strapi custom 2024-10-30 00:30:18 +01:00
20746d08fa Ajout d'une image strapi 2024-10-28 22:53:12 +01:00
08513aec7b Ajout de strapi et changement de la version de node 2024-10-28 19:39:32 +01:00
081b7297f2 Ajout des ports dans le README 2024-10-26 02:23:19 +02:00
4e0877bcad Correctif 2024-10-26 02:05:22 +02:00
15 changed files with 222 additions and 79 deletions

View File

@@ -4,26 +4,29 @@ Installation de :
- tree
- docker
```
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install.sh
curl -O https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install.sh
chmod +x install.sh
./install.sh
```
Si vous voulez procéder à la suite de docker
Installer docker de :
- nginx-proxy-manager
- grafana
- prometheus
- cadvisor
Installation docker de :
- nginx-proxy-manager:81
- grafana:3003
- prometheus:3002
- cadvisor:3001
- npm
- nvm
L'id du dashboard de grafana est `15282`.
L'url de prometheus est `http://172.17.0.1:3002`.
```
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 chown $USER:docker /var/run/docker.sock
sudo chown -R $USER:docker /home/$USER/docker
sudo chmod -R 775 /home/$USER/docker
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install-docker.sh
curl -O https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install-docker.sh
chmod +x install-docker.sh
./install-docker.sh
```
@@ -31,9 +34,74 @@ chmod +x install-docker.sh
Si vous voulez procéder à l'installation de site web vuejs
```
source ~/.bashrc
nvm install node
nvm use node
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install-vuejs.sh
nvm install 20.18.0
nvm use 20.18.0
curl -O https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install-vuejs.sh
chmod +x install-vuejs.sh
./install-vuejs.sh
```
Si vous voulez procéder à l'installation de strapi
Installation docker de :
- strapi:3004
```
curl -O https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install-strapi.sh
chmod +x install-strapi.sh
./install-strapi.sh
```
Si vous voulez procéder à l'installation de nocodb
Installation docker de :
- nocodb:3005
```
curl -O https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/install-nocodb.sh
chmod +x install-nocodb.sh
./install-nocodb.sh
```
L'adresse IP des docker est `172.17.0.1`.
### Utilisateur
Pour ajouter un utilisateur
```
sudo adduser -m -s /bin/bash <username>
cd /home/<username>
sudo mkdir .ssh
cd .ssh
sudo nano authorized_keys
```
Ajouter la clé ssh de l'utilisateur.
Donner les permissions du dossier ssh
```
sudo chmod 700 /home/<username>/.ssh
sudo chmod 600 /home/<username>/.ssh/authorized_keys
sudo chown -R <username>:<username> /home/<username>/.ssh
```
```
sudo visudo
```
Ajouter `<username> ALL=(ALL) ALL` en dessous de `root ALL=(ALL:ALL) ALL`.
Ajout de l'utilisateur au groupe docker
```
sudo usermod -aG docker <username>
```
Pour supprimer un utilisateur
```
sudo deluser <username>
sudo rm -r /home/<username>
```
### Git
Pour initialiser un dépôt git
```
git init
git add .
git commit -m "Initial commit"
git branch -m main
git remote add origin <url>
git push -u origin main
```

View File

@@ -0,0 +1,3 @@
- job_name: cadvisor_metrics
static_configs:
- targets: ["172.17.0.1:3001"]

View File

@@ -1,3 +0,0 @@
- job_name: cadvisor_metrics
static_configs:
- targets: ["172.17.0.1:3001"]

View File

@@ -1,4 +1,3 @@
version: "3"
services:
cadvisor:
container_name: cadvisor

View File

@@ -1,4 +1,3 @@
version: "3.8"
services:
grafana:
image: grafana/grafana

View File

@@ -2,14 +2,13 @@
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
read -p "Le docker compose de nginx reverse proxy n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[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
curl -o docker-compose.yml 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
@@ -24,41 +23,39 @@ fi
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
read -p "Grafana n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[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
curl -o docker-compose.yml 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
read -p "Voulez-vous installer Prometheus? (o/n) " response
if [[ $response =~ ^[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
curl -o docker-compose.yml 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
curl -o prometheus/prometheus.yml https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/prometheus/prometheus/prometheus.yml
cd /home/$USER/docker/prometheus
# Vérifier si l'utilisateur veut installer cadvisors
read -p "Voulez-vous installer cAdvisor? (o/n) " response
if [[ $response =~ ^[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
curl -o docker-compose.yml 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
curl -o config-prometheus.txt https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/cadvisor/config-prometheus.txt
cat config-prometheus.txt >> /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
@@ -84,9 +81,8 @@ 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
read -p "npm n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer npm
echo "Installation de npm en cours..."
sudo apt update
@@ -95,9 +91,8 @@ if ! command -v npm &> /dev/null; then
# 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
read -p "nvm n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[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
@@ -115,3 +110,5 @@ if ! command -v npm &> /dev/null; then
else
echo "npm est déjà installé sur votre système."
fi
cd /home/$USER

17
install-nocodb.sh Normal file
View File

@@ -0,0 +1,17 @@
# Vérifier si le dossier nocodb est déjà créé dans le répertoire de docker
if command -v docker &> /dev/null; then
if ! [ -d "/home/$USER/docker/nocodb" ]; then
read -p "Voulez-vous installer nocodb dans le répertoire docker ? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
mkdir -p /home/$USER/docker/nocodb
cd /home/$USER/docker/nocodb
curl -O https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/nocodb/docker-compose.yml
docker compose up -d
cd /home/$USER
else
echo "Le dossier nocodb n'a pas été créé"
fi
else
echo "Le dossier nocodb existe déjà"
fi
fi

34
install-strapi.sh Executable file
View File

@@ -0,0 +1,34 @@
# Vérifier si le dossier strapi est déjà créé dans le répertoire de docker
if command -v docker &> /dev/null; then
if ! [ -d "/home/$USER/docker/strapi" ]; then
read -p "Voulez-vous installer strapi dans le répertoire docker ? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
cd /home/$USER/docker
curl -o strapi.zip https://ganesh.turing.untypequicode.fr/untypequicode/strapi/archive/v0.1.zip
if command -v unzip &> /dev/null; then
unzip strapi.zip
else
sudo apt-get install unzip
unzip strapi.zip
fi
rm strapi.zip
cd strapi
read -p "Voulez-vous installer l'image déjà compilée ? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
curl -O https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/strapi.tar
docker load -i strapi.tar
rm strapi.tar
else
docker compose build
fi
docker compose up -d
echo "Strapi a été installé dans le répertoire docker"
else
echo "Strapi n'a pas été installé"
fi
else
echo "Strapi est déjà installé dans le répertoire docker"
fi
fi
cd /home/$USER

View File

@@ -2,9 +2,8 @@
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
read -p "Le dossier www n'est pas créé dans le répertoire de docker. Voulez-vous le créer? (o/n) " response
if [[ $response =~ ^[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
@@ -21,9 +20,8 @@ fi
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
read -p "Voulez-vous installer une application Vue.js dans le répertoire www? (o/n) " response
if [[ $response =~ ^[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..."
@@ -32,22 +30,24 @@ if command -v docker &> /dev/null; then
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
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."
read -p "Le docker compose de l'application Vue.js n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
echo "Installation du docker compose de l'application Vue.js en cours..."
curl -o docker-compose.yml 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 "/container_name:/s/changeme_container/${project}_container/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
curl -o Dockerfile 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
fi
else
echo "Installation de l'application Vue.js annulée."
@@ -56,3 +56,5 @@ if command -v docker &> /dev/null; then
echo "Le répertoire www n'est pas créé dans le répertoire de docker."
fi
fi
cd /home/$USER

View File

@@ -6,9 +6,8 @@ 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
read -p "Git n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer Git
echo "Installation de Git en cours..."
sudo apt update
@@ -27,9 +26,8 @@ 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
read -p "btop n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer btop
echo "Installation de btop en cours..."
sudo apt update
@@ -45,9 +43,8 @@ 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
read -p "tree n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer tree
echo "Installation de tree en cours..."
sudo apt update
@@ -63,9 +60,8 @@ 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
read -p "Docker n'est pas installé. Voulez-vous l'installer? (o/n) " response
if [[ $response =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer Docker
echo "Installation de Docker en cours..."
curl -fsSL https://get.docker.com -o get-docker.sh
@@ -79,3 +75,5 @@ if ! command -v docker &> /dev/null; then
else
echo "Docker est déjà installé sur votre système."
fi
cd /home/$USER

View File

@@ -1,4 +1,3 @@
version: "3"
services:
app:
container_name: nginx-proxy-manager

31
nocodb/docker-compose.yml Normal file
View File

@@ -0,0 +1,31 @@
# version: "2.1"
services:
nocodb:
depends_on:
root_db:
condition: service_healthy
environment:
NC_DB: "pg://root_db:5432?u=postgres&p=password&d=root_db"
image: "nocodb/nocodb:latest"
ports:
- "3005:8080"
restart: always
volumes:
- "nc_data:/usr/app/data"
root_db:
environment:
POSTGRES_DB: root_db
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
healthcheck:
interval: 10s
retries: 10
test: 'pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB"'
timeout: 2s
image: postgres
restart: always
volumes:
- "db_data:/var/lib/postgresql/data"
volumes:
db_data: {}
nc_data: {}