# Déploiement des apps decrypt
## Localisation de l'app
Le code source du projet se trouve dans
- `/var/www/app/app/owl-boilerplate/owl-boilerplate/`
- `/var/www/app/_work/owl-boilerplate/owl-boilerplate/`
Dans ce dossier se trouve 2 dossiers, un dossier `client/` avec le code source du frontend, et un dossier `server/` avec le code source du backend.
## Technologies
Ci-dessous la liste des applications nécéssaires sur la machine pour que l'application puisse fonctionner
- [NodeJS](https://nodejs.org/en) (>v16.17.1)
- [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) (>v8.19.2)
- [MongoDB](https://www.mongodb.com/) (>v6.0.2)
- [MongoDB Tools](https://www.mongodb.com/try/download/atlascli) (optionnel)[^1]
- [PM2](https://pm2.keymetrics.io/) (optionnel)[^2]
[^1]: Les tools viennent avec une installation de MongoDB v5 ou supérieur.
[^2]: PM2 n'est pas obligatoire à installer pour lancer l'application.
## Execution de l'application
Dans le dossier `/server` de l'application se trouve un `package.json` avec un script `prod` pour lancer l'application en mode production.
Il suffit de naviguer dans ce dossier pour ensuite executer `npm start prod` afin de lancer l'application.
L'application se lance sur le port `4000` de la machine, (http://localhost:4000).
Vous pourrez ensuite utiliser un reverse proxy de votre choix pour rediriger le domaine vers ce port.
La configuration pour NGINX se trouve dans `/etc/nginx/sites-available/default`
## Variables d'environment
Les variables d'environment se trouve dans `/var/www/app/app/owl-boilerplate/owl-boilerplate/server/.env`.
Le fichier contient les variables suivantes:
MONGODB_URL = XXXX ## L'url mongodb eg(mongodb://localhost/mon-app)
DB_NAME = XXXX ## Le nom de la base de donnée eg: mon-app
SALT = XXXX ## Valeur d'encryption des mot de passe pour bcrypt, eg: 15
APP_NAME = XXXX ## Le nom de l'application eg: MON-APP
APP_HOST = XXXX ## L'hôte de l'application, eg: localhost
DB_PORT = XXXX ## Le port utilisé pour MongoDB, eg: 27017
DB_HOST = XXXX ## L'hôte MongoDB, eg: localhost
APP_PROTOCOL = XXXX ## Protocol à utiliser, eg: https
APP_PORT = XXXX ## Le port de l'application, eg: 4000
APP_DOMAINS = XXXX ## Les domaines autorisés à communiquer avec le serveur eg: [https://google.com, https://inoui.com]
APP_SMTP_HOST = XXXX ## L'hôte SMTP, eg: localhost
APP_SMTP_PORT = XXXX ## Le port SMTP, eg: 25
APP_EMAIL_SENDER = XXXX ## Le nom de l'expéditeur de mails, eg: example@mail.com
APP_EMAIL_PASSWORD = XXXX ## Le mot de passe du compte d'expéditeur de mail: eg: 123
APP_JWT_SECRET = XXXX ## La valeur d'encryption des tokens, eg: m0n-süper-h@sh
APP_URL = XXXX ## L'url de l'application, eg: https://example.com
SESSION_SECRET = XXXX ## La valeur d'encryption des cookies, eg: m0n-süper-h@sh
NODE_ENV=production
SW_ACCESS_ID = XXXX ## L'ID Scaleway (pour la sauvegarde journalière des données)
SW_SECRET_KEY = XXXX ## La clé secrète Scaleway