deploiement - MorganHolsters/Dev-Web-3-2024 GitHub Wiki
Résumé coaching 6.a
+ Le groupe a pu mettre en ligne l'application développée dans son état actuel.
+ Le groupe peut expliquer ce qu'il a dû faire pour héberger et déployer, et justifier les choix.
+ Le groupe présente sur le wiki le choix qui a été posé pour héberger l'application web : fournisseur, configuration matérielle, prix, garantie, plateforme logicielle, …
+ Le groupe présente sur le wiki la configuration du serveur utilisée et la justifie.
+ Les étudiants présentent sur le wiki la manière dont le code est déployé en production : moment, étapes, outils et protocoles utilisés, …
+ Le groupe explique dans le wiki l'automatisation (CI/CD) qui aurait été mis en place.
1. Choix du serveur d'hébergement
[Présentation et justification du serveur choisi : configuration matérielle, prix, garanties fournies par le fournisseur, ...]
**Heroku **
- Intégration avec Git
- Support de plusieurs langages de programmation (Java, Node.js, Scala, Clojure, Python, PHP et Go)
- Bonne scalabilité, on peut facilement augmenter ou diminuer la capacité de notre application
- Heroku s'occupe de la plupart des aspects de la maintenance du serveur
- Capable de lancer le backend et le frontend sur le même serveur.
- 5€ par mois
https://chevalhala-ce2e0d1120dd.herokuapp.com/
2. Choix du serveur d'hébergement
[Présentation et justification du serveur choisi : configuration matérielle, prix, garanties fournies par le fournisseur, ...]
3. Technique de déploiement
[Schéma + explication de la méthodologie de déploiement du code sur le serveur. Quand le code est-il déployé/mis à jour? Quelles sont les étapes? Les outils utilisés? Avez-vous mis de l'automatisation en place? ]
J'ai utilisé l'intégration avec Github pour déployer la branche main avec l'interface graphique d'Heroku. J'ai tout de même utilisé la console pour me connecter et récupérer les logs liés à mon application et son déploiement. heroku logs --tail --app chevalhala
J'ai du créer une copie du projet sur un repository à mon nom. Celui renseigné pour le projet est celui de Morgan mais je n'ai pas les permissions pour l'utiliser avec Heroku.
Si vous souhaitez voir le travail effectué pour le déploiement, cliquez sur ce lien : https://github.com/julienmeire/Dev-Web-3-2024
J'ai eu énormément de soucis avec le déploiement et il n'est toujours pas fonctionnel. J'ai voulu déployer mon frontend et mon backend sur le même serveur de Heroku. J'ai du apporter de nombreux changements au code pour y parvenir
- Mettre tout mon frontend dans un dossier dans mon backend
- Installer toutes les dépendances
- Générer un Procfile et un package.json à la racine du projet
- Le Procfile sert à déclarer les types de processus et les commandes associées que l'application peut exécuter
- Le package.json sert à déclarer les dépendances et les commandes à exécuter renseignées dans les scripts
J'ai utilisé ces commandes :
- "start": "node backend/index.js",
- "heroku-postbuild": "cd backend && cd frontend && npm install && npm run build"
Elles ont servies à compiler le frontend avant le lancement du serveur et qu'il soit utilisé par après. J'ai utiliser cette commande pour indiquer à Express de servir les fichiers statiques à partir du répertoire spécifié
- app.use(express.static(path.join(__dirname, '/frontend/dist/posts/browser')));
Le résultat est le suivant
L'application à l'air d'être correctement déployé, on peut naviguer entre les onglets. Mais je ne cesse d'avoir des erreurs 500, 503 dû à des erreurs de serveurs. Les ressources n'arrivent pas à charger et j'obtiens d'abord une erreur 404.
J'avoue ne pas savoir d'où vient le problème. j'ai renseigné correctement les URL de mes services (private url = "https://chevalhala-ce2e0d1120dd.herokuapp.com/auth";)
J'ai également utiliser les process.env.PORT pour être sur d'écouter sur les bon ports.
Pourtant les ressources sont introuvables et ne permettent pas de faire tourner l'application correctement.