Héberger un projet NodeJS sur Heroku 🚀

Très utile pour tester une API par exemple

Écrit par XenoX

🧐 Heroku ?! Kézako ?

Heroku est une entreprise qui permet de déployer des applications sur le "cloud", de manière simple, rapide et adaptable.

Heroku permet d'avoir accès à notre application sur le web, sans configuration, leur plan "free" est largement suffisant pour exposer une API ou mettre en ligne un site à très petit trafic, un blog, portfolio ou tes projets d'étude.

🚀 Déploiement

Pour ce tuto, je vais prendre l'API NodeJS du projet 5 du parcours "Développeur Web" d'OpenClassrooms, voici le repository : https://github.com/OpenClassrooms-Student-Center/JWDP5.

Avant de passer à la suite, tu as besoin d'un compte GitHub, car pour plus de simplicité, nous allons passer par GitHub pour mettre notre application sur Heroku.
Un compte Heroku est aussi nécessaire 🙂.

Nous avons besoin d'avoir les droits sur le repository que l'on souhaite mettre sur Heroku deux cas de figure :

Maintenant on va pouvoir aller sur ton dashboard Heroku, tu vas pouvoir créer une application (bouton "new" en haut à droite > "Create new app").

En App name tu choisis comment tu veux nommer ton application, moi je vais l'appeler xenox-orinoco-api
En région je mets Europe.

Normalement tu atterris dans l'onglet "Deploy", on va rester dessus et se connecter à notre Github, une fois fait, tu peux chercher ton repository et le connecter à ton application Heroku.

Tu devais avoir quelque chose de similaire :

Screenshot Heroku

Si tu descends un peu, dans "Manual deploy", tu vas pouvoir sélectionner la branche "master" et la déployer, une fois le déploiement effectué, tu vas pouvoir cliquer sur "Open app" en haut à droite.
Normalement tu as un message d'erreur, mais c'est normal, dans notre cas, il faut qu'on ajoute /api/cameras à la fin de l'URL pour récupérer nos caméras.

🎉 C'est tout !

Félicitations, ton application est sur Heroku et accessible de partout, magique non ?!

🪄 Pas si magique que ça

En fait, quand tu déploies ton application sur Heroku, il va remarquer qu'il y a un fichier packages.json à la racine du projet, donc il va savoir qu'il faut installer Node et NPM et il va installer les dépendances tout seul, comme un grand.
Il va aussi lancer tout seul un "npm start".

➡️ Aller plus loin

Si tu souhaites mettre des variables d'environnement, il faut aller dans l'onglet settings et dans la rubrique Config Vars.

Vu que tu es en plan gratuit, si ton application n'est pas utilisée pendant un certain temps, elle va se mettre en mode sommeil, pas de panique, ta prochaine requête à ton application va la réveiller, elle va se reconstruire, c'est pour cela que cette première requête risque de prendre entre cinq et dix secondes.