# Mise en production de l'application
Attention la version 2.5.0 de ruby doit être installé sur le systeme.
## Backend
Faire les modifs directement dans le repertoire backend
## Frontend
Faire les modifs directement dans le repertoire frontend. Une fois les modifications terminé.
A la racine du projet faire `rm -rf ./backend/client` puis `cd frontend && npm run-script build` enfin `mv ./build/ ../backend/client && cd ..`
Faire un commit pour tracker les dernières modif puis merger le code sur `master` et sur GitHub
## Serveur
Avant de déployer, se connecter au serveur avec ssh `ssh root@ip_address` une fois sur le serveur, executer les commandes suivantes
`pm2 list` afin de connaitre le nom de l'application en cours d'execution puis :
```shell
service nginx stop
pm2 stop app_name
exit
```
## Déploiement
De retour sur votre machine locale, toujours à la racine du projet :
`cap production deploy`
une fois le déploiement terminer, retourner sur le serveur `ssh root@ip_address` puis executer les commandes suivantes :
```shell
cd /home/deploy/www/app_name/production/current
npm install
pm2 start bin/www --name my_app_name
service nginx start
```
### Problème
Lors du déploiement, si vous recevez un message d'erreur comme quoi vous ne pouvez pas supprimer des fichier de node_modules. Vous devez vous rendre sur le serveur et supprimer manuellement les anciennes releases dans le repertoire :
`/home/deploy/www/domain_name/production/releases`
dans ce repertoire, faire un `ls -la` afin de pouvoir vérifier les dates de création. supprimer les plus anciennes et ne garder que les deux plus récentes.