4.8 Configuration Serveur - GonoGoat/projetIntegrationGrp6 GitHub Wiki
Type de serveur
Nous avons utilisé un serveur VPS ou Virtual Private Server de chez 1&1 ionos. Celui-ci est l'équilibre parfait entre prix, performances et sécurité. En effet un VPS a son propre système d'exploitation et surtout ne partage pas ces ressources, RAM,... avec d'autres personnes sur le serveur dédiés.
Configuration du serveur
Nous avons décidé utiliser Docker pour séparer nos différents services.
- Un container Node pour notre API
- Un container PostgreSQL pour notre Base de donnée
L'ensemble est déployable par docker-compose.
Installation de l'infrastructure serveur
Prérequis
- Machine Ubuntu (avec un compte "sudoer")
- docker
- (docker-compose)
- git
Initialisation
Avec un compte sudoer, exécuter les commandes suivantes :
sudo mkdir /home/projetsudo mkdir /home/projet/sqlsudo mkdir /home/projet/node
Installation
- Clonez le projet GitHub :
git clone https://github.com/GonoGoat/projetIntegrationGrp6 - Déplacez-vous dans le dossier Docker :
cd projetIntegrationGrp6/Docker
Avec docker-compose
Lancer le déploiement : sudo docker-compose up -d
Sans docker-compose
- Créer le réseau docker :
sudo docker network create --subnet=172.18.0.0/24 integration6 - Créez l'image PostgreSQL :
sudo docker build -t pgIntegration Postgre - Créez le container PostgreSQL :
docker run -dit --name pg -e POSTGRES_USER=postgresArnaud -e POSTGRES_DB=projetIntegration -e POSTGRES_PASSWORD=zGwgD4he37QvL7YY -p 5432:5432 -v home/projet/postgresdata:/var/lib/postgresql/data --net integration6 --ip 172.18.0.2 pgIntegration - Créez l'image Node.js :
sudo docker build -t nodeIntegration Node - Créez le container Node.js :
sudo docker run -dit --name api --net integration6 --ip 172.18.0.3 -p 8081:8081 -v /home/projet/node/:/home/projet nodeIntegration
Configuration
PostgreSQL
- Pour initialiser la base de données avec la base de données du projet :
sudo docker exec -it pg psql -U postgresArnaud -f /home/init.sql - Pour accéder au bash du docker container :
sudo docker container exec -it pg bash
Node.js
- Déplacer les fichiers du projet dans le volume docker :
sudo cp /home/git/projetIntegrationGrp6/Node.js/* /home/projet/node/ -r - Installer les modules nécessaire au fonctionnement du serveur :
sudo docker exec -it api npm install - Lancer le serveur en mode démon avec PM2 :
sudo docker exec -it pm2 start /home/app.js