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/projet
  • sudo mkdir /home/projet/sql
  • sudo 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